@redocly/theme 0.51.0 → 0.52.0-next.1
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/lib/components/Search/SearchAiMessage.js +4 -4
- package/lib/core/styles/global.js +29 -12
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/layouts/InternalServerErrorLayout.d.ts +1 -0
- package/lib/layouts/InternalServerErrorLayout.js +49 -0
- package/package.json +7 -6
- package/src/components/Search/SearchAiMessage.tsx +4 -3
- package/src/core/styles/global.ts +29 -12
- package/src/index.ts +1 -0
- package/src/layouts/InternalServerErrorLayout.tsx +67 -0
|
@@ -17,19 +17,19 @@ function SearchAiMessage({ role, content, isThinking, resources, className, }) {
|
|
|
17
17
|
const { useMarkdownText, useTranslate } = (0, hooks_1.useThemeHooks)();
|
|
18
18
|
const markDownContent = useMarkdownText(content || '');
|
|
19
19
|
const { translate } = useTranslate();
|
|
20
|
-
return (react_1.default.createElement(SearchAiMessageWrapper, { "data-component-name": "Search/SearchAiMessage", role: role, className: className },
|
|
20
|
+
return (react_1.default.createElement(SearchAiMessageWrapper, { "data-component-name": "Search/SearchAiMessage", role: role, className: className, "data-testid": "search-ai-message" },
|
|
21
21
|
role === constants_1.AiSearchConversationRole.ASSISTANT && (react_1.default.createElement(AiStarsIcon_1.AiStarsIcon, { size: "32px", background: "var(--search-ai-icon-bg-color)", borderRadius: "var(--border-radius-lg)", color: "var(--search-ai-icon-color)", margin: "0 var(--spacing-xs) 0 0" })),
|
|
22
22
|
react_1.default.createElement(MessageWrapper, { role: role },
|
|
23
23
|
role === constants_1.AiSearchConversationRole.ASSISTANT ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
24
|
-
react_1.default.createElement(ResponseText, { as: "div", children: markDownContent }),
|
|
25
|
-
!isThinking && resources && resources.length > 0 && (react_1.default.createElement(ResourcesWrapper,
|
|
24
|
+
react_1.default.createElement(ResponseText, { as: "div", children: markDownContent, "data-testid": "response-text" }),
|
|
25
|
+
!isThinking && resources && resources.length > 0 && (react_1.default.createElement(ResourcesWrapper, { "data-testid": "resources-wrapper" },
|
|
26
26
|
react_1.default.createElement(ResourcesTitle, { "data-translation-key": "search.ai.resourcesFound" },
|
|
27
27
|
resources.length,
|
|
28
28
|
" ",
|
|
29
29
|
translate('search.ai.resourcesFound', 'resources found')),
|
|
30
30
|
react_1.default.createElement(ResourceTagsWrapper, null, resources.map((resource, idx) => (react_1.default.createElement(Link_1.Link, { key: idx, to: resource.url, target: "_blank" },
|
|
31
31
|
react_1.default.createElement(ResourceTag, { borderless: true, icon: react_1.default.createElement(DocumentIcon_1.DocumentIcon, { color: "--search-ai-resource-tag-icon-color" }) }, resource.title))))))))) : (content),
|
|
32
|
-
isThinking && content.length === 0 && (react_1.default.createElement(ThinkingDotsWrapper,
|
|
32
|
+
isThinking && content.length === 0 && (react_1.default.createElement(ThinkingDotsWrapper, { "data-testid": "thinking-dots-wrapper" },
|
|
33
33
|
react_1.default.createElement(ThinkingDot, null),
|
|
34
34
|
react_1.default.createElement(ThinkingDot, null),
|
|
35
35
|
react_1.default.createElement(ThinkingDot, null))))));
|
|
@@ -950,19 +950,36 @@ const pages = (0, styled_components_1.css) `
|
|
|
950
950
|
--page-403-oidc-description-margin: var(--spacing-md) var(--spacing-sm);
|
|
951
951
|
|
|
952
952
|
// @tokens End
|
|
953
|
+
|
|
954
|
+
/**
|
|
955
|
+
* @tokens 500 Page
|
|
956
|
+
* @presenter Color
|
|
957
|
+
*/
|
|
958
|
+
|
|
959
|
+
--page-500-font-family: var(--font-family-base); // @presenter FontFamily
|
|
960
|
+
--page-500-margin-vertical: var(--spacing-xl);
|
|
961
|
+
--page-500-margin-horizontal: calc(var(--spacing-xxl) * 2);
|
|
962
|
+
--page-500-gap: var(--spacing-lg);
|
|
963
|
+
--page-500-max-width: 680px;
|
|
964
|
+
|
|
965
|
+
--page-500-status-text-color: var(--text-color-helper);
|
|
966
|
+
--page-500-status-font-size: var(--font-size-lg); // @presenter FontSize
|
|
967
|
+
--page-500-status-font-weight: var(--font-weight-semibold); // @presenter FontWeight
|
|
968
|
+
--page-500-status-line-height: var(--line-height-lg); // @presenter LineHeight
|
|
969
|
+
|
|
970
|
+
--page-500-title-text-color: var(--text-color-primary);
|
|
971
|
+
--page-500-title-font-size: 42px; // @presenter FontSize
|
|
972
|
+
--page-500-title-font-weight: var(--font-weight-bold); // @presenter FontWeight
|
|
973
|
+
--page-500-title-line-height: 50px; // @presenter LineHeight
|
|
974
|
+
--page-500-status-line-height: var(--line-height-lg); // @presenter LineHeight
|
|
975
|
+
|
|
976
|
+
--page-500-description-text-color: var(--text-color-secondary);
|
|
977
|
+
--page-500-description-font-size: var(--font-size-xl); // @presenter FontSize
|
|
978
|
+
--page-500-description-font-weight: var(--font-weight-regular); // @presenter FontWeight
|
|
979
|
+
--page-500-description-line-height: var(--line-height-xl); // @presenter LineHeight
|
|
980
|
+
|
|
981
|
+
// @tokens End
|
|
953
982
|
`;
|
|
954
|
-
// //
|
|
955
|
-
// --color-raspberry-1: #612241;
|
|
956
|
-
// --color-raspberry-2: #77214c;
|
|
957
|
-
// --color-raspberry-3: #901d56;
|
|
958
|
-
// --color-raspberry-4: #b3185e;
|
|
959
|
-
// --color-raspberry-5: #d6236a;
|
|
960
|
-
// --color-raspberry-6: #f9316d;
|
|
961
|
-
// --color-raspberry-7: #fb6382;
|
|
962
|
-
// --color-raspberry-8: #fd838f;
|
|
963
|
-
// --color-raspberry-9: #feacad;
|
|
964
|
-
// --color-raspberry-10: #fed9d5;
|
|
965
|
-
// --color-raspberry-11: #fef0ef;
|
|
966
983
|
const error = (0, styled_components_1.css) `
|
|
967
984
|
--error-bubble-padding: var(--spacing-sm);
|
|
968
985
|
--error-bubble-gap: var(--spacing-xxs);
|
package/lib/index.d.ts
CHANGED
|
@@ -228,5 +228,6 @@ export * from './layouts/Forbidden';
|
|
|
228
228
|
export * from './layouts/OIDCForbidden';
|
|
229
229
|
export * from './layouts/ThreePanelLayout';
|
|
230
230
|
export * from './layouts/CodeWalkthroughLayout';
|
|
231
|
+
export * from './layouts/InternalServerErrorLayout';
|
|
231
232
|
export * as markdoc from './markdoc/default';
|
|
232
233
|
export * from './components/DatePicker/DatePicker';
|
package/lib/index.js
CHANGED
|
@@ -281,6 +281,7 @@ __exportStar(require("./layouts/Forbidden"), exports);
|
|
|
281
281
|
__exportStar(require("./layouts/OIDCForbidden"), exports);
|
|
282
282
|
__exportStar(require("./layouts/ThreePanelLayout"), exports);
|
|
283
283
|
__exportStar(require("./layouts/CodeWalkthroughLayout"), exports);
|
|
284
|
+
__exportStar(require("./layouts/InternalServerErrorLayout"), exports);
|
|
284
285
|
/* Markdoc */
|
|
285
286
|
exports.markdoc = __importStar(require("./markdoc/default"));
|
|
286
287
|
/* DatePicker */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function InternalServerErrorLayout(): JSX.Element;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.InternalServerErrorLayout = InternalServerErrorLayout;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const styled_components_1 = __importDefault(require("styled-components"));
|
|
9
|
+
const hooks_1 = require("../core/hooks");
|
|
10
|
+
const Button_1 = require("../components/Button/Button");
|
|
11
|
+
const ArrowLeftIcon_1 = require("../icons/ArrowLeftIcon/ArrowLeftIcon");
|
|
12
|
+
function InternalServerErrorLayout() {
|
|
13
|
+
const { useTranslate } = (0, hooks_1.useThemeHooks)();
|
|
14
|
+
const { translate } = useTranslate();
|
|
15
|
+
return (react_1.default.createElement(Wrapper, { "data-component-name": "layouts/InternalServerError" },
|
|
16
|
+
react_1.default.createElement(StatusText, null, "500"),
|
|
17
|
+
react_1.default.createElement(Title, { "data-translation-key": "page.internalServerError.title" }, translate('page.internalServerError.title', 'Internal Server Error')),
|
|
18
|
+
react_1.default.createElement(Description, { "data-translation-key": "page.internalServerError.description" }, translate('page.internalServerError.description', 'Something went wrong on our end. Please try again later or contact support if the problem persists.')),
|
|
19
|
+
react_1.default.createElement(Button_1.Button, { variant: "primary", size: "large", to: "/", "data-translation-key": "page.homeButton", icon: react_1.default.createElement(ArrowLeftIcon_1.ArrowLeftIcon, null) }, translate('page.homeButton', 'Go home'))));
|
|
20
|
+
}
|
|
21
|
+
const Wrapper = styled_components_1.default.div `
|
|
22
|
+
height: 100%;
|
|
23
|
+
max-width: var(--page-500-max-width);
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
justify-content: center;
|
|
27
|
+
margin: var(--page-500-margin-vertical) var(--page-500-margin-horizontal);
|
|
28
|
+
font-family: var(--page-500-font-family);
|
|
29
|
+
gap: var(--page-500-gap);
|
|
30
|
+
`;
|
|
31
|
+
const StatusText = styled_components_1.default.div `
|
|
32
|
+
color: var(--page-500-status-text-color);
|
|
33
|
+
font-size: var(--page-500-status-font-size);
|
|
34
|
+
line-height: var(--page-500-status-line-height);
|
|
35
|
+
font-weight: var(--page-500-status-font-weight);
|
|
36
|
+
`;
|
|
37
|
+
const Title = styled_components_1.default.div `
|
|
38
|
+
color: var(--page-500-title-text-color);
|
|
39
|
+
font-size: var(--page-500-title-font-size);
|
|
40
|
+
line-height: var(--page-500-title-line-height);
|
|
41
|
+
font-weight: var(--page-500-title-font-weight);
|
|
42
|
+
`;
|
|
43
|
+
const Description = styled_components_1.default.div `
|
|
44
|
+
color: var(--page-500-description-text-color);
|
|
45
|
+
font-size: var(--page-500-description-font-size);
|
|
46
|
+
line-height: var(--page-500-description-line-height);
|
|
47
|
+
font-weight: var(--page-500-description-font-weight);
|
|
48
|
+
`;
|
|
49
|
+
//# sourceMappingURL=InternalServerErrorLayout.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.52.0-next.1",
|
|
4
4
|
"description": "Shared UI components lib",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"theme",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@markdoc/markdoc": "0.5.1",
|
|
40
40
|
"@shikijs/types": "1.24.2",
|
|
41
41
|
"@testing-library/jest-dom": "6.1.5",
|
|
42
|
-
"@testing-library/react": "
|
|
42
|
+
"@testing-library/react": "15.0.6",
|
|
43
43
|
"@testing-library/user-event": "14.5.1",
|
|
44
44
|
"@types/file-saver": "2.0.7",
|
|
45
45
|
"@types/highlight-words-core": "1.2.3",
|
|
@@ -48,11 +48,11 @@
|
|
|
48
48
|
"@types/lodash.debounce": "4.0.9",
|
|
49
49
|
"@types/lodash.throttle": "4.1.9",
|
|
50
50
|
"@types/node": "22.10.5",
|
|
51
|
+
"@types/nprogress": "0.2.3",
|
|
51
52
|
"@types/react": "18.3.9",
|
|
52
53
|
"@types/react-dom": "18.3.5",
|
|
53
54
|
"@types/styled-components": "5.1.34",
|
|
54
55
|
"@types/styled-system": "5.1.22",
|
|
55
|
-
"@types/nprogress": "0.2.3",
|
|
56
56
|
"concurrently": "7.6.0",
|
|
57
57
|
"jest": "29.5.0",
|
|
58
58
|
"jest-environment-jsdom": "29.5.0",
|
|
@@ -75,19 +75,20 @@
|
|
|
75
75
|
"webpack": "5.94.0"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
+
"@tanstack/react-virtual": "3.13.0",
|
|
78
79
|
"copy-to-clipboard": "3.3.3",
|
|
79
80
|
"file-saver": "2.0.5",
|
|
80
81
|
"highlight-words-core": "1.2.2",
|
|
81
82
|
"hotkeys-js": "3.10.1",
|
|
83
|
+
"i18next": "22.4.15",
|
|
82
84
|
"jszip": "3.10.1",
|
|
83
85
|
"lodash.debounce": "4.0.8",
|
|
84
86
|
"lodash.throttle": "4.1.1",
|
|
87
|
+
"nprogress": "0.2.0",
|
|
85
88
|
"react-calendar": "4.2.1",
|
|
86
89
|
"react-date-picker": "10.0.3",
|
|
87
90
|
"timeago.js": "4.0.2",
|
|
88
|
-
"
|
|
89
|
-
"nprogress": "0.2.0",
|
|
90
|
-
"@redocly/config": "0.22.0"
|
|
91
|
+
"@redocly/config": "0.22.1"
|
|
91
92
|
},
|
|
92
93
|
"scripts": {
|
|
93
94
|
"watch": "tsc -p tsconfig.build.json && (concurrently \"tsc -w -p tsconfig.build.json\" \"tsc-alias -w -p tsconfig.build.json\")",
|
|
@@ -36,6 +36,7 @@ export function SearchAiMessage({
|
|
|
36
36
|
data-component-name="Search/SearchAiMessage"
|
|
37
37
|
role={role}
|
|
38
38
|
className={className}
|
|
39
|
+
data-testid="search-ai-message"
|
|
39
40
|
>
|
|
40
41
|
{role === AiSearchConversationRole.ASSISTANT && (
|
|
41
42
|
<AiStarsIcon
|
|
@@ -49,9 +50,9 @@ export function SearchAiMessage({
|
|
|
49
50
|
<MessageWrapper role={role}>
|
|
50
51
|
{role === AiSearchConversationRole.ASSISTANT ? (
|
|
51
52
|
<>
|
|
52
|
-
<ResponseText as="div" children={markDownContent} />
|
|
53
|
+
<ResponseText as="div" children={markDownContent} data-testid="response-text" />
|
|
53
54
|
{!isThinking && resources && resources.length > 0 && (
|
|
54
|
-
<ResourcesWrapper>
|
|
55
|
+
<ResourcesWrapper data-testid="resources-wrapper">
|
|
55
56
|
<ResourcesTitle data-translation-key="search.ai.resourcesFound">
|
|
56
57
|
{resources.length} {translate('search.ai.resourcesFound', 'resources found')}
|
|
57
58
|
</ResourcesTitle>
|
|
@@ -74,7 +75,7 @@ export function SearchAiMessage({
|
|
|
74
75
|
content
|
|
75
76
|
)}
|
|
76
77
|
{isThinking && content.length === 0 && (
|
|
77
|
-
<ThinkingDotsWrapper>
|
|
78
|
+
<ThinkingDotsWrapper data-testid="thinking-dots-wrapper">
|
|
78
79
|
<ThinkingDot />
|
|
79
80
|
<ThinkingDot />
|
|
80
81
|
<ThinkingDot />
|
|
@@ -962,19 +962,36 @@ const pages = css`
|
|
|
962
962
|
--page-403-oidc-description-margin: var(--spacing-md) var(--spacing-sm);
|
|
963
963
|
|
|
964
964
|
// @tokens End
|
|
965
|
+
|
|
966
|
+
/**
|
|
967
|
+
* @tokens 500 Page
|
|
968
|
+
* @presenter Color
|
|
969
|
+
*/
|
|
970
|
+
|
|
971
|
+
--page-500-font-family: var(--font-family-base); // @presenter FontFamily
|
|
972
|
+
--page-500-margin-vertical: var(--spacing-xl);
|
|
973
|
+
--page-500-margin-horizontal: calc(var(--spacing-xxl) * 2);
|
|
974
|
+
--page-500-gap: var(--spacing-lg);
|
|
975
|
+
--page-500-max-width: 680px;
|
|
976
|
+
|
|
977
|
+
--page-500-status-text-color: var(--text-color-helper);
|
|
978
|
+
--page-500-status-font-size: var(--font-size-lg); // @presenter FontSize
|
|
979
|
+
--page-500-status-font-weight: var(--font-weight-semibold); // @presenter FontWeight
|
|
980
|
+
--page-500-status-line-height: var(--line-height-lg); // @presenter LineHeight
|
|
981
|
+
|
|
982
|
+
--page-500-title-text-color: var(--text-color-primary);
|
|
983
|
+
--page-500-title-font-size: 42px; // @presenter FontSize
|
|
984
|
+
--page-500-title-font-weight: var(--font-weight-bold); // @presenter FontWeight
|
|
985
|
+
--page-500-title-line-height: 50px; // @presenter LineHeight
|
|
986
|
+
--page-500-status-line-height: var(--line-height-lg); // @presenter LineHeight
|
|
987
|
+
|
|
988
|
+
--page-500-description-text-color: var(--text-color-secondary);
|
|
989
|
+
--page-500-description-font-size: var(--font-size-xl); // @presenter FontSize
|
|
990
|
+
--page-500-description-font-weight: var(--font-weight-regular); // @presenter FontWeight
|
|
991
|
+
--page-500-description-line-height: var(--line-height-xl); // @presenter LineHeight
|
|
992
|
+
|
|
993
|
+
// @tokens End
|
|
965
994
|
`;
|
|
966
|
-
// //
|
|
967
|
-
// --color-raspberry-1: #612241;
|
|
968
|
-
// --color-raspberry-2: #77214c;
|
|
969
|
-
// --color-raspberry-3: #901d56;
|
|
970
|
-
// --color-raspberry-4: #b3185e;
|
|
971
|
-
// --color-raspberry-5: #d6236a;
|
|
972
|
-
// --color-raspberry-6: #f9316d;
|
|
973
|
-
// --color-raspberry-7: #fb6382;
|
|
974
|
-
// --color-raspberry-8: #fd838f;
|
|
975
|
-
// --color-raspberry-9: #feacad;
|
|
976
|
-
// --color-raspberry-10: #fed9d5;
|
|
977
|
-
// --color-raspberry-11: #fef0ef;
|
|
978
995
|
const error = css`
|
|
979
996
|
--error-bubble-padding: var(--spacing-sm);
|
|
980
997
|
--error-bubble-gap: var(--spacing-xxs);
|
package/src/index.ts
CHANGED
|
@@ -253,6 +253,7 @@ export * from '@redocly/theme/layouts/Forbidden';
|
|
|
253
253
|
export * from '@redocly/theme/layouts/OIDCForbidden';
|
|
254
254
|
export * from '@redocly/theme/layouts/ThreePanelLayout';
|
|
255
255
|
export * from '@redocly/theme/layouts/CodeWalkthroughLayout';
|
|
256
|
+
export * from '@redocly/theme/layouts/InternalServerErrorLayout';
|
|
256
257
|
/* Markdoc */
|
|
257
258
|
export * as markdoc from '@redocly/theme/markdoc/default';
|
|
258
259
|
/* DatePicker */
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
|
|
4
|
+
import { useThemeHooks } from '@redocly/theme/core/hooks';
|
|
5
|
+
import { Button } from '@redocly/theme/components/Button/Button';
|
|
6
|
+
import { ArrowLeftIcon } from '@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon';
|
|
7
|
+
|
|
8
|
+
export function InternalServerErrorLayout(): JSX.Element {
|
|
9
|
+
const { useTranslate } = useThemeHooks();
|
|
10
|
+
const { translate } = useTranslate();
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<Wrapper data-component-name="layouts/InternalServerError">
|
|
14
|
+
<StatusText>500</StatusText>
|
|
15
|
+
<Title data-translation-key="page.internalServerError.title">
|
|
16
|
+
{translate('page.internalServerError.title', 'Internal Server Error')}
|
|
17
|
+
</Title>
|
|
18
|
+
<Description data-translation-key="page.internalServerError.description">
|
|
19
|
+
{translate(
|
|
20
|
+
'page.internalServerError.description',
|
|
21
|
+
'Something went wrong on our end. Please try again later or contact support if the problem persists.',
|
|
22
|
+
)}
|
|
23
|
+
</Description>
|
|
24
|
+
<Button
|
|
25
|
+
variant="primary"
|
|
26
|
+
size="large"
|
|
27
|
+
to="/"
|
|
28
|
+
data-translation-key="page.homeButton"
|
|
29
|
+
icon={<ArrowLeftIcon />}
|
|
30
|
+
>
|
|
31
|
+
{translate('page.homeButton', 'Go home')}
|
|
32
|
+
</Button>
|
|
33
|
+
</Wrapper>
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const Wrapper = styled.div`
|
|
38
|
+
height: 100%;
|
|
39
|
+
max-width: var(--page-500-max-width);
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
justify-content: center;
|
|
43
|
+
margin: var(--page-500-margin-vertical) var(--page-500-margin-horizontal);
|
|
44
|
+
font-family: var(--page-500-font-family);
|
|
45
|
+
gap: var(--page-500-gap);
|
|
46
|
+
`;
|
|
47
|
+
|
|
48
|
+
const StatusText = styled.div`
|
|
49
|
+
color: var(--page-500-status-text-color);
|
|
50
|
+
font-size: var(--page-500-status-font-size);
|
|
51
|
+
line-height: var(--page-500-status-line-height);
|
|
52
|
+
font-weight: var(--page-500-status-font-weight);
|
|
53
|
+
`;
|
|
54
|
+
|
|
55
|
+
const Title = styled.div`
|
|
56
|
+
color: var(--page-500-title-text-color);
|
|
57
|
+
font-size: var(--page-500-title-font-size);
|
|
58
|
+
line-height: var(--page-500-title-line-height);
|
|
59
|
+
font-weight: var(--page-500-title-font-weight);
|
|
60
|
+
`;
|
|
61
|
+
|
|
62
|
+
const Description = styled.div`
|
|
63
|
+
color: var(--page-500-description-text-color);
|
|
64
|
+
font-size: var(--page-500-description-font-size);
|
|
65
|
+
line-height: var(--page-500-description-line-height);
|
|
66
|
+
font-weight: var(--page-500-description-font-weight);
|
|
67
|
+
`;
|