@redocly/theme 0.68.1 → 0.69.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/Markdown/Markdown.js +1 -1
- package/lib/core/constants/accordion.d.ts +3 -0
- package/lib/core/constants/accordion.js +7 -0
- package/lib/core/constants/index.d.ts +1 -0
- package/lib/core/constants/index.js +1 -0
- package/lib/core/styles/global.js +40 -38
- package/lib/markdoc/components/Accordion/Accordion.d.ts +9 -0
- package/lib/markdoc/components/Accordion/Accordion.js +132 -0
- package/lib/markdoc/components/Accordion/AccordionGroup.d.ts +5 -0
- package/lib/markdoc/components/Accordion/AccordionGroup.js +29 -0
- package/lib/markdoc/components/Accordion/variables.d.ts +1 -0
- package/lib/markdoc/components/Accordion/variables.js +40 -0
- package/lib/markdoc/components/default.d.ts +2 -0
- package/lib/markdoc/components/default.js +2 -0
- package/lib/markdoc/default.d.ts +4 -0
- package/lib/markdoc/default.js +4 -0
- package/lib/markdoc/tags/accordion-group.d.ts +2 -0
- package/lib/markdoc/tags/accordion-group.js +10 -0
- package/lib/markdoc/tags/accordion.d.ts +2 -0
- package/lib/markdoc/tags/accordion.js +14 -0
- package/package.json +2 -2
- package/src/components/Markdown/Markdown.tsx +2 -1
- package/src/core/constants/accordion.ts +4 -0
- package/src/core/constants/index.ts +1 -0
- package/src/core/styles/global.ts +2 -0
- package/src/markdoc/components/Accordion/Accordion.tsx +128 -0
- package/src/markdoc/components/Accordion/AccordionGroup.tsx +41 -0
- package/src/markdoc/components/Accordion/variables.ts +37 -0
- package/src/markdoc/components/default.ts +2 -0
- package/src/markdoc/default.ts +4 -0
- package/src/markdoc/tags/accordion-group.ts +8 -0
- package/src/markdoc/tags/accordion.ts +12 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ACCORDION_SELECTOR = exports.ACCORDION_GROUP_COMPONENT_NAME = exports.ACCORDION_COMPONENT_NAME = void 0;
|
|
4
|
+
exports.ACCORDION_COMPONENT_NAME = 'Markdoc/Accordion/Accordion';
|
|
5
|
+
exports.ACCORDION_GROUP_COMPONENT_NAME = 'Markdoc/Accordion/AccordionGroup';
|
|
6
|
+
exports.ACCORDION_SELECTOR = `[data-component-name='${exports.ACCORDION_COMPONENT_NAME}']`;
|
|
7
|
+
//# sourceMappingURL=accordion.js.map
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./accordion"), exports);
|
|
17
18
|
__exportStar(require("./common"), exports);
|
|
18
19
|
__exportStar(require("./environments"), exports);
|
|
19
20
|
__exportStar(require("./code-walkthrough"), exports);
|
|
@@ -30,25 +30,26 @@ const variables_25 = require("../../components/CodeBlock/variables");
|
|
|
30
30
|
const variables_26 = require("../../components/Product/variables");
|
|
31
31
|
const variables_27 = require("../../components/Markdown/variables");
|
|
32
32
|
const variables_28 = require("../../components/Banner/variables");
|
|
33
|
-
const variables_29 = require("../../markdoc/components/
|
|
34
|
-
const variables_30 = require("../../markdoc/components/
|
|
35
|
-
const variables_31 = require("../../markdoc/components/
|
|
36
|
-
const variables_32 = require("../../components/
|
|
37
|
-
const variables_33 = require("../../components/
|
|
38
|
-
const variables_34 = require("../../components/
|
|
39
|
-
const variables_35 = require("../../components/
|
|
40
|
-
const variables_36 = require("../../components/
|
|
41
|
-
const variables_37 = require("../../components/
|
|
42
|
-
const variables_38 = require("../../components/
|
|
43
|
-
const variables_39 = require("../../components/
|
|
44
|
-
const variables_40 = require("../../components/
|
|
45
|
-
const variables_41 = require("../../
|
|
46
|
-
const variables_42 = require("../../markdoc/components/
|
|
47
|
-
const variables_43 = require("../../components/
|
|
48
|
-
const variables_44 = require("../../components/
|
|
49
|
-
const variables_45 = require("../../components/
|
|
50
|
-
const variables_46 = require("../../components/
|
|
51
|
-
const variables_47 = require("../../components/
|
|
33
|
+
const variables_29 = require("../../markdoc/components/Accordion/variables");
|
|
34
|
+
const variables_30 = require("../../markdoc/components/Tabs/variables");
|
|
35
|
+
const variables_31 = require("../../markdoc/components/NumberedList/variables");
|
|
36
|
+
const variables_32 = require("../../markdoc/components/Diagram/variables");
|
|
37
|
+
const variables_33 = require("../../components/LastUpdated/variables");
|
|
38
|
+
const variables_34 = require("../../components/Logo/variables");
|
|
39
|
+
const variables_35 = require("../../components/StatusCode/variables");
|
|
40
|
+
const variables_36 = require("../../components/Segmented/variables");
|
|
41
|
+
const variables_37 = require("../../components/UserMenu/variables");
|
|
42
|
+
const variables_38 = require("../../components/Tags/variables");
|
|
43
|
+
const variables_39 = require("../../components/VersionPicker/variables");
|
|
44
|
+
const variables_40 = require("../../components/DatePicker/variables");
|
|
45
|
+
const variables_41 = require("../../components/Switch/variables");
|
|
46
|
+
const variables_42 = require("../../markdoc/components/Cards/variables");
|
|
47
|
+
const variables_43 = require("../../markdoc/components/CodeWalkthrough/variables");
|
|
48
|
+
const variables_44 = require("../../components/SkipContent/variables");
|
|
49
|
+
const variables_45 = require("../../components/PageActions/variables");
|
|
50
|
+
const variables_46 = require("../../components/SvgViewer/variables");
|
|
51
|
+
const variables_47 = require("../../components/Toast/variables");
|
|
52
|
+
const variables_48 = require("../../components/PageNavigation/variables");
|
|
52
53
|
const palette_1 = require("./palette");
|
|
53
54
|
const dark_1 = require("./dark");
|
|
54
55
|
const themeColors = (0, styled_components_1.css) `
|
|
@@ -1309,29 +1310,30 @@ exports.styles = (0, styled_components_1.css) `
|
|
|
1309
1310
|
${variables_20.button}
|
|
1310
1311
|
${variables_21.aiAssistantButton}
|
|
1311
1312
|
${variables_21.connectMCPButton}
|
|
1312
|
-
${
|
|
1313
|
+
${variables_42.cards}
|
|
1313
1314
|
${variables_8.catalog}
|
|
1314
1315
|
${variables_11.catalogClassic}
|
|
1315
1316
|
${variables_25.code}
|
|
1316
|
-
${
|
|
1317
|
+
${variables_43.codeWalkthrough}
|
|
1317
1318
|
${docsDropdown}
|
|
1318
1319
|
${variables_15.dropdown}
|
|
1319
1320
|
${error}
|
|
1320
1321
|
${variables_10.filter}
|
|
1321
1322
|
${variables_19.footer}
|
|
1322
1323
|
${headingsTypography}
|
|
1323
|
-
${
|
|
1324
|
+
${variables_38.httpTag}
|
|
1324
1325
|
${variables_9.image}
|
|
1325
1326
|
${inputs}
|
|
1326
1327
|
${variables_1.languagePicker}
|
|
1327
|
-
${
|
|
1328
|
+
${variables_33.lastUpdated}
|
|
1328
1329
|
${links}
|
|
1329
1330
|
${loadProgressBar}
|
|
1330
|
-
${
|
|
1331
|
+
${variables_34.logo}
|
|
1331
1332
|
${variables_27.markdown}
|
|
1332
|
-
${variables_29.
|
|
1333
|
-
${variables_30.
|
|
1334
|
-
${variables_31.
|
|
1333
|
+
${variables_29.markdownAccordion}
|
|
1334
|
+
${variables_30.markdownTabs}
|
|
1335
|
+
${variables_31.markdownNumberedList}
|
|
1336
|
+
${variables_32.diagram}
|
|
1335
1337
|
${variables_24.menu}
|
|
1336
1338
|
${variables_24.mobileMenu}
|
|
1337
1339
|
${modal}
|
|
@@ -1350,26 +1352,26 @@ exports.styles = (0, styled_components_1.css) `
|
|
|
1350
1352
|
${variables_7.toc}
|
|
1351
1353
|
${variables_16.tooltip}
|
|
1352
1354
|
${typography}
|
|
1353
|
-
${
|
|
1354
|
-
${
|
|
1355
|
+
${variables_37.userMenu}
|
|
1356
|
+
${variables_39.versionPicker}
|
|
1355
1357
|
${zIndexDepth}
|
|
1356
1358
|
${scorecardColors}
|
|
1357
|
-
${
|
|
1359
|
+
${variables_35.statusCode}
|
|
1358
1360
|
${tab}
|
|
1359
1361
|
${icon}
|
|
1360
1362
|
${tree}
|
|
1361
|
-
${
|
|
1362
|
-
${
|
|
1363
|
+
${variables_36.segmented}
|
|
1364
|
+
${variables_41.switcher}
|
|
1363
1365
|
${variables_17.checkbox}
|
|
1364
1366
|
${variables_3.feedback}
|
|
1365
1367
|
${variables_2.scorecard}
|
|
1366
|
-
${
|
|
1368
|
+
${variables_40.datePicker}
|
|
1367
1369
|
${replay}
|
|
1368
|
-
${
|
|
1369
|
-
${
|
|
1370
|
-
${
|
|
1371
|
-
${
|
|
1372
|
-
${
|
|
1370
|
+
${variables_44.skipContent}
|
|
1371
|
+
${variables_45.pageActions}
|
|
1372
|
+
${variables_46.svgViewer}
|
|
1373
|
+
${variables_47.toast}
|
|
1374
|
+
${variables_48.pageNavigation}
|
|
1373
1375
|
|
|
1374
1376
|
background-color: var(--bg-color);
|
|
1375
1377
|
color: var(--text-color-primary);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { JSX, PropsWithChildren } from 'react';
|
|
2
|
+
export type AccordionProps = {
|
|
3
|
+
title: string;
|
|
4
|
+
expanded?: boolean;
|
|
5
|
+
className?: string;
|
|
6
|
+
'data-source'?: string;
|
|
7
|
+
'data-hash'?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function Accordion({ title, expanded, className, children, 'data-source': dataSource, 'data-hash': dataHash, }: PropsWithChildren<AccordionProps>): JSX.Element;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.Accordion = Accordion;
|
|
40
|
+
const react_1 = __importDefault(require("react"));
|
|
41
|
+
const styled_components_1 = __importStar(require("styled-components"));
|
|
42
|
+
const ChevronRightIcon_1 = require("../../../icons/ChevronRightIcon/ChevronRightIcon");
|
|
43
|
+
const constants_1 = require("../../../core/constants");
|
|
44
|
+
function Accordion({ title, expanded = false, className, children, 'data-source': dataSource, 'data-hash': dataHash, }) {
|
|
45
|
+
return (react_1.default.createElement(AccordionWrapper, { className: className, open: expanded, "data-component-name": constants_1.ACCORDION_COMPONENT_NAME, "data-source": dataSource, "data-hash": dataHash },
|
|
46
|
+
react_1.default.createElement(AccordionSummary, null,
|
|
47
|
+
react_1.default.createElement(ChevronRightIcon_1.ChevronRightIcon, { color: "--md-accordion-chevron-icon-color", size: "var(--md-accordion-chevron-icon-size)" }),
|
|
48
|
+
title),
|
|
49
|
+
react_1.default.createElement(AccordionBody, null, children)));
|
|
50
|
+
}
|
|
51
|
+
const AccordionWrapper = styled_components_1.default.details `
|
|
52
|
+
margin: var(--md-accordion-margin);
|
|
53
|
+
border: var(--md-accordion-border);
|
|
54
|
+
border-radius: var(--md-accordion-border-radius);
|
|
55
|
+
font-family: var(--md-accordion-font-family);
|
|
56
|
+
overflow: hidden;
|
|
57
|
+
|
|
58
|
+
&[open] > summary svg {
|
|
59
|
+
transform: rotate(90deg);
|
|
60
|
+
}
|
|
61
|
+
`;
|
|
62
|
+
const AccordionSummary = styled_components_1.default.summary `
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
gap: var(--md-accordion-gap);
|
|
66
|
+
cursor: pointer;
|
|
67
|
+
list-style: none;
|
|
68
|
+
|
|
69
|
+
background-color: var(--md-accordion-header-bg-color);
|
|
70
|
+
color: var(--md-accordion-header-text-color);
|
|
71
|
+
font-weight: var(--md-accordion-header-font-weight);
|
|
72
|
+
font-size: var(--md-accordion-header-font-size);
|
|
73
|
+
line-height: var(--md-accordion-header-line-height);
|
|
74
|
+
padding: var(--md-accordion-header-padding);
|
|
75
|
+
|
|
76
|
+
&::-webkit-details-marker {
|
|
77
|
+
display: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&:hover {
|
|
81
|
+
background-color: var(--md-accordion-header-bg-color-hover);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&:focus-visible {
|
|
85
|
+
outline: none;
|
|
86
|
+
position: relative;
|
|
87
|
+
|
|
88
|
+
&::after {
|
|
89
|
+
content: '';
|
|
90
|
+
position: absolute;
|
|
91
|
+
inset: 2px;
|
|
92
|
+
border: 1px solid var(--button-border-color-focused);
|
|
93
|
+
border-radius: calc(var(--md-accordion-border-radius) - 2px);
|
|
94
|
+
pointer-events: none;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
svg {
|
|
99
|
+
flex-shrink: 0;
|
|
100
|
+
transition: transform 0.15s ease-out;
|
|
101
|
+
}
|
|
102
|
+
`;
|
|
103
|
+
const showAccordionBody = (0, styled_components_1.keyframes) `
|
|
104
|
+
0% {
|
|
105
|
+
opacity: 0;
|
|
106
|
+
transform: translateY(-5px);
|
|
107
|
+
}
|
|
108
|
+
100% {
|
|
109
|
+
opacity: 1;
|
|
110
|
+
transform: translateY(0);
|
|
111
|
+
}
|
|
112
|
+
`;
|
|
113
|
+
const AccordionBody = styled_components_1.default.div `
|
|
114
|
+
padding: var(--md-accordion-body-padding);
|
|
115
|
+
background-color: var(--md-accordion-body-bg-color);
|
|
116
|
+
color: var(--md-accordion-body-text-color);
|
|
117
|
+
font-size: var(--md-accordion-body-font-size);
|
|
118
|
+
line-height: var(--md-accordion-body-line-height);
|
|
119
|
+
|
|
120
|
+
details[open] > & {
|
|
121
|
+
animation: ${showAccordionBody} 0.15s ease-out;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
> :first-child {
|
|
125
|
+
margin-top: 0;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
> :last-child {
|
|
129
|
+
margin-bottom: 0;
|
|
130
|
+
}
|
|
131
|
+
`;
|
|
132
|
+
//# sourceMappingURL=Accordion.js.map
|
|
@@ -0,0 +1,29 @@
|
|
|
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.AccordionGroup = AccordionGroup;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const styled_components_1 = __importDefault(require("styled-components"));
|
|
9
|
+
const constants_1 = require("../../../core/constants");
|
|
10
|
+
function AccordionGroup({ className, children, }) {
|
|
11
|
+
return (react_1.default.createElement(AccordionGroupWrapper, { className: className, "data-component-name": constants_1.ACCORDION_GROUP_COMPONENT_NAME }, children));
|
|
12
|
+
}
|
|
13
|
+
const AccordionGroupWrapper = styled_components_1.default.div `
|
|
14
|
+
margin: var(--md-accordion-group-margin);
|
|
15
|
+
border: var(--md-accordion-group-border);
|
|
16
|
+
border-radius: var(--md-accordion-group-border-radius);
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
|
|
19
|
+
& > ${constants_1.ACCORDION_SELECTOR} {
|
|
20
|
+
margin: 0;
|
|
21
|
+
border: none;
|
|
22
|
+
border-radius: 0;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
& > ${constants_1.ACCORDION_SELECTOR} + ${constants_1.ACCORDION_SELECTOR} {
|
|
26
|
+
border-top: var(--md-accordion-group-divider);
|
|
27
|
+
}
|
|
28
|
+
`;
|
|
29
|
+
//# sourceMappingURL=AccordionGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const markdownAccordion: import("styled-components").RuleSet<object>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.markdownAccordion = void 0;
|
|
4
|
+
const styled_components_1 = require("styled-components");
|
|
5
|
+
exports.markdownAccordion = (0, styled_components_1.css) `
|
|
6
|
+
/**
|
|
7
|
+
* @tokens Markdown Accordion
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
--md-accordion-group-margin: var(--spacing-base) 0; // @presenter Spacing
|
|
11
|
+
--md-accordion-group-border: 1px solid var(--border-color-secondary); // @presenter Border
|
|
12
|
+
--md-accordion-group-border-radius: var(--border-radius-xl); // @presenter BorderRadius
|
|
13
|
+
--md-accordion-group-divider: 1px solid var(--border-color-secondary); // @presenter Border
|
|
14
|
+
|
|
15
|
+
--md-accordion-margin: var(--spacing-base) 0; // @presenter Spacing
|
|
16
|
+
--md-accordion-border: 1px solid var(--border-color-secondary); // @presenter Border
|
|
17
|
+
--md-accordion-border-radius: var(--border-radius-xl); // @presenter BorderRadius
|
|
18
|
+
--md-accordion-gap: var(--spacing-xs); // @presenter Spacing
|
|
19
|
+
--md-accordion-font-family: var(--font-family-base); // @presenter FontFamily
|
|
20
|
+
|
|
21
|
+
--md-accordion-chevron-icon-color: var(--text-color-primary); // @presenter Color
|
|
22
|
+
--md-accordion-chevron-icon-size: 16px;
|
|
23
|
+
|
|
24
|
+
--md-accordion-header-bg-color: var(--layer-color); // @presenter Color
|
|
25
|
+
--md-accordion-header-bg-color-hover: var(--layer-color-hover); // @presenter Color
|
|
26
|
+
--md-accordion-header-text-color: var(--text-color-primary); // @presenter Color
|
|
27
|
+
--md-accordion-header-font-weight: var(--font-weight-semibold); // @presenter FontWeight
|
|
28
|
+
--md-accordion-header-line-height: var(--line-height-lg); // @presenter LineHeight
|
|
29
|
+
--md-accordion-header-font-size: var(--font-size-lg); // @presenter FontSize
|
|
30
|
+
--md-accordion-header-padding: var(--spacing-sm) var(--spacing-md); // @presenter Spacing
|
|
31
|
+
|
|
32
|
+
--md-accordion-body-bg-color: var(--bg-color); // @presenter Color
|
|
33
|
+
--md-accordion-body-text-color: var(--text-color-primary); // @presenter Color
|
|
34
|
+
--md-accordion-body-font-size: var(--font-size-base); // @presenter FontSize
|
|
35
|
+
--md-accordion-body-line-height: var(--line-height-base); // @presenter LineHeight
|
|
36
|
+
--md-accordion-body-padding: var(--spacing-sm) var(--spacing-md) var(--spacing-md); // @presenter Spacing
|
|
37
|
+
|
|
38
|
+
// @tokens End
|
|
39
|
+
`;
|
|
40
|
+
//# sourceMappingURL=variables.js.map
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from '../../markdoc/components/Accordion/Accordion';
|
|
2
|
+
export * from '../../markdoc/components/Accordion/AccordionGroup';
|
|
1
3
|
export * from '../../markdoc/components/Admonition/Admonition';
|
|
2
4
|
export * from '../../markdoc/components/InlineSvg/InlineSvg';
|
|
3
5
|
export * from '../../markdoc/components/MarkdocExample/MarkdocExample';
|
|
@@ -14,6 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("../../markdoc/components/Accordion/Accordion"), exports);
|
|
18
|
+
__exportStar(require("../../markdoc/components/Accordion/AccordionGroup"), exports);
|
|
17
19
|
__exportStar(require("../../markdoc/components/Admonition/Admonition"), exports);
|
|
18
20
|
__exportStar(require("../../markdoc/components/InlineSvg/InlineSvg"), exports);
|
|
19
21
|
__exportStar(require("../../markdoc/components/MarkdocExample/MarkdocExample"), exports);
|
package/lib/markdoc/default.d.ts
CHANGED
|
@@ -5,6 +5,8 @@ export * from '../markdoc/attributes/img-srcset';
|
|
|
5
5
|
export * from '../markdoc/attributes/relative-path';
|
|
6
6
|
export * from '../markdoc/attributes/svg-content';
|
|
7
7
|
export * as components from '../markdoc/components/default';
|
|
8
|
+
import { accordion } from '../markdoc/tags/accordion';
|
|
9
|
+
import { accordionGroup } from '../markdoc/tags/accordion-group';
|
|
8
10
|
import { admonition } from '../markdoc/tags/admonition';
|
|
9
11
|
import { html } from '../markdoc/tags/html';
|
|
10
12
|
import { markdocExample } from '../markdoc/tags/markdoc-example';
|
|
@@ -29,6 +31,8 @@ import { connectMcp } from '../markdoc/tags/connect-mcp';
|
|
|
29
31
|
import { loginButton } from '../markdoc/tags/login-button';
|
|
30
32
|
import { diagram } from '../markdoc/tags/diagram';
|
|
31
33
|
export declare const tags: {
|
|
34
|
+
[accordion.tagName]: import("./tags/types").MarkdocTagSchema;
|
|
35
|
+
[accordionGroup.tagName]: import("./tags/types").MarkdocTagSchema;
|
|
32
36
|
[admonition.tagName]: import("./tags/types").MarkdocTagSchema;
|
|
33
37
|
[debug.tagName]: import("./tags/types").MarkdocTagSchema;
|
|
34
38
|
[html.tagName]: import("./tags/types").MarkdocTagSchema;
|
package/lib/markdoc/default.js
CHANGED
|
@@ -47,6 +47,8 @@ __exportStar(require("../markdoc/attributes/svg-content"), exports);
|
|
|
47
47
|
/* Components */
|
|
48
48
|
exports.components = __importStar(require("../markdoc/components/default"));
|
|
49
49
|
/* Tags */
|
|
50
|
+
const accordion_1 = require("../markdoc/tags/accordion");
|
|
51
|
+
const accordion_group_1 = require("../markdoc/tags/accordion-group");
|
|
50
52
|
const admonition_1 = require("../markdoc/tags/admonition");
|
|
51
53
|
const html_1 = require("../markdoc/tags/html");
|
|
52
54
|
const markdoc_example_1 = require("../markdoc/tags/markdoc-example");
|
|
@@ -71,6 +73,8 @@ const connect_mcp_1 = require("../markdoc/tags/connect-mcp");
|
|
|
71
73
|
const login_button_1 = require("../markdoc/tags/login-button");
|
|
72
74
|
const diagram_1 = require("../markdoc/tags/diagram");
|
|
73
75
|
exports.tags = {
|
|
76
|
+
[accordion_1.accordion.tagName]: accordion_1.accordion.schema,
|
|
77
|
+
[accordion_group_1.accordionGroup.tagName]: accordion_group_1.accordionGroup.schema,
|
|
74
78
|
[admonition_1.admonition.tagName]: admonition_1.admonition.schema,
|
|
75
79
|
[debug_1.debug.tagName]: debug_1.debug.schema,
|
|
76
80
|
[html_1.html.tagName]: html_1.html.schema,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.accordionGroup = void 0;
|
|
4
|
+
exports.accordionGroup = {
|
|
5
|
+
schema: {
|
|
6
|
+
render: 'AccordionGroup',
|
|
7
|
+
},
|
|
8
|
+
tagName: 'accordion-group',
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=accordion-group.js.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.accordion = void 0;
|
|
4
|
+
exports.accordion = {
|
|
5
|
+
schema: {
|
|
6
|
+
render: 'Accordion',
|
|
7
|
+
attributes: {
|
|
8
|
+
title: { type: String, required: true },
|
|
9
|
+
expanded: { type: Boolean, default: false },
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
tagName: 'accordion',
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=accordion.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.69.0-next.1",
|
|
4
4
|
"description": "Shared UI components lib",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"theme",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"vitest": "4.1.10",
|
|
69
69
|
"vitest-when": "0.6.2",
|
|
70
70
|
"webpack": "5.105.2",
|
|
71
|
-
"@redocly/realm-asyncapi-sdk": "0.
|
|
71
|
+
"@redocly/realm-asyncapi-sdk": "0.15.0-next.0"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"@tanstack/react-query": "5.62.3",
|
|
@@ -7,6 +7,7 @@ import { markdownBaseTableCss } from '@redocly/theme/components/Markdown/styles/
|
|
|
7
7
|
import { markdownLinksCss } from '@redocly/theme/components/Markdown/styles/links';
|
|
8
8
|
import { headingAnchorCss } from '@redocly/theme/components/Markdown/styles/heading-anchor';
|
|
9
9
|
import {
|
|
10
|
+
ACCORDION_SELECTOR,
|
|
10
11
|
ANCHOR_CLASS,
|
|
11
12
|
H1_CLASS,
|
|
12
13
|
H2_CLASS,
|
|
@@ -172,7 +173,7 @@ export const Markdown = styled.main
|
|
|
172
173
|
margin: var(--md-hr-margin-vertical) 0;
|
|
173
174
|
}
|
|
174
175
|
|
|
175
|
-
details {
|
|
176
|
+
details:not(${ACCORDION_SELECTOR}) {
|
|
176
177
|
margin: 1.125em 0;
|
|
177
178
|
|
|
178
179
|
summary {
|
|
@@ -28,6 +28,7 @@ import { code } from '@redocly/theme/components/CodeBlock/variables';
|
|
|
28
28
|
import { productPicker } from '@redocly/theme/components/Product/variables';
|
|
29
29
|
import { markdown } from '@redocly/theme/components/Markdown/variables';
|
|
30
30
|
import { banner } from '@redocly/theme/components/Banner/variables';
|
|
31
|
+
import { markdownAccordion } from '@redocly/theme/markdoc/components/Accordion/variables';
|
|
31
32
|
import { markdownTabs } from '@redocly/theme/markdoc/components/Tabs/variables';
|
|
32
33
|
import { markdownNumberedList } from '@redocly/theme/markdoc/components/NumberedList/variables';
|
|
33
34
|
import { diagram } from '@redocly/theme/markdoc/components/Diagram/variables';
|
|
@@ -1352,6 +1353,7 @@ export const styles = css<{ palette?: string }>`
|
|
|
1352
1353
|
${loadProgressBar}
|
|
1353
1354
|
${logo}
|
|
1354
1355
|
${markdown}
|
|
1356
|
+
${markdownAccordion}
|
|
1355
1357
|
${markdownTabs}
|
|
1356
1358
|
${markdownNumberedList}
|
|
1357
1359
|
${diagram}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled, { keyframes } from 'styled-components';
|
|
3
|
+
|
|
4
|
+
import type { JSX, PropsWithChildren } from 'react';
|
|
5
|
+
|
|
6
|
+
import { ChevronRightIcon } from '@redocly/theme/icons/ChevronRightIcon/ChevronRightIcon';
|
|
7
|
+
import { ACCORDION_COMPONENT_NAME } from '@redocly/theme/core/constants';
|
|
8
|
+
|
|
9
|
+
export type AccordionProps = {
|
|
10
|
+
title: string;
|
|
11
|
+
expanded?: boolean;
|
|
12
|
+
className?: string;
|
|
13
|
+
'data-source'?: string;
|
|
14
|
+
'data-hash'?: string;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export function Accordion({
|
|
18
|
+
title,
|
|
19
|
+
expanded = false,
|
|
20
|
+
className,
|
|
21
|
+
children,
|
|
22
|
+
'data-source': dataSource,
|
|
23
|
+
'data-hash': dataHash,
|
|
24
|
+
}: PropsWithChildren<AccordionProps>): JSX.Element {
|
|
25
|
+
return (
|
|
26
|
+
<AccordionWrapper
|
|
27
|
+
className={className}
|
|
28
|
+
open={expanded}
|
|
29
|
+
data-component-name={ACCORDION_COMPONENT_NAME}
|
|
30
|
+
data-source={dataSource}
|
|
31
|
+
data-hash={dataHash}
|
|
32
|
+
>
|
|
33
|
+
<AccordionSummary>
|
|
34
|
+
<ChevronRightIcon
|
|
35
|
+
color="--md-accordion-chevron-icon-color"
|
|
36
|
+
size="var(--md-accordion-chevron-icon-size)"
|
|
37
|
+
/>
|
|
38
|
+
{title}
|
|
39
|
+
</AccordionSummary>
|
|
40
|
+
<AccordionBody>{children}</AccordionBody>
|
|
41
|
+
</AccordionWrapper>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const AccordionWrapper = styled.details`
|
|
46
|
+
margin: var(--md-accordion-margin);
|
|
47
|
+
border: var(--md-accordion-border);
|
|
48
|
+
border-radius: var(--md-accordion-border-radius);
|
|
49
|
+
font-family: var(--md-accordion-font-family);
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
|
|
52
|
+
&[open] > summary svg {
|
|
53
|
+
transform: rotate(90deg);
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
56
|
+
|
|
57
|
+
const AccordionSummary = styled.summary`
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
gap: var(--md-accordion-gap);
|
|
61
|
+
cursor: pointer;
|
|
62
|
+
list-style: none;
|
|
63
|
+
|
|
64
|
+
background-color: var(--md-accordion-header-bg-color);
|
|
65
|
+
color: var(--md-accordion-header-text-color);
|
|
66
|
+
font-weight: var(--md-accordion-header-font-weight);
|
|
67
|
+
font-size: var(--md-accordion-header-font-size);
|
|
68
|
+
line-height: var(--md-accordion-header-line-height);
|
|
69
|
+
padding: var(--md-accordion-header-padding);
|
|
70
|
+
|
|
71
|
+
&::-webkit-details-marker {
|
|
72
|
+
display: none;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&:hover {
|
|
76
|
+
background-color: var(--md-accordion-header-bg-color-hover);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
&:focus-visible {
|
|
80
|
+
outline: none;
|
|
81
|
+
position: relative;
|
|
82
|
+
|
|
83
|
+
&::after {
|
|
84
|
+
content: '';
|
|
85
|
+
position: absolute;
|
|
86
|
+
inset: 2px;
|
|
87
|
+
border: 1px solid var(--button-border-color-focused);
|
|
88
|
+
border-radius: calc(var(--md-accordion-border-radius) - 2px);
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
svg {
|
|
94
|
+
flex-shrink: 0;
|
|
95
|
+
transition: transform 0.15s ease-out;
|
|
96
|
+
}
|
|
97
|
+
`;
|
|
98
|
+
|
|
99
|
+
const showAccordionBody = keyframes`
|
|
100
|
+
0% {
|
|
101
|
+
opacity: 0;
|
|
102
|
+
transform: translateY(-5px);
|
|
103
|
+
}
|
|
104
|
+
100% {
|
|
105
|
+
opacity: 1;
|
|
106
|
+
transform: translateY(0);
|
|
107
|
+
}
|
|
108
|
+
`;
|
|
109
|
+
|
|
110
|
+
const AccordionBody = styled.div`
|
|
111
|
+
padding: var(--md-accordion-body-padding);
|
|
112
|
+
background-color: var(--md-accordion-body-bg-color);
|
|
113
|
+
color: var(--md-accordion-body-text-color);
|
|
114
|
+
font-size: var(--md-accordion-body-font-size);
|
|
115
|
+
line-height: var(--md-accordion-body-line-height);
|
|
116
|
+
|
|
117
|
+
details[open] > & {
|
|
118
|
+
animation: ${showAccordionBody} 0.15s ease-out;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
> :first-child {
|
|
122
|
+
margin-top: 0;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
> :last-child {
|
|
126
|
+
margin-bottom: 0;
|
|
127
|
+
}
|
|
128
|
+
`;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
|
|
4
|
+
import type { JSX, PropsWithChildren } from 'react';
|
|
5
|
+
|
|
6
|
+
import { ACCORDION_GROUP_COMPONENT_NAME, ACCORDION_SELECTOR } from '@redocly/theme/core/constants';
|
|
7
|
+
|
|
8
|
+
export type AccordionGroupProps = {
|
|
9
|
+
className?: string;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export function AccordionGroup({
|
|
13
|
+
className,
|
|
14
|
+
children,
|
|
15
|
+
}: PropsWithChildren<AccordionGroupProps>): JSX.Element {
|
|
16
|
+
return (
|
|
17
|
+
<AccordionGroupWrapper
|
|
18
|
+
className={className}
|
|
19
|
+
data-component-name={ACCORDION_GROUP_COMPONENT_NAME}
|
|
20
|
+
>
|
|
21
|
+
{children}
|
|
22
|
+
</AccordionGroupWrapper>
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const AccordionGroupWrapper = styled.div`
|
|
27
|
+
margin: var(--md-accordion-group-margin);
|
|
28
|
+
border: var(--md-accordion-group-border);
|
|
29
|
+
border-radius: var(--md-accordion-group-border-radius);
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
|
|
32
|
+
& > ${ACCORDION_SELECTOR} {
|
|
33
|
+
margin: 0;
|
|
34
|
+
border: none;
|
|
35
|
+
border-radius: 0;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
& > ${ACCORDION_SELECTOR} + ${ACCORDION_SELECTOR} {
|
|
39
|
+
border-top: var(--md-accordion-group-divider);
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { css } from 'styled-components';
|
|
2
|
+
|
|
3
|
+
export const markdownAccordion = css`
|
|
4
|
+
/**
|
|
5
|
+
* @tokens Markdown Accordion
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
--md-accordion-group-margin: var(--spacing-base) 0; // @presenter Spacing
|
|
9
|
+
--md-accordion-group-border: 1px solid var(--border-color-secondary); // @presenter Border
|
|
10
|
+
--md-accordion-group-border-radius: var(--border-radius-xl); // @presenter BorderRadius
|
|
11
|
+
--md-accordion-group-divider: 1px solid var(--border-color-secondary); // @presenter Border
|
|
12
|
+
|
|
13
|
+
--md-accordion-margin: var(--spacing-base) 0; // @presenter Spacing
|
|
14
|
+
--md-accordion-border: 1px solid var(--border-color-secondary); // @presenter Border
|
|
15
|
+
--md-accordion-border-radius: var(--border-radius-xl); // @presenter BorderRadius
|
|
16
|
+
--md-accordion-gap: var(--spacing-xs); // @presenter Spacing
|
|
17
|
+
--md-accordion-font-family: var(--font-family-base); // @presenter FontFamily
|
|
18
|
+
|
|
19
|
+
--md-accordion-chevron-icon-color: var(--text-color-primary); // @presenter Color
|
|
20
|
+
--md-accordion-chevron-icon-size: 16px;
|
|
21
|
+
|
|
22
|
+
--md-accordion-header-bg-color: var(--layer-color); // @presenter Color
|
|
23
|
+
--md-accordion-header-bg-color-hover: var(--layer-color-hover); // @presenter Color
|
|
24
|
+
--md-accordion-header-text-color: var(--text-color-primary); // @presenter Color
|
|
25
|
+
--md-accordion-header-font-weight: var(--font-weight-semibold); // @presenter FontWeight
|
|
26
|
+
--md-accordion-header-line-height: var(--line-height-lg); // @presenter LineHeight
|
|
27
|
+
--md-accordion-header-font-size: var(--font-size-lg); // @presenter FontSize
|
|
28
|
+
--md-accordion-header-padding: var(--spacing-sm) var(--spacing-md); // @presenter Spacing
|
|
29
|
+
|
|
30
|
+
--md-accordion-body-bg-color: var(--bg-color); // @presenter Color
|
|
31
|
+
--md-accordion-body-text-color: var(--text-color-primary); // @presenter Color
|
|
32
|
+
--md-accordion-body-font-size: var(--font-size-base); // @presenter FontSize
|
|
33
|
+
--md-accordion-body-line-height: var(--line-height-base); // @presenter LineHeight
|
|
34
|
+
--md-accordion-body-padding: var(--spacing-sm) var(--spacing-md) var(--spacing-md); // @presenter Spacing
|
|
35
|
+
|
|
36
|
+
// @tokens End
|
|
37
|
+
`;
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from '@redocly/theme/markdoc/components/Accordion/Accordion';
|
|
2
|
+
export * from '@redocly/theme/markdoc/components/Accordion/AccordionGroup';
|
|
1
3
|
export * from '@redocly/theme/markdoc/components/Admonition/Admonition';
|
|
2
4
|
export * from '@redocly/theme/markdoc/components/InlineSvg/InlineSvg';
|
|
3
5
|
export * from '@redocly/theme/markdoc/components/MarkdocExample/MarkdocExample';
|
package/src/markdoc/default.ts
CHANGED
|
@@ -8,6 +8,8 @@ export * from '@redocly/theme/markdoc/attributes/svg-content';
|
|
|
8
8
|
/* Components */
|
|
9
9
|
export * as components from '@redocly/theme/markdoc/components/default';
|
|
10
10
|
/* Tags */
|
|
11
|
+
import { accordion } from '@redocly/theme/markdoc/tags/accordion';
|
|
12
|
+
import { accordionGroup } from '@redocly/theme/markdoc/tags/accordion-group';
|
|
11
13
|
import { admonition } from '@redocly/theme/markdoc/tags/admonition';
|
|
12
14
|
import { html } from '@redocly/theme/markdoc/tags/html';
|
|
13
15
|
import { markdocExample } from '@redocly/theme/markdoc/tags/markdoc-example';
|
|
@@ -33,6 +35,8 @@ import { loginButton } from '@redocly/theme/markdoc/tags/login-button';
|
|
|
33
35
|
import { diagram } from '@redocly/theme/markdoc/tags/diagram';
|
|
34
36
|
|
|
35
37
|
export const tags = {
|
|
38
|
+
[accordion.tagName]: accordion.schema,
|
|
39
|
+
[accordionGroup.tagName]: accordionGroup.schema,
|
|
36
40
|
[admonition.tagName]: admonition.schema,
|
|
37
41
|
[debug.tagName]: debug.schema,
|
|
38
42
|
[html.tagName]: html.schema,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MarkdocSchemaWrapper } from '@redocly/theme/markdoc/tags/types';
|
|
2
|
+
|
|
3
|
+
export const accordion: MarkdocSchemaWrapper = {
|
|
4
|
+
schema: {
|
|
5
|
+
render: 'Accordion',
|
|
6
|
+
attributes: {
|
|
7
|
+
title: { type: String, required: true },
|
|
8
|
+
expanded: { type: Boolean, default: false },
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
tagName: 'accordion',
|
|
12
|
+
};
|