@redocly/theme 0.2.3 → 0.3.0
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/ColorModeSwitcher/ColorModeSwitcher.js +3 -2
- package/CopyButton/CopyButtonWrapper.d.ts +2 -1
- package/CopyButton/CopyButtonWrapper.js +3 -2
- package/Markdown/Details.d.ts +6 -0
- package/Markdown/Details.js +22 -0
- package/Markdown/MarkdownLayout.d.ts +3 -1
- package/Markdown/MarkdownLayout.js +2 -2
- package/Navbar/NavbarMenu.js +1 -1
- package/PageNavigation/PageNavigation.d.ts +6 -1
- package/PageNavigation/PageNavigation.js +4 -3
- package/SourceCode/SourceCode.js +5 -5
- package/globalStyle.d.ts +0 -1
- package/globalStyle.js +7 -8
- package/hooks/useActiveHeading.js +6 -5
- package/package.json +1 -1
- package/src/ColorModeSwitcher/ColorModeSwitcher.tsx +4 -3
- package/src/CopyButton/CopyButtonWrapper.tsx +6 -3
- package/src/Markdown/Details.tsx +19 -0
- package/src/Markdown/MarkdownLayout.tsx +5 -1
- package/src/Navbar/NavbarMenu.tsx +2 -2
- package/src/PageNavigation/PageNavigation.tsx +11 -3
- package/src/SourceCode/SourceCode.tsx +4 -4
- package/src/globalStyle.ts +20 -9
- package/src/hooks/useActiveHeading.ts +41 -34
|
@@ -52,13 +52,14 @@ var styled_components_1 = __importDefault(require("styled-components"));
|
|
|
52
52
|
var hooks_1 = require("../mocks/hooks");
|
|
53
53
|
var constants_1 = require("../mocks/constants");
|
|
54
54
|
var ColorModeIcon_1 = require("../icons/ColorModeIcon");
|
|
55
|
+
var hooks_2 = require("../hooks");
|
|
55
56
|
function ColorModeSwitcher() {
|
|
56
57
|
var themeSettings = (0, hooks_1.useThemeSettings)(constants_1.DEFAULT_THEME_NAME);
|
|
57
58
|
var colorMode = themeSettings.colorMode;
|
|
58
59
|
var _a = __read((0, react_1.useState)(''), 2), activeColorMode = _a[0], setActiveColorMode = _a[1];
|
|
59
|
-
(0,
|
|
60
|
+
(0, hooks_2.useMount)(function () {
|
|
60
61
|
setActiveColorMode(document.documentElement.className || (colorMode === null || colorMode === void 0 ? void 0 : colorMode.default));
|
|
61
|
-
}
|
|
62
|
+
});
|
|
62
63
|
if (!(colorMode === null || colorMode === void 0 ? void 0 : colorMode.modes) || (colorMode === null || colorMode === void 0 ? void 0 : colorMode.hide)) {
|
|
63
64
|
return null;
|
|
64
65
|
}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { TooltipProps } from '../Tooltip';
|
|
2
3
|
export interface CopyButtonWrapperProps {
|
|
3
4
|
data: unknown;
|
|
4
5
|
children: (props: {
|
|
5
|
-
renderCopyButton: () => JSX.Element;
|
|
6
|
+
renderCopyButton: (placement?: TooltipProps['placement']) => JSX.Element;
|
|
6
7
|
}) => JSX.Element;
|
|
7
8
|
dataTestId?: string;
|
|
8
9
|
}
|
|
@@ -43,8 +43,9 @@ function CopyButtonWrapperComponent(_a) {
|
|
|
43
43
|
utils_1.ClipboardService.copyCustom(content);
|
|
44
44
|
showTooltip();
|
|
45
45
|
};
|
|
46
|
-
var renderCopyButton = function () {
|
|
47
|
-
|
|
46
|
+
var renderCopyButton = function (placement) {
|
|
47
|
+
if (placement === void 0) { placement = 'top'; }
|
|
48
|
+
return (react_1.default.createElement(Tooltip_1.Tooltip, { className: "copy-button", tip: utils_1.ClipboardService.isSupported() ? 'Copied' : 'Not supported in your browser', isOpen: tooltip.isOpened, placement: placement },
|
|
48
49
|
react_1.default.createElement(SamplesPanelControls_1.SamplesControlButton, { onClick: copy, "data-cy": dataTestId }, "Copy")));
|
|
49
50
|
};
|
|
50
51
|
return children({ renderCopyButton: renderCopyButton });
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.Details = void 0;
|
|
11
|
+
var react_1 = __importDefault(require("react"));
|
|
12
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
13
|
+
function Details(_a) {
|
|
14
|
+
var summary = _a.summary, children = _a.children;
|
|
15
|
+
return (react_1.default.createElement(StyledDetails, null,
|
|
16
|
+
react_1.default.createElement("summary", null, summary),
|
|
17
|
+
react_1.default.createElement(StyledDetailsContent, null, children)));
|
|
18
|
+
}
|
|
19
|
+
exports.Details = Details;
|
|
20
|
+
var StyledDetails = styled_components_1.default.details(templateObject_1 || (templateObject_1 = __makeTemplateObject([""], [""])));
|
|
21
|
+
var StyledDetailsContent = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject([""], [""])));
|
|
22
|
+
var templateObject_1, templateObject_2;
|
|
@@ -2,6 +2,8 @@ import React from 'react';
|
|
|
2
2
|
declare type MarkdownLayoutProps = {
|
|
3
3
|
tableOfContent: React.ReactNode;
|
|
4
4
|
markdownWrapper: React.ReactNode;
|
|
5
|
+
showPrevButton?: boolean;
|
|
6
|
+
showNextButton?: boolean;
|
|
5
7
|
};
|
|
6
|
-
export declare function MarkdownLayout({ tableOfContent, markdownWrapper, }: MarkdownLayoutProps): JSX.Element;
|
|
8
|
+
export declare function MarkdownLayout({ tableOfContent, markdownWrapper, showPrevButton, showNextButton, }: MarkdownLayoutProps): JSX.Element;
|
|
7
9
|
export {};
|
|
@@ -9,11 +9,11 @@ var PageWrapper_1 = require("../Markdown/PageWrapper");
|
|
|
9
9
|
var ContentWrapper_1 = require("../Markdown/ContentWrapper");
|
|
10
10
|
var PageNavigation_1 = require("../PageNavigation/PageNavigation");
|
|
11
11
|
function MarkdownLayout(_a) {
|
|
12
|
-
var tableOfContent = _a.tableOfContent, markdownWrapper = _a.markdownWrapper;
|
|
12
|
+
var tableOfContent = _a.tableOfContent, markdownWrapper = _a.markdownWrapper, showPrevButton = _a.showPrevButton, showNextButton = _a.showNextButton;
|
|
13
13
|
return (react_1.default.createElement(PageWrapper_1.PageWrapper, { "data-component-name": "Markdown/MarkdownLayout" },
|
|
14
14
|
react_1.default.createElement(ContentWrapper_1.ContentWrapper, { withToc: true },
|
|
15
15
|
markdownWrapper,
|
|
16
|
-
react_1.default.createElement(PageNavigation_1.PageNavigation,
|
|
16
|
+
react_1.default.createElement(PageNavigation_1.PageNavigation, { showPrevButton: showPrevButton, showNextButton: showNextButton })),
|
|
17
17
|
tableOfContent));
|
|
18
18
|
}
|
|
19
19
|
exports.MarkdownLayout = MarkdownLayout;
|
package/Navbar/NavbarMenu.js
CHANGED
|
@@ -14,7 +14,7 @@ var NavbarItem_1 = require("../Navbar/NavbarItem");
|
|
|
14
14
|
var utils_1 = require("../utils");
|
|
15
15
|
function NavbarMenu(_a) {
|
|
16
16
|
var menuItems = _a.menuItems;
|
|
17
|
-
if ((0, utils_1.isPrimitive)(menuItems)
|
|
17
|
+
if ((0, utils_1.isPrimitive)(menuItems)) {
|
|
18
18
|
return null;
|
|
19
19
|
}
|
|
20
20
|
return (react_1.default.createElement(NavItemsContainer, { "data-component-name": "Navbar/NavbarMenu" }, menuItems.map(function (navItem, index) {
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
2
|
+
declare type PageNavigationProps = {
|
|
3
|
+
showPrevButton?: boolean;
|
|
4
|
+
showNextButton?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare function PageNavigation({ showPrevButton, showNextButton, }: PageNavigationProps): JSX.Element | null;
|
|
7
|
+
export {};
|
|
@@ -14,14 +14,15 @@ var PreviousPageLink_1 = require("../PageNavigation/PreviousPageLink");
|
|
|
14
14
|
var NextPageLink_1 = require("../PageNavigation/NextPageLink");
|
|
15
15
|
var hooks_1 = require("../mocks/hooks");
|
|
16
16
|
var constants_1 = require("../mocks/constants");
|
|
17
|
-
function PageNavigation() {
|
|
17
|
+
function PageNavigation(_a) {
|
|
18
|
+
var _b = _a.showPrevButton, showPrevButton = _b === void 0 ? true : _b, _c = _a.showNextButton, showNextButton = _c === void 0 ? true : _c;
|
|
18
19
|
var navigation = (0, hooks_1.useThemeSettings)(constants_1.DEFAULT_THEME_NAME).navigation;
|
|
19
20
|
if (navigation === null || navigation === void 0 ? void 0 : navigation.hide) {
|
|
20
21
|
return null;
|
|
21
22
|
}
|
|
22
23
|
return (react_1.default.createElement(PageNavigationWrapper, { "data-component-name": "PageNavigation/PageNavigation" },
|
|
23
|
-
react_1.default.createElement(PreviousPageLink_1.PreviousPageLink, null),
|
|
24
|
-
react_1.default.createElement(NextPageLink_1.NextPageLink, null)));
|
|
24
|
+
showPrevButton && react_1.default.createElement(PreviousPageLink_1.PreviousPageLink, null),
|
|
25
|
+
showNextButton && react_1.default.createElement(NextPageLink_1.NextPageLink, null)));
|
|
25
26
|
}
|
|
26
27
|
exports.PageNavigation = PageNavigation;
|
|
27
28
|
var PageNavigationWrapper = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n justify-content: space-between;\n margin: 25px 0;\n"], ["\n display: flex;\n justify-content: space-between;\n margin: 25px 0;\n"])));
|
package/SourceCode/SourceCode.js
CHANGED
|
@@ -61,12 +61,12 @@ function SourceCode(_a) {
|
|
|
61
61
|
// Because we don't have session storage in ssr and can't get the security details there
|
|
62
62
|
// Issue for more details https://github.com/Redocly/reference-docs/issues/888
|
|
63
63
|
(0, react_1.useEffect)(function () {
|
|
64
|
-
var _a, _b
|
|
65
|
-
var
|
|
66
|
-
if (
|
|
67
|
-
setSourceCode(
|
|
64
|
+
var _a, _b;
|
|
65
|
+
var _source = source || ((_b = (_a = externalSource === null || externalSource === void 0 ? void 0 : externalSource.sample) === null || _a === void 0 ? void 0 : _a.get) === null || _b === void 0 ? void 0 : _b.call(_a, externalSource));
|
|
66
|
+
if (_source) {
|
|
67
|
+
setSourceCode(_source);
|
|
68
68
|
}
|
|
69
|
-
}, [externalSource]);
|
|
69
|
+
}, [source, externalSource]);
|
|
70
70
|
if (withCopyButton) {
|
|
71
71
|
return (react_1.default.createElement(CopyButton_1.CopyButtonWrapper, { data: sourceCode, "data-component-name": "SourceCode/SourceCode" }, function (_a) {
|
|
72
72
|
var renderCopyButton = _a.renderCopyButton;
|
package/globalStyle.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export declare const lightMode: import("styled-components").FlattenSimpleInterpolation;
|
|
2
1
|
export declare const darkMode: import("styled-components").FlattenSimpleInterpolation;
|
|
3
2
|
export declare const styles: import("styled-components").FlattenSimpleInterpolation;
|
|
4
3
|
export declare const GlobalStyle: import("styled-components").GlobalStyleComponent<{}, import("styled-components").DefaultTheme>;
|
package/globalStyle.js
CHANGED
|
@@ -4,10 +4,10 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
|
|
|
4
4
|
return cooked;
|
|
5
5
|
};
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.GlobalStyle = exports.styles = exports.darkMode =
|
|
7
|
+
exports.GlobalStyle = exports.styles = exports.darkMode = void 0;
|
|
8
8
|
var styled_components_1 = require("styled-components");
|
|
9
9
|
var baseColors = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n /* === Palette === */\n\n /**\n * @tokens Base Colors\n * @presenter Color\n */\n --color-primary-100: #62a1ff;\n --color-primary-200: #4892ff;\n --color-primary-300: #2f83ff;\n --color-primary-400: #1573ff;\n --color-primary-500: #0065fb;\n --color-primary-600: #005be2;\n --color-primary-700: #0050c8;\n --color-primary-800: #0046af;\n --color-primary-900: #003c95;\n\n --color-secondary-100: #ffffff;\n --color-secondary-200: #f5f7fa;\n --color-secondary-300: #f3f4f6;\n --color-secondary-400: #e4e7eb;\n --color-secondary-500: #d5dae0;\n --color-secondary-600: #c7cdd5;\n --color-secondary-700: #b8c0ca;\n --color-secondary-800: #a9b3c0;\n --color-secondary-900: #9ba6b5;\n\n --color-emphasis-100: #ffffff;\n --color-emphasis-200: #e9eaec;\n --color-emphasis-300: #cdd0d5;\n --color-emphasis-400: #b2b6bd;\n --color-emphasis-500: #969ca6;\n --color-emphasis-600: #7a828f;\n --color-emphasis-700: #626974;\n --color-emphasis-800: #4b5058;\n --color-emphasis-900: #1c1e21;\n\n --color-accent-100: #b3dcf3;\n --color-accent-200: #a6dfff;\n --color-accent-300: #8cd5ff;\n --color-accent-400: #73ccff;\n --color-accent-500: #59c3ff;\n --color-accent-600: #40baff;\n --color-accent-700: #26b1ff;\n --color-accent-800: #0da7ff;\n --color-accent-900: #009bf2;\n\n --color-success-100: #98eda0;\n --color-success-200: #82e98c;\n --color-success-300: #6ce678;\n --color-success-400: #57e264;\n --color-success-500: #41de50;\n --color-success-600: #2bda3c;\n --color-success-700: #23c933;\n --color-success-800: #1fb32d;\n --color-success-900: #1b9e28;\n\n --color-warning-100: #ffc966;\n --color-warning-200: #ffc04d;\n --color-warning-300: #ffb733;\n --color-warning-400: #ffae1a;\n --color-warning-500: #ffa500;\n --color-warning-600: #e69400;\n --color-warning-700: #cc8400;\n --color-warning-800: #b37300;\n --color-warning-900: #996300;\n\n --color-error-100: #ffc7c7;\n --color-error-200: #ffaeae;\n --color-error-300: #ff9494;\n --color-error-400: #ff7b7b;\n --color-error-500: #ff6161;\n --color-error-600: #ff4747;\n --color-error-700: #ff2e2e;\n --color-error-800: #ff1414;\n --color-error-900: #ff0000;\n\n // @tokens End\n"], ["\n /* === Palette === */\n\n /**\n * @tokens Base Colors\n * @presenter Color\n */\n --color-primary-100: #62a1ff;\n --color-primary-200: #4892ff;\n --color-primary-300: #2f83ff;\n --color-primary-400: #1573ff;\n --color-primary-500: #0065fb;\n --color-primary-600: #005be2;\n --color-primary-700: #0050c8;\n --color-primary-800: #0046af;\n --color-primary-900: #003c95;\n\n --color-secondary-100: #ffffff;\n --color-secondary-200: #f5f7fa;\n --color-secondary-300: #f3f4f6;\n --color-secondary-400: #e4e7eb;\n --color-secondary-500: #d5dae0;\n --color-secondary-600: #c7cdd5;\n --color-secondary-700: #b8c0ca;\n --color-secondary-800: #a9b3c0;\n --color-secondary-900: #9ba6b5;\n\n --color-emphasis-100: #ffffff;\n --color-emphasis-200: #e9eaec;\n --color-emphasis-300: #cdd0d5;\n --color-emphasis-400: #b2b6bd;\n --color-emphasis-500: #969ca6;\n --color-emphasis-600: #7a828f;\n --color-emphasis-700: #626974;\n --color-emphasis-800: #4b5058;\n --color-emphasis-900: #1c1e21;\n\n --color-accent-100: #b3dcf3;\n --color-accent-200: #a6dfff;\n --color-accent-300: #8cd5ff;\n --color-accent-400: #73ccff;\n --color-accent-500: #59c3ff;\n --color-accent-600: #40baff;\n --color-accent-700: #26b1ff;\n --color-accent-800: #0da7ff;\n --color-accent-900: #009bf2;\n\n --color-success-100: #98eda0;\n --color-success-200: #82e98c;\n --color-success-300: #6ce678;\n --color-success-400: #57e264;\n --color-success-500: #41de50;\n --color-success-600: #2bda3c;\n --color-success-700: #23c933;\n --color-success-800: #1fb32d;\n --color-success-900: #1b9e28;\n\n --color-warning-100: #ffc966;\n --color-warning-200: #ffc04d;\n --color-warning-300: #ffb733;\n --color-warning-400: #ffae1a;\n --color-warning-500: #ffa500;\n --color-warning-600: #e69400;\n --color-warning-700: #cc8400;\n --color-warning-800: #b37300;\n --color-warning-900: #996300;\n\n --color-error-100: #ffc7c7;\n --color-error-200: #ffaeae;\n --color-error-300: #ff9494;\n --color-error-400: #ff7b7b;\n --color-error-500: #ff6161;\n --color-error-600: #ff4747;\n --color-error-700: #ff2e2e;\n --color-error-800: #ff1414;\n --color-error-900: #ff0000;\n\n // @tokens End\n"])));
|
|
10
|
-
var baseDarkColors = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n
|
|
10
|
+
var baseDarkColors = (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n /**\n * @tokens Base Dark Colors\n * @presenter Color\n */\n --color-primary-100: #969ca6;\n --color-primary-200: #7f8693;\n --color-primary-300: #7d7d80;\n --color-primary-400: #4b4f56;\n --color-primary-500: #404042;\n --color-primary-600: #36383d;\n --color-primary-700: #28282a;\n --color-primary-800: #202021;\n --color-primary-900: #000000;\n\n // @tokens End\n"], ["\n /**\n * @tokens Base Dark Colors\n * @presenter Color\n */\n --color-primary-100: #969ca6;\n --color-primary-200: #7f8693;\n --color-primary-300: #7d7d80;\n --color-primary-400: #4b4f56;\n --color-primary-500: #404042;\n --color-primary-600: #36383d;\n --color-primary-700: #28282a;\n --color-primary-800: #202021;\n --color-primary-900: #000000;\n\n // @tokens End\n"])));
|
|
11
11
|
var httpColors = (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n /**\n * @tokens HTTP Colors\n * @presenter Color\n */\n --color-http-get: #3a9601;\n --color-http-post: #0065fb;\n --color-http-put: #93527b;\n --color-http-options: #947014;\n --color-http-patch: #bf581d;\n --color-http-delete: #c83637;\n --color-http-basic: #707070;\n --color-http-link: #07818f;\n --color-http-head: #a23dad;\n --color-http-hook: var(--color-http-post);\n // @tokens End\n"], ["\n /**\n * @tokens HTTP Colors\n * @presenter Color\n */\n --color-http-get: #3a9601;\n --color-http-post: #0065fb;\n --color-http-put: #93527b;\n --color-http-options: #947014;\n --color-http-patch: #bf581d;\n --color-http-delete: #c83637;\n --color-http-basic: #707070;\n --color-http-link: #07818f;\n --color-http-head: #a23dad;\n --color-http-hook: var(--color-http-post);\n // @tokens End\n"])));
|
|
12
12
|
var responseColors = (0, styled_components_1.css)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n /**\n * @tokens Response colors\n * @presenter Color\n */\n --response-success-border-color: #b1e996;\n --response-success-background-color: #f6fff4;\n --response-success-text-color: var(--response-success-border-color);\n\n --response-error-border-color: #ffc9c9;\n --response-error-background-color: #fff4f4;\n --response-error-text-color: var(--response-error-border-color);\n\n --response-redirect-border-color: var(--color-warning-500);\n --response-redirect-background-color: #ffa5001a;\n --response-redirect-text-color: var(--response-redirect-border-color);\n\n --response-info-border-color: #87ceeb;\n --response-info-background-color: #87ceeb1a;\n --response-info-text-color: var(--response-info-border-color);\n\n // @tokens End\n"], ["\n /**\n * @tokens Response colors\n * @presenter Color\n */\n --response-success-border-color: #b1e996;\n --response-success-background-color: #f6fff4;\n --response-success-text-color: var(--response-success-border-color);\n\n --response-error-border-color: #ffc9c9;\n --response-error-background-color: #fff4f4;\n --response-error-text-color: var(--response-error-border-color);\n\n --response-redirect-border-color: var(--color-warning-500);\n --response-redirect-background-color: #ffa5001a;\n --response-redirect-text-color: var(--response-redirect-border-color);\n\n --response-info-border-color: #87ceeb;\n --response-info-background-color: #87ceeb1a;\n --response-info-text-color: var(--response-info-border-color);\n\n // @tokens End\n"])));
|
|
13
13
|
var typography = (0, styled_components_1.css)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n /* === Typography === */\n\n /**\n * @tokens Typography Colors\n * @presenter Color\n */\n --color-content: #1f2933;\n --color-content-inverse: var(--color-secondary-200);\n --color-content-secondary: #7b8794;\n\n /**\n * @tokens Font Sizes\n * @presenter FontSize\n */\n --font-size-base: 14px;\n --font-size-small: 12px;\n\n /**\n * @tokens Line Heights\n * @presenter LineHeight\n */\n --line-height-base: 1.5em;\n\n /**\n * @tokens Font Weights\n * @presenter FontWeight\n */\n --font-weight-regular: 400;\n --font-weight-bold: 600;\n --font-weight-bolder: 700;\n\n /**\n * @tokens Font Families\n * @presenter FontFamily\n */\n --font-family-base: Source Sans Pro, sans-serif;\n --font-family-monospaced: Source Code Pro, monospace;\n\n /**\n * @tokens Rendering\n */\n --smoothing: antialiased; // text-smoothing\n --text-rendering: optimizeSpeed; // text-rendering\n\n // TODO: Not sure if Spacing should be in typography\n /**\n * @tokens Spacings\n * @presenter Spacing\n */\n --spacing-unit: 5px;\n --spacing-horizontal: calc(var(--spacing-unit) * 8);\n --spacing-vertical: calc(var(--spacing-unit) * 4);\n\n // @tokens End\n"], ["\n /* === Typography === */\n\n /**\n * @tokens Typography Colors\n * @presenter Color\n */\n --color-content: #1f2933;\n --color-content-inverse: var(--color-secondary-200);\n --color-content-secondary: #7b8794;\n\n /**\n * @tokens Font Sizes\n * @presenter FontSize\n */\n --font-size-base: 14px;\n --font-size-small: 12px;\n\n /**\n * @tokens Line Heights\n * @presenter LineHeight\n */\n --line-height-base: 1.5em;\n\n /**\n * @tokens Font Weights\n * @presenter FontWeight\n */\n --font-weight-regular: 400;\n --font-weight-bold: 600;\n --font-weight-bolder: 700;\n\n /**\n * @tokens Font Families\n * @presenter FontFamily\n */\n --font-family-base: Source Sans Pro, sans-serif;\n --font-family-monospaced: Source Code Pro, monospace;\n\n /**\n * @tokens Rendering\n */\n --smoothing: antialiased; // text-smoothing\n --text-rendering: optimizeSpeed; // text-rendering\n\n // TODO: Not sure if Spacing should be in typography\n /**\n * @tokens Spacings\n * @presenter Spacing\n */\n --spacing-unit: 5px;\n --spacing-horizontal: calc(var(--spacing-unit) * 8);\n --spacing-vertical: calc(var(--spacing-unit) * 4);\n\n // @tokens End\n"])));
|
|
@@ -16,7 +16,7 @@ var borders = (0, styled_components_1.css)(templateObject_7 || (templateObject_7
|
|
|
16
16
|
var buttons = (0, styled_components_1.css)(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n /*\n * Static classnames that can be used to override styles for components:\n * download-specification-button, next-section-button, button-base\n */\n\n /**\n * @tokens Button default colors\n */\n --button-color: white; // @presenter Color\n --button-background-color: var(--color-emphasis-500); // @presenter Color\n --button-hover-background-color: var(--color-emphasis-600); // @presenter Color\n --button-active-background-color: var(--color-emphasis-700); // @presenter Color\n --button-outlined-active-border-color: var(--color-emphasis-800); // @presenter Color\n\n /**\n * @tokens Button primary colors\n */\n .button-color-primary {\n --button-color: white; // @presenter Color\n --button-background-color: var(--color-primary-500); // @presenter Color\n --button-hover-background-color: var(--color-primary-600); // @presenter Color\n --button-active-background-color: var(--color-primary-700); // @presenter Color\n --button-outlined-active-border-color: var(--color-primary-800); // @presenter Color\n }\n\n /**\n * @tokens Button secondary colors\n */\n .button-color-secondary {\n --button-color: var(--color-emphasis-800); // @presenter Color\n --button-background-color: var(--color-secondary-400); // @presenter Color\n --button-hover-background-color: var(--color-secondary-500); // @presenter Color\n --button-active-background-color: var(--color-secondary-600); // @presenter Color\n --button-outlined-active-border-color: var(--color-secondary-700); // @presenter Color\n }\n\n /**\n * @tokens Button borders\n */\n --button-border-radius: var(--global-border-radius); // @presenter BorderRadius\n --button-margin: 5px; // @presenter Margin\n --button-box-shadow: none; // @presenter Shadow\n --button-active-box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.1); // @presenter Shadow\n\n /**\n * @tokens Button typography\n */\n --button-font-family: inherit; // @presenter FontFamily\n --button-font-weight: var(--font-weight-bold); // @presenter FontWeight\n --button-small-font-size: 12px; // @presenter FontSize\n --button-small-padding: 8px 10px;\n --button-small-min-width: 90px; // @presenter Spacing\n --button-medium-font-size: 14px; // @presenter FontSize\n --button-medium-padding: 8px 20px;\n --button-medium-min-width: 120px; // @presenter Spacing\n --button-large-font-size: 14px; // @presenter FontSize\n --button-large-padding: 12px 24px;\n --button-large-min-width: 150px; // @presenter Spacing\n --button-xlarge-font-size: 16px; // @presenter FontSize\n --button-xlarge-padding: 20px 24px;\n --button-xlarge-min-width: 200px; // @presenter Spacing\n\n // @tokens End\n"], ["\n /*\n * Static classnames that can be used to override styles for components:\n * download-specification-button, next-section-button, button-base\n */\n\n /**\n * @tokens Button default colors\n */\n --button-color: white; // @presenter Color\n --button-background-color: var(--color-emphasis-500); // @presenter Color\n --button-hover-background-color: var(--color-emphasis-600); // @presenter Color\n --button-active-background-color: var(--color-emphasis-700); // @presenter Color\n --button-outlined-active-border-color: var(--color-emphasis-800); // @presenter Color\n\n /**\n * @tokens Button primary colors\n */\n .button-color-primary {\n --button-color: white; // @presenter Color\n --button-background-color: var(--color-primary-500); // @presenter Color\n --button-hover-background-color: var(--color-primary-600); // @presenter Color\n --button-active-background-color: var(--color-primary-700); // @presenter Color\n --button-outlined-active-border-color: var(--color-primary-800); // @presenter Color\n }\n\n /**\n * @tokens Button secondary colors\n */\n .button-color-secondary {\n --button-color: var(--color-emphasis-800); // @presenter Color\n --button-background-color: var(--color-secondary-400); // @presenter Color\n --button-hover-background-color: var(--color-secondary-500); // @presenter Color\n --button-active-background-color: var(--color-secondary-600); // @presenter Color\n --button-outlined-active-border-color: var(--color-secondary-700); // @presenter Color\n }\n\n /**\n * @tokens Button borders\n */\n --button-border-radius: var(--global-border-radius); // @presenter BorderRadius\n --button-margin: 5px; // @presenter Margin\n --button-box-shadow: none; // @presenter Shadow\n --button-active-box-shadow: 0px 0px 12px 0px rgba(0, 0, 0, 0.1); // @presenter Shadow\n\n /**\n * @tokens Button typography\n */\n --button-font-family: inherit; // @presenter FontFamily\n --button-font-weight: var(--font-weight-bold); // @presenter FontWeight\n --button-small-font-size: 12px; // @presenter FontSize\n --button-small-padding: 8px 10px;\n --button-small-min-width: 90px; // @presenter Spacing\n --button-medium-font-size: 14px; // @presenter FontSize\n --button-medium-padding: 8px 20px;\n --button-medium-min-width: 120px; // @presenter Spacing\n --button-large-font-size: 14px; // @presenter FontSize\n --button-large-padding: 12px 24px;\n --button-large-min-width: 150px; // @presenter Spacing\n --button-xlarge-font-size: 16px; // @presenter FontSize\n --button-xlarge-padding: 20px 24px;\n --button-xlarge-min-width: 200px; // @presenter Spacing\n\n // @tokens End\n"])));
|
|
17
17
|
var sidebar = (0, styled_components_1.css)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n /* === Sidebar === */\n\n /**\n * @tokens Sidebar typography\n */\n --sidebar-font-size: var(--font-size-base);\n --sidebar-font-family: var(--font-family-base);\n --sidebar-word-break: 'inherit';\n\n /**\n * @tokens Sidebar colors\n * @presenter Color\n */\n --sidebar-background-color: #fff;\n --sidebar-right-line-color: var(--global-border-color);\n --sidebar-separator-label-color: var(--sidebar-item-color);\n --sidebar-separator-line-color: #dadada;\n --sidebar-chevron-color: var(--sidebar-item-color);\n\n /**\n * @tokens Sidebar spacing\n * @presenter Spacing\n */\n --sidebar-width: 285px; // @presenter NO\n\n --sidebar-spacing-unit: 8px;\n --sidebar-spacing-horizontal: var(--sidebar-spacing-unit);\n --sidebar-spacing-vertical: var(--sidebar-spacing-unit);\n --sidebar-spacing-offset-top: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-spacing-offset-left: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-spacing-offset-nesting: calc(var(--sidebar-spacing-unit) * 2);\n\n --sidebar-margin-left: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-padding-horizontal: var(--sidebar-spacing-unit);\n --sidebar-padding-vertical: var(--sidebar-spacing-unit);\n --sidebar-spacing-padding-vertical: var(--sidebar-spacing-unit); // TODO: seems like duplicated\n --sidebar-spacing-padding-horizontal: var(--sidebar-spacing-unit); // TODO: seems like duplicated\n\n --sidebar-chevron-size: var(--sidebar-spacing-unit);\n\n /**\n * @tokens Sidebar border\n */\n --sidebar-border-radius: 4px; // @presenter BorderRadius\n\n /* === Sidebar Item === */\n\n /**\n * @tokens Sidebar item typography\n */\n --sidebar-item-font-family: var(--font-family-base); // @presenter FontFamily\n --sidebar-item-font-size: var(--font-size-base); // @presenter FontSize\n\n /**\n * @tokens Sidebar item colors\n * @presenter Color\n */\n --sidebar-item-color: var(--color-content);\n --sidebar-item-active-color: var(--color-content);\n --sidebar-item-background-color: #fff;\n --sidebar-item-active-background-color: var(--global-border-color);\n\n /**\n * @tokens Sidebar item spacing\n * @presenter Spacing\n */\n --sidebar-item-spacing-offset-top: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-item-spacing-offset-left: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-item-spacing-offset-nesting: calc(var(--sidebar-spacing-unit) * 2);\n\n /**\n * @tokens Sidebar item border\n */\n --sidebar-item-border-radius: 4px; // @presenter BorderRadius\n\n // @tokens End\n"], ["\n /* === Sidebar === */\n\n /**\n * @tokens Sidebar typography\n */\n --sidebar-font-size: var(--font-size-base);\n --sidebar-font-family: var(--font-family-base);\n --sidebar-word-break: 'inherit';\n\n /**\n * @tokens Sidebar colors\n * @presenter Color\n */\n --sidebar-background-color: #fff;\n --sidebar-right-line-color: var(--global-border-color);\n --sidebar-separator-label-color: var(--sidebar-item-color);\n --sidebar-separator-line-color: #dadada;\n --sidebar-chevron-color: var(--sidebar-item-color);\n\n /**\n * @tokens Sidebar spacing\n * @presenter Spacing\n */\n --sidebar-width: 285px; // @presenter NO\n\n --sidebar-spacing-unit: 8px;\n --sidebar-spacing-horizontal: var(--sidebar-spacing-unit);\n --sidebar-spacing-vertical: var(--sidebar-spacing-unit);\n --sidebar-spacing-offset-top: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-spacing-offset-left: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-spacing-offset-nesting: calc(var(--sidebar-spacing-unit) * 2);\n\n --sidebar-margin-left: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-padding-horizontal: var(--sidebar-spacing-unit);\n --sidebar-padding-vertical: var(--sidebar-spacing-unit);\n --sidebar-spacing-padding-vertical: var(--sidebar-spacing-unit); // TODO: seems like duplicated\n --sidebar-spacing-padding-horizontal: var(--sidebar-spacing-unit); // TODO: seems like duplicated\n\n --sidebar-chevron-size: var(--sidebar-spacing-unit);\n\n /**\n * @tokens Sidebar border\n */\n --sidebar-border-radius: 4px; // @presenter BorderRadius\n\n /* === Sidebar Item === */\n\n /**\n * @tokens Sidebar item typography\n */\n --sidebar-item-font-family: var(--font-family-base); // @presenter FontFamily\n --sidebar-item-font-size: var(--font-size-base); // @presenter FontSize\n\n /**\n * @tokens Sidebar item colors\n * @presenter Color\n */\n --sidebar-item-color: var(--color-content);\n --sidebar-item-active-color: var(--color-content);\n --sidebar-item-background-color: #fff;\n --sidebar-item-active-background-color: var(--global-border-color);\n\n /**\n * @tokens Sidebar item spacing\n * @presenter Spacing\n */\n --sidebar-item-spacing-offset-top: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-item-spacing-offset-left: calc(var(--sidebar-spacing-unit) * 2);\n --sidebar-item-spacing-offset-nesting: calc(var(--sidebar-spacing-unit) * 2);\n\n /**\n * @tokens Sidebar item border\n */\n --sidebar-item-border-radius: 4px; // @presenter BorderRadius\n\n // @tokens End\n"])));
|
|
18
18
|
var admonition = (0, styled_components_1.css)(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n /**\n * @tokens Admonition colors\n * @presenter Color\n */\n\n /* info */\n --admonition-info-background-color: #ebedf0;\n --admonition-info-text-color: var(--color-content);\n --admonition-info-icon-color: #4782cb;\n\n /* attention */\n --admonition-attention-background-color: #e6eef8;\n --admonition-attention-text-color: var(--color-content);\n --admonition-attention-icon-color: #4782cb;\n\n /* warning */\n --admonition-warning-background-color: #feeda5;\n --admonition-warning-text-color: var(--color-content);\n --admonition-warning-icon-color: #d4ad03;\n\n /* danger */\n --admonition-danger-background-color: #fceaea;\n --admonition-danger-text-color: var(--color-content);\n --admonition-danger-icon-color: #e53935;\n\n /* success */\n --admonition-success-background-color: #ddffe1;\n --admonition-success-text-color: var(--color-content);\n --admonition-success-icon-color: #00aa13;\n\n /**\n * @tokens Admonition typography\n */\n --admonition-font-size: 16px; // @presenter FontSize\n --admonition-font-weight: normal; // @presenter FontWeight\n --admonition-line-height: 1.5em; // @presenter LineHeight\n --admonition-heading-font-size: 16px; // @presenter FontSize\n --admonition-heading-font-weight: var(--font-weight-bold); // @presenter FontWeight\n --admonition-heading-letter-spacing: 0.3px; // @presenter LetterSpacing\n --admonition-heading-transform: uppercase;\n\n /**\n * @tokens Admonition spacing\n * @presenter Spacing\n */\n --admonition-margin-horizontal: 0;\n --admonition-margin-vertical: calc(var(--spacing-unit) * 2);\n --admonition-padding-horizontal: calc(var(--spacing-unit) * 4);\n --admonition-padding-vertical: calc(var(--spacing-unit) * 4);\n --admonition-icon-size: 25px;\n\n /**\n * @tokens Admonition border\n */\n --admonition-border-radius: 8px; // @presenter BorderRadius\n\n // @tokens End\n"], ["\n /**\n * @tokens Admonition colors\n * @presenter Color\n */\n\n /* info */\n --admonition-info-background-color: #ebedf0;\n --admonition-info-text-color: var(--color-content);\n --admonition-info-icon-color: #4782cb;\n\n /* attention */\n --admonition-attention-background-color: #e6eef8;\n --admonition-attention-text-color: var(--color-content);\n --admonition-attention-icon-color: #4782cb;\n\n /* warning */\n --admonition-warning-background-color: #feeda5;\n --admonition-warning-text-color: var(--color-content);\n --admonition-warning-icon-color: #d4ad03;\n\n /* danger */\n --admonition-danger-background-color: #fceaea;\n --admonition-danger-text-color: var(--color-content);\n --admonition-danger-icon-color: #e53935;\n\n /* success */\n --admonition-success-background-color: #ddffe1;\n --admonition-success-text-color: var(--color-content);\n --admonition-success-icon-color: #00aa13;\n\n /**\n * @tokens Admonition typography\n */\n --admonition-font-size: 16px; // @presenter FontSize\n --admonition-font-weight: normal; // @presenter FontWeight\n --admonition-line-height: 1.5em; // @presenter LineHeight\n --admonition-heading-font-size: 16px; // @presenter FontSize\n --admonition-heading-font-weight: var(--font-weight-bold); // @presenter FontWeight\n --admonition-heading-letter-spacing: 0.3px; // @presenter LetterSpacing\n --admonition-heading-transform: uppercase;\n\n /**\n * @tokens Admonition spacing\n * @presenter Spacing\n */\n --admonition-margin-horizontal: 0;\n --admonition-margin-vertical: calc(var(--spacing-unit) * 2);\n --admonition-padding-horizontal: calc(var(--spacing-unit) * 4);\n --admonition-padding-vertical: calc(var(--spacing-unit) * 4);\n --admonition-icon-size: 25px;\n\n /**\n * @tokens Admonition border\n */\n --admonition-border-radius: 8px; // @presenter BorderRadius\n\n // @tokens End\n"])));
|
|
19
|
-
var panels = (0, styled_components_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n /**\n * @tokens Panel border\n */\n --panels-border-radius: 8px; // @presenter BorderRadius\n\n /**\n * @tokens Samples panel\n * @presenter Color\n */\n --samples-panel-gap: 20px;\n --samples-panel-width: 50%;\n\n --panels-background-color: #fff;\n --samples-panel-block-background-color: #fff;\n --samples-panel-background-color: #52606d;\n --samples-panel-callback-background-color: var(--color-secondary-300);\n --samples-panel-controls-background-color: #323f4b;\n --samples-panel-controls-hover-background-color: #3c4c5a;\n --samples-panel-controls-active-border-color: var(--color-accent-500);\n --samples-panel-text-color: #fff;\n --samples-panel-heading-color: #fff;\n\n --samples-panel-markdown-background-color: #3c4c5a;\n --samples-panel-markdown-border-color: #46596a;\n\n /**\n * @tokens Try It panel\n * @presenter Color\n */\n\n --try-it-panel-tab-background-color: var(--samples-panel-background-color);\n --try-it-panel-active-tab-background-color: #47535e;\n --try-it-panel-active-tab-border-color: var(--color-accent-500);\n --try-it-panel-disabled-tab-color: rgba(245, 247, 250, 0.7);\n --try-it-panel-controls-background-color: var(--samples-panel-controls-background-color);\n --try-it-panel-action-button-width: auto;\n\n /**\n * @tokens Request and Response panel\n * @presenter Color\n */\n --request-and-response-panel-background-color: #fff;\n\n // @tokens End\n"], ["\n /**\n * @tokens Panel border\n */\n --panels-border-radius: 8px; // @presenter BorderRadius\n\n /**\n * @tokens Samples panel\n * @presenter Color\n */\n --samples-panel-gap: 20px;\n --samples-panel-width: 50%;\n\n --panels-background-color: #fff;\n --samples-panel-block-background-color: #fff;\n --samples-panel-background-color: #52606d;\n --samples-panel-callback-background-color: var(--color-secondary-300);\n --samples-panel-controls-background-color: #323f4b;\n --samples-panel-controls-hover-background-color: #3c4c5a;\n --samples-panel-controls-active-border-color: var(--color-accent-500);\n --samples-panel-text-color: #fff;\n --samples-panel-heading-color: #fff;\n\n --samples-panel-markdown-background-color: #3c4c5a;\n --samples-panel-markdown-border-color: #46596a;\n\n /**\n * @tokens Try It panel\n * @presenter Color\n */\n\n --try-it-panel-tab-background-color: var(--samples-panel-background-color);\n --try-it-panel-active-tab-background-color: #47535e;\n --try-it-panel-active-tab-border-color: var(--color-accent-500);\n --try-it-panel-disabled-tab-color: rgba(245, 247, 250, 0.7);\n --try-it-panel-controls-background-color: var(--samples-panel-controls-background-color);\n --try-it-panel-action-button-width: auto;\n\n /**\n * @tokens Request and Response panel\n * @presenter Color\n */\n --request-and-response-panel-background-color: #fff;\n\n // @tokens End\n"])));
|
|
19
|
+
var panels = (0, styled_components_1.css)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n /**\n * @tokens Panel border\n */\n --panels-border-radius: 8px; // @presenter BorderRadius\n\n /**\n * @tokens Samples panel\n * @presenter Color\n */\n --samples-panel-gap: 20px;\n --samples-panel-width: 50%;\n\n --panels-background-color: #fff;\n\n --panels-title-color: var(--color-content);\n --panels-title-font-size: var(--h3-font-size);\n --panels-title-line-height: var(--h3-line-height);\n --panels-title-font-weight: var(--h-font-weight);\n --panels-title-font-family: var(--font-family-base);\n\n --panels-sub-title-color: var(--color-content);\n --panels-sub-title-font-size: 0.9em;\n --panels-sub-title-font-weight: normal;\n --panels-sub-title-font-family: var(--font-family-base);\n --panels-sub-title-line-height: var(--h3-line-height);\n\n --panels-shelf-icon-color: var(--color-content);\n\n --samples-panel-block-background-color: #fff;\n --samples-panel-background-color: #52606d;\n --samples-panel-callback-background-color: var(--color-secondary-300);\n --samples-panel-controls-background-color: #323f4b;\n --samples-panel-controls-hover-background-color: #3c4c5a;\n --samples-panel-controls-active-border-color: var(--color-accent-500);\n --samples-panel-text-color: #fff;\n --samples-panel-heading-color: #fff;\n\n --samples-panel-markdown-background-color: #3c4c5a;\n --samples-panel-markdown-border-color: #46596a;\n\n /**\n * @tokens Try It panel\n * @presenter Color\n */\n\n --try-it-panel-tab-background-color: var(--samples-panel-background-color);\n --try-it-panel-active-tab-background-color: #47535e;\n --try-it-panel-active-tab-border-color: var(--color-accent-500);\n --try-it-panel-disabled-tab-color: rgba(245, 247, 250, 0.7);\n --try-it-panel-controls-background-color: var(--samples-panel-controls-background-color);\n --try-it-panel-action-button-width: auto;\n\n /**\n * @tokens Request and Response panel\n * @presenter Color\n */\n --request-and-response-panel-background-color: #fff;\n\n // @tokens End\n"], ["\n /**\n * @tokens Panel border\n */\n --panels-border-radius: 8px; // @presenter BorderRadius\n\n /**\n * @tokens Samples panel\n * @presenter Color\n */\n --samples-panel-gap: 20px;\n --samples-panel-width: 50%;\n\n --panels-background-color: #fff;\n\n --panels-title-color: var(--color-content);\n --panels-title-font-size: var(--h3-font-size);\n --panels-title-line-height: var(--h3-line-height);\n --panels-title-font-weight: var(--h-font-weight);\n --panels-title-font-family: var(--font-family-base);\n\n --panels-sub-title-color: var(--color-content);\n --panels-sub-title-font-size: 0.9em;\n --panels-sub-title-font-weight: normal;\n --panels-sub-title-font-family: var(--font-family-base);\n --panels-sub-title-line-height: var(--h3-line-height);\n\n --panels-shelf-icon-color: var(--color-content);\n\n --samples-panel-block-background-color: #fff;\n --samples-panel-background-color: #52606d;\n --samples-panel-callback-background-color: var(--color-secondary-300);\n --samples-panel-controls-background-color: #323f4b;\n --samples-panel-controls-hover-background-color: #3c4c5a;\n --samples-panel-controls-active-border-color: var(--color-accent-500);\n --samples-panel-text-color: #fff;\n --samples-panel-heading-color: #fff;\n\n --samples-panel-markdown-background-color: #3c4c5a;\n --samples-panel-markdown-border-color: #46596a;\n\n /**\n * @tokens Try It panel\n * @presenter Color\n */\n\n --try-it-panel-tab-background-color: var(--samples-panel-background-color);\n --try-it-panel-active-tab-background-color: #47535e;\n --try-it-panel-active-tab-border-color: var(--color-accent-500);\n --try-it-panel-disabled-tab-color: rgba(245, 247, 250, 0.7);\n --try-it-panel-controls-background-color: var(--samples-panel-controls-background-color);\n --try-it-panel-action-button-width: auto;\n\n /**\n * @tokens Request and Response panel\n * @presenter Color\n */\n --request-and-response-panel-background-color: #fff;\n\n // @tokens End\n"])));
|
|
20
20
|
var tooltip = (0, styled_components_1.css)(templateObject_12 || (templateObject_12 = __makeTemplateObject(["\n /**\n * @tokens Tooltip Base\n * @presenter Color\n */\n --tooltip-color: var(--color-secondary-300);\n --tooltip-background-color: #52606d;\n\n /**\n * @tokens Tooltip Copy Button\n * @presenter Color\n */\n .tooltip-copy-button {\n --tooltip-color: #000;\n --tooltip-background-color: #fff;\n }\n\n // @tokens End\n"], ["\n /**\n * @tokens Tooltip Base\n * @presenter Color\n */\n --tooltip-color: var(--color-secondary-300);\n --tooltip-background-color: #52606d;\n\n /**\n * @tokens Tooltip Copy Button\n * @presenter Color\n */\n .tooltip-copy-button {\n --tooltip-color: #000;\n --tooltip-background-color: #fff;\n }\n\n // @tokens End\n"])));
|
|
21
21
|
var code = (0, styled_components_1.css)(templateObject_13 || (templateObject_13 = __makeTemplateObject(["\n /**\n * @tokens Code base styles\n */\n --code-font-size: 13px; // @presenter FontSize\n --code-font-family: var(--font-family-monospaced); // @presenter FontFamily\n --code-font-weight: 400; // @presenter FontWeight\n --code-wrap: pre;\n\n /**\n * @tokens Inline Code\n */\n --inline-code-font-size: var(--code-font-size); // @presenter FontSize\n --inline-code-font-family: var(--code-font-family); // @presenter FontFamily\n --inline-code-color: #e53935; // @presenter Color\n --inline-code-background-color: var(--color-secondary-200); // @presenter Color\n --inline-code-border-color: var(--global-border-color); // @presenter Color\n --inline-code-border-radius: var(--global-border-radius); // @presenter BorderRadius\n\n /**\n * @tokens Code Block\n */\n --code-block-font-size: var(--code-font-size); // @presenter FontSize\n --code-block-font-family: var(--code-font-family); // @presenter FontFamily\n --code-block-color: #f1928f; // @presenter Color\n --code-block-background-color: rgba(217, 205, 199, 0.05); // @presenter Color\n --code-block-border-color: var(--global-border-color); // @presenter Color\n --code-block-border-radius: 8px; // @presenter BorderRadius\n --code-block-max-height: 600px;\n --code-block-word-break: initial;\n --code-block-preformatted-background-color: #323f4b; // @presenter Color\n\n --code-block-tokens-default-color: var(--color-content-inverse); // @presenter Color\n\n --code-block-tokens-comment-color: hsl(30, 20%, 50%); // @presenter Color\n --code-block-tokens-prolog-color: var(--code-block-tokens-comment-color); // @presenter Color\n --code-block-tokens-doctype-color: var(--code-block-tokens-comment-color); // @presenter Color\n --code-block-tokens-cdata-color: var(--code-block-tokens-comment-color); // @presenter Color\n\n --code-block-tokens-property-color: var(--code-block-tokens-default-color); // @presenter Color\n --code-block-tokens-tag-color: var(--code-block-tokens-default-color); // @presenter Color\n --code-block-tokens-number-color: var(--code-block-tokens-default-color); // @presenter Color\n --code-block-tokens-constant-color: var(--code-block-tokens-default-color); // @presenter Color\n --code-block-tokens-symbol-color: var(--code-block-tokens-default-color); // @presenter Color\n\n --code-block-tokens-boolean-color: var(--color-error-500); // @presenter Color\n\n --code-block-tokens-string-color: #fee39e; // @presenter Color\n --code-block-tokens-selector-color: var(--code-block-tokens-string-color); // @presenter Color\n --code-block-tokens-attr-name-color: var(--code-block-tokens-string-color); // @presenter Color\n --code-block-tokens-char-color: var(--code-block-tokens-string-color); // @presenter Color\n --code-block-tokens-builtin-color: var(--code-block-tokens-string-color); // @presenter Color\n --code-block-tokens-inserted-color: var(--code-block-tokens-string-color); // @presenter Color\n\n --code-block-tokens-operator-color: #f5b83d; // @presenter Color\n --code-block-tokens-entity-color: var(--code-block-tokens-operator-color); // @presenter Color\n --code-block-tokens-url-color: var(--code-block-tokens-operator-color); // @presenter Color\n --code-block-tokens-variable-color: var(--code-block-tokens-operator-color); // @presenter Color\n\n --code-block-tokens-keyword-color: #ffdbf4; // @presenter Color\n --code-block-tokens-atrule-color: var(--code-block-tokens-keyword-color); // @presenter Color\n --code-block-tokens-attr-value-color: var(--code-block-tokens-keyword-color); // @presenter Color\n\n --code-block-tokens-regex-color: #e90; // @presenter Color\n --code-block-tokens-important-color: var(--code-block-tokens-regex-color); // @presenter Color\n\n --code-block-tokens-deleted-color: red; // @presenter Color\n\n // @tokens End\n"], ["\n /**\n * @tokens Code base styles\n */\n --code-font-size: 13px; // @presenter FontSize\n --code-font-family: var(--font-family-monospaced); // @presenter FontFamily\n --code-font-weight: 400; // @presenter FontWeight\n --code-wrap: pre;\n\n /**\n * @tokens Inline Code\n */\n --inline-code-font-size: var(--code-font-size); // @presenter FontSize\n --inline-code-font-family: var(--code-font-family); // @presenter FontFamily\n --inline-code-color: #e53935; // @presenter Color\n --inline-code-background-color: var(--color-secondary-200); // @presenter Color\n --inline-code-border-color: var(--global-border-color); // @presenter Color\n --inline-code-border-radius: var(--global-border-radius); // @presenter BorderRadius\n\n /**\n * @tokens Code Block\n */\n --code-block-font-size: var(--code-font-size); // @presenter FontSize\n --code-block-font-family: var(--code-font-family); // @presenter FontFamily\n --code-block-color: #f1928f; // @presenter Color\n --code-block-background-color: rgba(217, 205, 199, 0.05); // @presenter Color\n --code-block-border-color: var(--global-border-color); // @presenter Color\n --code-block-border-radius: 8px; // @presenter BorderRadius\n --code-block-max-height: 600px;\n --code-block-word-break: initial;\n --code-block-preformatted-background-color: #323f4b; // @presenter Color\n\n --code-block-tokens-default-color: var(--color-content-inverse); // @presenter Color\n\n --code-block-tokens-comment-color: hsl(30, 20%, 50%); // @presenter Color\n --code-block-tokens-prolog-color: var(--code-block-tokens-comment-color); // @presenter Color\n --code-block-tokens-doctype-color: var(--code-block-tokens-comment-color); // @presenter Color\n --code-block-tokens-cdata-color: var(--code-block-tokens-comment-color); // @presenter Color\n\n --code-block-tokens-property-color: var(--code-block-tokens-default-color); // @presenter Color\n --code-block-tokens-tag-color: var(--code-block-tokens-default-color); // @presenter Color\n --code-block-tokens-number-color: var(--code-block-tokens-default-color); // @presenter Color\n --code-block-tokens-constant-color: var(--code-block-tokens-default-color); // @presenter Color\n --code-block-tokens-symbol-color: var(--code-block-tokens-default-color); // @presenter Color\n\n --code-block-tokens-boolean-color: var(--color-error-500); // @presenter Color\n\n --code-block-tokens-string-color: #fee39e; // @presenter Color\n --code-block-tokens-selector-color: var(--code-block-tokens-string-color); // @presenter Color\n --code-block-tokens-attr-name-color: var(--code-block-tokens-string-color); // @presenter Color\n --code-block-tokens-char-color: var(--code-block-tokens-string-color); // @presenter Color\n --code-block-tokens-builtin-color: var(--code-block-tokens-string-color); // @presenter Color\n --code-block-tokens-inserted-color: var(--code-block-tokens-string-color); // @presenter Color\n\n --code-block-tokens-operator-color: #f5b83d; // @presenter Color\n --code-block-tokens-entity-color: var(--code-block-tokens-operator-color); // @presenter Color\n --code-block-tokens-url-color: var(--code-block-tokens-operator-color); // @presenter Color\n --code-block-tokens-variable-color: var(--code-block-tokens-operator-color); // @presenter Color\n\n --code-block-tokens-keyword-color: #ffdbf4; // @presenter Color\n --code-block-tokens-atrule-color: var(--code-block-tokens-keyword-color); // @presenter Color\n --code-block-tokens-attr-value-color: var(--code-block-tokens-keyword-color); // @presenter Color\n\n --code-block-tokens-regex-color: #e90; // @presenter Color\n --code-block-tokens-important-color: var(--code-block-tokens-regex-color); // @presenter Color\n\n --code-block-tokens-deleted-color: red; // @presenter Color\n\n // @tokens End\n"])));
|
|
22
22
|
var links = (0, styled_components_1.css)(templateObject_14 || (templateObject_14 = __makeTemplateObject(["\n /**\n * @tokens Links\n */\n --link-color: var(--color-primary-500); // @presenter Color\n --link-decoration: none;\n --link-hover-color: var(--color-primary-100); // @presenter Color\n --link-hover-decoration: underline;\n\n // @tokens End\n"], ["\n /**\n * @tokens Links\n */\n --link-color: var(--color-primary-500); // @presenter Color\n --link-decoration: none;\n --link-hover-color: var(--color-primary-100); // @presenter Color\n --link-hover-decoration: underline;\n\n // @tokens End\n"])));
|
|
@@ -28,8 +28,7 @@ var toc = (0, styled_components_1.css)(templateObject_19 || (templateObject_19 =
|
|
|
28
28
|
var markdown = (0, styled_components_1.css)(templateObject_20 || (templateObject_20 = __makeTemplateObject(["\n /**\n * @tokens Markdown\n * */\n --content-wrapper-max-width: 910px;\n --content-wrapper-padding-vertical: 25px; // @presenter Spacing\n --content-wrapper-padding-horizontal: 0px; // @presenter Spacing\n\n // @tokens End\n"], ["\n /**\n * @tokens Markdown\n * */\n --content-wrapper-max-width: 910px;\n --content-wrapper-padding-vertical: 25px; // @presenter Spacing\n --content-wrapper-padding-horizontal: 0px; // @presenter Spacing\n\n // @tokens End\n"])));
|
|
29
29
|
var blockquote = (0, styled_components_1.css)(templateObject_21 || (templateObject_21 = __makeTemplateObject(["\n /**\n * @tokens Blockquote\n * */\n // TODO: fix typo\n --bloquote-margin-vertical: 1.5em; // @presenter Spacing\n --bloquote-margin-horizontal: 0; // @presenter Spacing\n --bloquote-padding-vertical: 0; // @presenter Spacing\n --bloquote-padding-horizontal: calc(var(--spacing-unit) * 4); // @presenter Spacing\n --bloquote-background-color: transparent; // @presenter Color\n\n // @tokens End\n"], ["\n /**\n * @tokens Blockquote\n * */\n // TODO: fix typo\n --bloquote-margin-vertical: 1.5em; // @presenter Spacing\n --bloquote-margin-horizontal: 0; // @presenter Spacing\n --bloquote-padding-vertical: 0; // @presenter Spacing\n --bloquote-padding-horizontal: calc(var(--spacing-unit) * 4); // @presenter Spacing\n --bloquote-background-color: transparent; // @presenter Color\n\n // @tokens End\n"])));
|
|
30
30
|
var portalSearch = (0, styled_components_1.css)(templateObject_22 || (templateObject_22 = __makeTemplateObject(["\n /**\n * @tokens Portal Search\n */\n --search-input-background-color: rgba(255, 255, 255, 0.1); // @presenter Color\n --search-input-text-color: #fff; // @presenter Color\n --search-input-border-radius: var(--global-border-radius); // @presenter BorderRadius\n --search-input-font-size: var(--navbar-item-font-size); // @presenter FontSize\n --search-input-font-family: var(--font-family-base); // @presenter FontFamily\n --search-input-line-height: 1.15em; // @presenter LineHeight\n // TODO: fix typo\n --search-popover-backgrond-color: #fff; // @presenter Color\n --search-popover-border-radius: var(--search-input-border-radius); // @presenter BorderRadius\n --search-item-text-color: var(--color-content-secondary); // @presenter Color\n --search-item-title-text-color: var(--color-content); // @presenter Color\n --search-item-active-background-color: rgba(0, 68, 212, 0.1); // @presenter Color\n\n // @tokens End\n"], ["\n /**\n * @tokens Portal Search\n */\n --search-input-background-color: rgba(255, 255, 255, 0.1); // @presenter Color\n --search-input-text-color: #fff; // @presenter Color\n --search-input-border-radius: var(--global-border-radius); // @presenter BorderRadius\n --search-input-font-size: var(--navbar-item-font-size); // @presenter FontSize\n --search-input-font-family: var(--font-family-base); // @presenter FontFamily\n --search-input-line-height: 1.15em; // @presenter LineHeight\n // TODO: fix typo\n --search-popover-backgrond-color: #fff; // @presenter Color\n --search-popover-border-radius: var(--search-input-border-radius); // @presenter BorderRadius\n --search-item-text-color: var(--color-content-secondary); // @presenter Color\n --search-item-title-text-color: var(--color-content); // @presenter Color\n --search-item-active-background-color: rgba(0, 68, 212, 0.1); // @presenter Color\n\n // @tokens End\n"])));
|
|
31
|
-
exports.
|
|
32
|
-
exports.
|
|
33
|
-
exports.
|
|
34
|
-
|
|
35
|
-
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23, templateObject_24, templateObject_25, templateObject_26;
|
|
31
|
+
exports.darkMode = (0, styled_components_1.css)(templateObject_23 || (templateObject_23 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), baseDarkColors);
|
|
32
|
+
exports.styles = (0, styled_components_1.css)(templateObject_24 || (templateObject_24 = __makeTemplateObject(["\n :root {\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n\n ", "\n }\n\n :root.dark {\n ", ";\n }\n"], ["\n :root {\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n ", "\n\n ", "\n }\n\n :root.dark {\n ", ";\n }\n"])), baseColors, httpColors, responseColors, typography, headingsTypography, borders, admonition, buttons, sidebar, panels, navbar, footer, logo, toc, tooltip, code, links, markdown, blockquote, portalSearch, openapiAndGraphqlDocs, exports.darkMode);
|
|
33
|
+
exports.GlobalStyle = (0, styled_components_1.createGlobalStyle)(templateObject_25 || (templateObject_25 = __makeTemplateObject(["\n ", ";\n"], ["\n ", ";\n"])), exports.styles);
|
|
34
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11, templateObject_12, templateObject_13, templateObject_14, templateObject_15, templateObject_16, templateObject_17, templateObject_18, templateObject_19, templateObject_20, templateObject_21, templateObject_22, templateObject_23, templateObject_24, templateObject_25;
|
|
@@ -34,14 +34,14 @@ function useActiveHeading(contentElement, displayedHeaders) {
|
|
|
34
34
|
}
|
|
35
35
|
return visibleHeadings;
|
|
36
36
|
};
|
|
37
|
-
var getIndexFromId = function (id) {
|
|
37
|
+
var getIndexFromId = (0, react_1.useCallback)(function (id) {
|
|
38
38
|
return headingElements.findIndex(function (item) { return item.id === id; });
|
|
39
|
-
};
|
|
39
|
+
}, [headingElements]);
|
|
40
40
|
var findHeaders = function (allContent) {
|
|
41
41
|
var allHeaders = allContent.querySelectorAll('.heading-anchor');
|
|
42
42
|
return Array.from(allHeaders);
|
|
43
43
|
};
|
|
44
|
-
var intersectionCallback = function (headings) {
|
|
44
|
+
var intersectionCallback = (0, react_1.useCallback)(function (headings) {
|
|
45
45
|
var _a;
|
|
46
46
|
headingElementsRef.current = headings.reduce(function (map, headingElement) {
|
|
47
47
|
map[headingElement.target.id] = headingElement;
|
|
@@ -66,7 +66,7 @@ function useActiveHeading(contentElement, displayedHeaders) {
|
|
|
66
66
|
return getIndexFromId(a.target.id) - getIndexFromId(b.target.id);
|
|
67
67
|
});
|
|
68
68
|
setHeading(visibleHeadings[0].target.id);
|
|
69
|
-
};
|
|
69
|
+
}, [getIndexFromId, headingElements]);
|
|
70
70
|
(0, react_1.useEffect)(function () {
|
|
71
71
|
if (!contentElement) {
|
|
72
72
|
return;
|
|
@@ -76,6 +76,7 @@ function useActiveHeading(contentElement, displayedHeaders) {
|
|
|
76
76
|
setHeadingElements(findHeaders(contentElement));
|
|
77
77
|
});
|
|
78
78
|
return function () { return unlisten(); };
|
|
79
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
79
80
|
}, [contentElement]);
|
|
80
81
|
(0, react_1.useEffect)(function () {
|
|
81
82
|
if (!(headingElements === null || headingElements === void 0 ? void 0 : headingElements.length)) {
|
|
@@ -93,7 +94,7 @@ function useActiveHeading(contentElement, displayedHeaders) {
|
|
|
93
94
|
}
|
|
94
95
|
});
|
|
95
96
|
return function () { return observer.disconnect(); };
|
|
96
|
-
}, [headingElements, displayedHeaders]);
|
|
97
|
+
}, [headingElements, displayedHeaders, intersectionCallback]);
|
|
97
98
|
return heading;
|
|
98
99
|
}
|
|
99
100
|
exports.useActiveHeading = useActiveHeading;
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
2
|
import styled from 'styled-components';
|
|
3
3
|
|
|
4
4
|
import { useThemeSettings } from '@portal/hooks';
|
|
5
5
|
import { DEFAULT_THEME_NAME } from '@portal/constants';
|
|
6
6
|
import { ColorModeIcon } from '@theme/icons/ColorModeIcon';
|
|
7
|
+
import { useMount } from '@theme/hooks';
|
|
7
8
|
|
|
8
9
|
export function ColorModeSwitcher(): JSX.Element | null {
|
|
9
10
|
const themeSettings = useThemeSettings(DEFAULT_THEME_NAME);
|
|
10
11
|
const colorMode = themeSettings.colorMode;
|
|
11
12
|
const [activeColorMode, setActiveColorMode] = useState('');
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
useMount(() => {
|
|
14
15
|
setActiveColorMode(document.documentElement.className || colorMode?.default);
|
|
15
|
-
}
|
|
16
|
+
});
|
|
16
17
|
|
|
17
18
|
if (!colorMode?.modes || colorMode?.hide) {
|
|
18
19
|
return null;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import React, { memo } from 'react';
|
|
2
2
|
|
|
3
3
|
import { SamplesControlButton } from '@theme/SamplesPanelControls';
|
|
4
|
-
import { Tooltip } from '@theme/Tooltip';
|
|
4
|
+
import { Tooltip, TooltipProps } from '@theme/Tooltip';
|
|
5
5
|
import { useControl } from '@theme/hooks';
|
|
6
6
|
import { ClipboardService } from '@theme/utils';
|
|
7
7
|
|
|
8
8
|
export interface CopyButtonWrapperProps {
|
|
9
9
|
data: unknown;
|
|
10
|
-
children: (props: {
|
|
10
|
+
children: (props: {
|
|
11
|
+
renderCopyButton: (placement?: TooltipProps['placement']) => JSX.Element;
|
|
12
|
+
}) => JSX.Element;
|
|
11
13
|
dataTestId?: string;
|
|
12
14
|
}
|
|
13
15
|
|
|
@@ -32,12 +34,13 @@ function CopyButtonWrapperComponent({
|
|
|
32
34
|
showTooltip();
|
|
33
35
|
};
|
|
34
36
|
|
|
35
|
-
const renderCopyButton = (): JSX.Element => {
|
|
37
|
+
const renderCopyButton = (placement: TooltipProps['placement'] = 'top'): JSX.Element => {
|
|
36
38
|
return (
|
|
37
39
|
<Tooltip
|
|
38
40
|
className="copy-button"
|
|
39
41
|
tip={ClipboardService.isSupported() ? 'Copied' : 'Not supported in your browser'}
|
|
40
42
|
isOpen={tooltip.isOpened}
|
|
43
|
+
placement={placement}
|
|
41
44
|
>
|
|
42
45
|
<SamplesControlButton onClick={copy} data-cy={dataTestId}>
|
|
43
46
|
Copy
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
|
|
4
|
+
type DetailsProps = {
|
|
5
|
+
summary: string;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export function Details({ summary, children }: React.PropsWithChildren<DetailsProps>): JSX.Element {
|
|
9
|
+
return (
|
|
10
|
+
<StyledDetails>
|
|
11
|
+
<summary>{summary}</summary>
|
|
12
|
+
<StyledDetailsContent>{children}</StyledDetailsContent>
|
|
13
|
+
</StyledDetails>
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const StyledDetails = styled.details``;
|
|
18
|
+
|
|
19
|
+
const StyledDetailsContent = styled.div``;
|
|
@@ -7,17 +7,21 @@ import { PageNavigation } from '@theme/PageNavigation/PageNavigation';
|
|
|
7
7
|
type MarkdownLayoutProps = {
|
|
8
8
|
tableOfContent: React.ReactNode;
|
|
9
9
|
markdownWrapper: React.ReactNode;
|
|
10
|
+
showPrevButton?: boolean;
|
|
11
|
+
showNextButton?: boolean;
|
|
10
12
|
};
|
|
11
13
|
|
|
12
14
|
export function MarkdownLayout({
|
|
13
15
|
tableOfContent,
|
|
14
16
|
markdownWrapper,
|
|
17
|
+
showPrevButton,
|
|
18
|
+
showNextButton,
|
|
15
19
|
}: MarkdownLayoutProps): JSX.Element {
|
|
16
20
|
return (
|
|
17
21
|
<PageWrapper data-component-name="Markdown/MarkdownLayout">
|
|
18
22
|
<ContentWrapper withToc={true}>
|
|
19
23
|
{markdownWrapper}
|
|
20
|
-
<PageNavigation />
|
|
24
|
+
<PageNavigation showPrevButton={showPrevButton} showNextButton={showNextButton} />
|
|
21
25
|
</ContentWrapper>
|
|
22
26
|
{tableOfContent}
|
|
23
27
|
</PageWrapper>
|
|
@@ -4,10 +4,10 @@ import styled from 'styled-components';
|
|
|
4
4
|
import type { ResolvedConfigLinks, ResolvedNavItem } from '@theme/types/portal';
|
|
5
5
|
|
|
6
6
|
import { NavbarItem } from '@theme/Navbar/NavbarItem';
|
|
7
|
-
import { isPrimitive
|
|
7
|
+
import { isPrimitive } from '@theme/utils';
|
|
8
8
|
|
|
9
9
|
export function NavbarMenu({ menuItems }: { menuItems: ResolvedConfigLinks }): JSX.Element | null {
|
|
10
|
-
if (isPrimitive(menuItems)
|
|
10
|
+
if (isPrimitive(menuItems)) {
|
|
11
11
|
return null;
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -6,7 +6,15 @@ import { NextPageLink } from '@theme/PageNavigation/NextPageLink';
|
|
|
6
6
|
import { useThemeSettings } from '@portal/hooks';
|
|
7
7
|
import { DEFAULT_THEME_NAME } from '@portal/constants';
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
type PageNavigationProps = {
|
|
10
|
+
showPrevButton?: boolean;
|
|
11
|
+
showNextButton?: boolean;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export function PageNavigation({
|
|
15
|
+
showPrevButton = true,
|
|
16
|
+
showNextButton = true,
|
|
17
|
+
}: PageNavigationProps): JSX.Element | null {
|
|
10
18
|
const { navigation } = useThemeSettings(DEFAULT_THEME_NAME);
|
|
11
19
|
|
|
12
20
|
if (navigation?.hide) {
|
|
@@ -15,8 +23,8 @@ export function PageNavigation(): JSX.Element | null {
|
|
|
15
23
|
|
|
16
24
|
return (
|
|
17
25
|
<PageNavigationWrapper data-component-name="PageNavigation/PageNavigation">
|
|
18
|
-
<PreviousPageLink />
|
|
19
|
-
<NextPageLink />
|
|
26
|
+
{showPrevButton && <PreviousPageLink />}
|
|
27
|
+
{showNextButton && <NextPageLink />}
|
|
20
28
|
</PageNavigationWrapper>
|
|
21
29
|
);
|
|
22
30
|
}
|
|
@@ -78,11 +78,11 @@ export function SourceCode({
|
|
|
78
78
|
// Because we don't have session storage in ssr and can't get the security details there
|
|
79
79
|
// Issue for more details https://github.com/Redocly/reference-docs/issues/888
|
|
80
80
|
useEffect(() => {
|
|
81
|
-
const
|
|
82
|
-
if (
|
|
83
|
-
setSourceCode(
|
|
81
|
+
const _source = source || externalSource?.sample?.get?.(externalSource);
|
|
82
|
+
if (_source) {
|
|
83
|
+
setSourceCode(_source);
|
|
84
84
|
}
|
|
85
|
-
}, [externalSource]);
|
|
85
|
+
}, [source, externalSource]);
|
|
86
86
|
|
|
87
87
|
if (withCopyButton) {
|
|
88
88
|
return (
|
package/src/globalStyle.ts
CHANGED
|
@@ -80,12 +80,10 @@ const baseColors = css`
|
|
|
80
80
|
// @tokens End
|
|
81
81
|
`;
|
|
82
82
|
const baseDarkColors = css`
|
|
83
|
-
/* === Palette === */
|
|
84
|
-
|
|
85
83
|
/**
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
* @tokens Base Dark Colors
|
|
85
|
+
* @presenter Color
|
|
86
|
+
*/
|
|
89
87
|
--color-primary-100: #969ca6;
|
|
90
88
|
--color-primary-200: #7f8693;
|
|
91
89
|
--color-primary-300: #7d7d80;
|
|
@@ -95,6 +93,8 @@ const baseDarkColors = css`
|
|
|
95
93
|
--color-primary-700: #28282a;
|
|
96
94
|
--color-primary-800: #202021;
|
|
97
95
|
--color-primary-900: #000000;
|
|
96
|
+
|
|
97
|
+
// @tokens End
|
|
98
98
|
`;
|
|
99
99
|
|
|
100
100
|
const httpColors = css`
|
|
@@ -494,6 +494,21 @@ const panels = css`
|
|
|
494
494
|
--samples-panel-width: 50%;
|
|
495
495
|
|
|
496
496
|
--panels-background-color: #fff;
|
|
497
|
+
|
|
498
|
+
--panels-title-color: var(--color-content);
|
|
499
|
+
--panels-title-font-size: var(--h3-font-size);
|
|
500
|
+
--panels-title-line-height: var(--h3-line-height);
|
|
501
|
+
--panels-title-font-weight: var(--h-font-weight);
|
|
502
|
+
--panels-title-font-family: var(--font-family-base);
|
|
503
|
+
|
|
504
|
+
--panels-sub-title-color: var(--color-content);
|
|
505
|
+
--panels-sub-title-font-size: 0.9em;
|
|
506
|
+
--panels-sub-title-font-weight: normal;
|
|
507
|
+
--panels-sub-title-font-family: var(--font-family-base);
|
|
508
|
+
--panels-sub-title-line-height: var(--h3-line-height);
|
|
509
|
+
|
|
510
|
+
--panels-shelf-icon-color: var(--color-content);
|
|
511
|
+
|
|
497
512
|
--samples-panel-block-background-color: #fff;
|
|
498
513
|
--samples-panel-background-color: #52606d;
|
|
499
514
|
--samples-panel-callback-background-color: var(--color-secondary-300);
|
|
@@ -829,10 +844,6 @@ const portalSearch = css`
|
|
|
829
844
|
// @tokens End
|
|
830
845
|
`;
|
|
831
846
|
|
|
832
|
-
export const lightMode = css`
|
|
833
|
-
${baseColors};
|
|
834
|
-
`;
|
|
835
|
-
|
|
836
847
|
export const darkMode = css`
|
|
837
848
|
${baseDarkColors}
|
|
838
849
|
`;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState, useEffect, useRef } from 'react';
|
|
1
|
+
import { useState, useEffect, useRef, useCallback } from 'react';
|
|
2
2
|
import { useHistory } from 'react-router-dom';
|
|
3
3
|
|
|
4
4
|
export type UseActiveHeadingReturnType = string | undefined;
|
|
@@ -31,47 +31,53 @@ export function useActiveHeading(
|
|
|
31
31
|
return visibleHeadings;
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
const getIndexFromId = (
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
const getIndexFromId = useCallback(
|
|
35
|
+
(id: string) => {
|
|
36
|
+
return headingElements.findIndex((item) => item.id === id);
|
|
37
|
+
},
|
|
38
|
+
[headingElements],
|
|
39
|
+
);
|
|
37
40
|
|
|
38
41
|
const findHeaders = (allContent: HTMLDivElement) => {
|
|
39
42
|
const allHeaders = allContent.querySelectorAll<HTMLElement>('.heading-anchor');
|
|
40
43
|
return Array.from(allHeaders);
|
|
41
44
|
};
|
|
42
45
|
|
|
43
|
-
const intersectionCallback = (
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
map
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
46
|
+
const intersectionCallback = useCallback(
|
|
47
|
+
(headings: IntersectionObserverEntry[]) => {
|
|
48
|
+
headingElementsRef.current = headings.reduce(
|
|
49
|
+
(map: HeadingEntry, headingElement: IntersectionObserverEntry) => {
|
|
50
|
+
map[headingElement.target.id] = headingElement;
|
|
51
|
+
return map;
|
|
52
|
+
},
|
|
53
|
+
headingElementsRef.current,
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
const totalHeight = window.scrollY + window.innerHeight;
|
|
57
|
+
// handle bottom of the page
|
|
58
|
+
if (totalHeight >= document.body.scrollHeight) {
|
|
59
|
+
const newHeading = headingElements[headingElements?.length - 1]?.id || undefined;
|
|
60
|
+
setHeading(newHeading);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
59
63
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
const visibleHeadings = getVisibleHeadings();
|
|
65
|
+
if (!visibleHeadings.length) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
64
68
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
+
if (visibleHeadings.length === 1) {
|
|
70
|
+
setHeading(visibleHeadings[0].target.id);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
69
73
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
visibleHeadings.sort((a, b) => {
|
|
75
|
+
return getIndexFromId(a.target.id) - getIndexFromId(b.target.id);
|
|
76
|
+
});
|
|
77
|
+
setHeading(visibleHeadings[0].target.id);
|
|
78
|
+
},
|
|
79
|
+
[getIndexFromId, headingElements],
|
|
80
|
+
);
|
|
75
81
|
|
|
76
82
|
useEffect(() => {
|
|
77
83
|
if (!contentElement) {
|
|
@@ -84,6 +90,7 @@ export function useActiveHeading(
|
|
|
84
90
|
});
|
|
85
91
|
|
|
86
92
|
return () => unlisten();
|
|
93
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
87
94
|
}, [contentElement]);
|
|
88
95
|
|
|
89
96
|
useEffect(() => {
|
|
@@ -104,7 +111,7 @@ export function useActiveHeading(
|
|
|
104
111
|
});
|
|
105
112
|
|
|
106
113
|
return () => observer.disconnect();
|
|
107
|
-
}, [headingElements, displayedHeaders]);
|
|
114
|
+
}, [headingElements, displayedHeaders, intersectionCallback]);
|
|
108
115
|
|
|
109
116
|
return heading;
|
|
110
117
|
}
|