@redocly/theme 0.69.0-next.0 → 0.69.0-next.10
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/Accordion/Accordion.js +5 -1
- package/lib/components/Accordion/variables.js +1 -1
- package/lib/components/Admonition/Admonition.d.ts +1 -1
- package/lib/components/Admonition/Admonition.js +1 -1
- package/lib/components/Admonition/variables.dark.js +2 -2
- package/lib/components/Admonition/variables.js +10 -10
- package/lib/components/Badge/Badge.d.ts +3 -1
- package/lib/components/Badge/Badge.js +7 -2
- package/lib/components/Banner/variables.dark.js +2 -0
- package/lib/components/Banner/variables.js +3 -1
- package/lib/components/Breadcrumbs/Breadcrumb.js +1 -1
- package/lib/components/Breadcrumbs/variables.js +1 -1
- package/lib/components/Button/ButtonGroup.d.ts +3 -5
- package/lib/components/Button/ButtonGroup.js +25 -5
- package/lib/components/Button/variables.js +27 -4
- package/lib/components/Buttons/ConnectMCPButton.js +39 -123
- package/lib/components/Buttons/CopyButton.js +12 -1
- package/lib/components/Buttons/variables.d.ts +0 -1
- package/lib/components/Buttons/variables.js +3 -44
- package/lib/components/Catalog/CatalogEntities.js +1 -0
- package/lib/components/Catalog/CatalogEntity/CatalogEntityLinks.js +1 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityMetadata.js +1 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.js +1 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelations.js +5 -3
- package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.js +1 -1
- package/lib/components/Catalog/CatalogFilter/CatalogFilterSelect.js +1 -0
- package/lib/components/Catalog/CatalogViewModeToggle.d.ts +1 -1
- package/lib/components/Catalog/CatalogViewModeToggle.js +2 -43
- package/lib/components/Catalog/variables.js +5 -5
- package/lib/components/CatalogClassic/variables.js +2 -2
- package/lib/components/CodeBlock/CodeBlock.js +2 -1
- package/lib/components/CodeBlock/CodeBlockContainer.js +1 -0
- package/lib/components/Dropdown/Dropdown.d.ts +10 -20
- package/lib/components/Dropdown/Dropdown.js +13 -2
- package/lib/components/Dropdown/DropdownMenuItemContent.d.ts +9 -0
- package/lib/components/Dropdown/DropdownMenuItemContent.js +56 -0
- package/lib/components/Dropdown/variables.js +19 -2
- package/lib/components/Feedback/Mood.js +18 -14
- package/lib/components/Feedback/Rating.js +18 -13
- package/lib/components/Feedback/Scale.js +27 -22
- package/lib/components/Feedback/Sentiment.js +17 -13
- package/lib/components/Filter/FilterInput.js +4 -2
- package/lib/components/Filter/FilterSelect.js +1 -0
- package/lib/components/Filter/variables.js +2 -2
- package/lib/components/Image/variables.js +5 -3
- package/lib/components/JsonViewer/Helpers.js +12 -42
- package/lib/components/LanguagePicker/variables.js +1 -1
- package/lib/components/MCP/McpConnectionTabs.d.ts +7 -0
- package/lib/components/MCP/McpConnectionTabs.js +151 -0
- package/lib/components/Markdown/Markdown.js +1 -1
- package/lib/components/Markdown/styles/base-table.js +8 -0
- package/lib/components/Markdown/variables.js +1 -1
- package/lib/components/Menu/MenuItem.js +1 -1
- package/lib/components/Menu/variables.js +1 -1
- package/lib/components/Navbar/variables.js +1 -1
- package/lib/components/PageActions/PageActions.js +4 -6
- package/lib/components/PageActions/PageActionsMenuItem.d.ts +4 -4
- package/lib/components/PageActions/PageActionsMenuItem.js +27 -43
- package/lib/components/Panel/Panel.js +5 -1
- package/lib/components/Panel/variables.js +1 -1
- package/lib/components/Product/variables.js +2 -1
- package/lib/components/ReplayGate/ReplayGate.d.ts +1 -0
- package/lib/components/Search/FilterFields/SearchFilterFieldSelect.js +22 -32
- package/lib/components/Search/SearchAiDialog.js +4 -1
- package/lib/components/Search/SearchAiMessage.js +1 -1
- package/lib/components/Search/SearchAiNegativeFeedbackForm.js +2 -2
- package/lib/components/Search/SearchDialog.js +2 -2
- package/lib/components/Search/SearchItem.js +6 -3
- package/lib/components/Search/SearchRecent.js +1 -0
- package/lib/components/Search/SearchSuggestedPages.js +1 -0
- package/lib/components/Search/variables.js +9 -5
- package/lib/components/Segmented/Segmented.js +3 -3
- package/lib/components/Select/Select.js +30 -23
- package/lib/components/Select/variables.js +3 -3
- package/lib/components/Sidebar/Sidebar.js +2 -38
- package/lib/components/SplitButton/SplitButton.d.ts +21 -0
- package/lib/components/SplitButton/SplitButton.js +37 -0
- package/lib/components/Switch/variables.dark.js +2 -2
- package/lib/components/Switch/variables.js +2 -2
- package/lib/components/Tag/variables.js +2 -2
- package/lib/components/Tags/variables.js +1 -1
- package/lib/components/Toast/variables.js +1 -1
- package/lib/components/Tooltip/AnchorTooltip.js +2 -2
- package/lib/components/Tooltip/JsTooltip.js +2 -2
- package/lib/components/UserMenu/variables.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/constants/mcp.d.ts +4 -0
- package/lib/core/constants/mcp.js +10 -1
- package/lib/core/constants/search.js +2 -2
- package/lib/core/contexts/PageActionsContext.d.ts +5 -0
- package/lib/core/contexts/PageActionsContext.js +10 -0
- package/lib/core/contexts/index.d.ts +1 -0
- package/lib/core/contexts/index.js +1 -0
- package/lib/core/hooks/code-walkthrough/use-code-walkthrough-controls.js +5 -17
- package/lib/core/hooks/code-walkthrough/use-code-walkthrough-steps.js +1 -0
- package/lib/core/hooks/menu/use-menu-item-expanded.js +1 -0
- package/lib/core/hooks/use-active-heading.js +59 -15
- package/lib/core/hooks/use-active-section-id.js +3 -1
- package/lib/core/hooks/use-connect-mcp-button.d.ts +1 -1
- package/lib/core/hooks/use-connect-mcp-button.js +16 -13
- package/lib/core/hooks/use-control.js +3 -0
- package/lib/core/hooks/use-local-state.js +1 -0
- package/lib/core/hooks/use-mcp-config.d.ts +2 -0
- package/lib/core/hooks/use-mcp-config.js +14 -4
- package/lib/core/hooks/use-mobile-menu.js +10 -2
- package/lib/core/styles/global.js +56 -49
- package/lib/core/styles/palette.js +2 -0
- package/lib/core/types/button-group.d.ts +2 -0
- package/lib/core/types/button-group.js +3 -0
- package/lib/core/types/catalog.d.ts +2 -4
- package/lib/core/types/common.d.ts +2 -0
- package/lib/core/types/hooks.d.ts +1 -0
- package/lib/core/types/index.d.ts +1 -0
- package/lib/core/types/l10n.d.ts +1 -1
- package/lib/core/types/mcp.d.ts +1 -1
- package/lib/core/utils/RenderWithLink.d.ts +2 -0
- package/lib/core/utils/RenderWithLink.js +20 -0
- package/lib/core/utils/index.d.ts +1 -0
- package/lib/core/utils/index.js +1 -0
- package/lib/core/utils/mcp.d.ts +5 -0
- package/lib/core/utils/mcp.js +35 -0
- package/lib/icons/CodexIcon/CodexIcon.d.ts +25 -0
- package/lib/icons/CodexIcon/CodexIcon.js +22 -0
- package/lib/icons/LinkIcon/LinkIcon.js +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/layouts/McpNotAllowed.js +10 -10
- 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/Cards/Card.d.ts +8 -1
- package/lib/markdoc/components/Cards/Card.js +55 -16
- package/lib/markdoc/components/Cards/CardBadge.d.ts +9 -0
- package/lib/markdoc/components/Cards/CardBadge.js +30 -0
- package/lib/markdoc/components/Cards/CardIcon.d.ts +5 -4
- package/lib/markdoc/components/Cards/CardIcon.js +6 -3
- package/lib/markdoc/components/Cards/variables.dark.js +32 -0
- package/lib/markdoc/components/Cards/variables.js +81 -7
- package/lib/markdoc/components/CodeWalkthrough/CodePanel.js +1 -0
- package/lib/markdoc/components/CodeWalkthrough/CodeStep.js +1 -1
- package/lib/markdoc/components/CodeWalkthrough/variables.js +2 -1
- package/lib/markdoc/components/Heading/Heading.js +5 -2
- package/lib/markdoc/components/Tabs/TabList.js +6 -2
- package/lib/markdoc/components/Tabs/Tabs.js +4 -2
- package/lib/markdoc/components/Tabs/variables.js +4 -4
- 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/lib/markdoc/tags/admonition.js +1 -1
- package/lib/markdoc/tags/card.js +14 -0
- package/lib/markdoc/tags/connect-mcp.js +2 -1
- package/package.json +19 -10
- package/src/components/Accordion/Accordion.tsx +7 -3
- package/src/components/Accordion/variables.ts +1 -1
- package/src/components/Admonition/Admonition.tsx +2 -2
- package/src/components/Admonition/variables.dark.ts +2 -2
- package/src/components/Admonition/variables.ts +10 -10
- package/src/components/Badge/Badge.tsx +16 -2
- package/src/components/Banner/variables.dark.ts +2 -0
- package/src/components/Banner/variables.ts +3 -1
- package/src/components/Breadcrumbs/Breadcrumb.tsx +1 -1
- package/src/components/Breadcrumbs/variables.ts +1 -1
- package/src/components/Button/ButtonGroup.tsx +28 -10
- package/src/components/Button/variables.ts +27 -4
- package/src/components/Buttons/ConnectMCPButton.tsx +88 -145
- package/src/components/Buttons/CopyButton.tsx +14 -2
- package/src/components/Buttons/variables.ts +2 -44
- package/src/components/Catalog/CatalogEntities.tsx +1 -0
- package/src/components/Catalog/CatalogEntity/CatalogEntityLinks.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelations.tsx +6 -4
- package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +1 -1
- package/src/components/Catalog/CatalogFilter/CatalogFilterSelect.tsx +1 -0
- package/src/components/Catalog/CatalogViewModeToggle.tsx +2 -17
- package/src/components/Catalog/variables.ts +5 -5
- package/src/components/CatalogClassic/variables.ts +2 -2
- package/src/components/CodeBlock/CodeBlock.tsx +2 -1
- package/src/components/CodeBlock/CodeBlockContainer.tsx +1 -0
- package/src/components/Dropdown/Dropdown.tsx +25 -4
- package/src/components/Dropdown/DropdownMenuItemContent.tsx +72 -0
- package/src/components/Dropdown/variables.ts +19 -2
- package/src/components/Feedback/Mood.tsx +22 -15
- package/src/components/Feedback/Rating.tsx +22 -14
- package/src/components/Feedback/Scale.tsx +40 -32
- package/src/components/Feedback/Sentiment.tsx +21 -14
- package/src/components/Filter/FilterInput.tsx +5 -3
- package/src/components/Filter/FilterSelect.tsx +1 -0
- package/src/components/Filter/variables.ts +2 -2
- package/src/components/Image/variables.ts +5 -3
- package/src/components/JsonViewer/Helpers.tsx +13 -9
- package/src/components/LanguagePicker/variables.ts +1 -1
- package/src/components/MCP/McpConnectionTabs.tsx +263 -0
- package/src/components/Markdown/Markdown.tsx +2 -1
- package/src/components/Markdown/styles/base-table.ts +8 -0
- package/src/components/Markdown/variables.ts +1 -1
- package/src/components/Menu/MenuItem.tsx +2 -2
- package/src/components/Menu/variables.ts +1 -1
- package/src/components/Navbar/variables.ts +1 -1
- package/src/components/PageActions/PageActions.tsx +22 -23
- package/src/components/PageActions/PageActionsMenuItem.tsx +41 -55
- package/src/components/Panel/Panel.tsx +7 -3
- package/src/components/Panel/variables.ts +1 -1
- package/src/components/Product/variables.ts +2 -1
- package/src/components/ReplayGate/ReplayGate.tsx +3 -0
- package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +32 -40
- package/src/components/Search/SearchAiDialog.tsx +4 -1
- package/src/components/Search/SearchAiMessage.tsx +1 -1
- package/src/components/Search/SearchAiNegativeFeedbackForm.tsx +2 -2
- package/src/components/Search/SearchDialog.tsx +2 -2
- package/src/components/Search/SearchItem.tsx +7 -1
- package/src/components/Search/SearchRecent.tsx +1 -0
- package/src/components/Search/SearchSuggestedPages.tsx +1 -0
- package/src/components/Search/variables.ts +9 -5
- package/src/components/Segmented/Segmented.tsx +6 -3
- package/src/components/Select/Select.tsx +36 -22
- package/src/components/Select/variables.ts +3 -3
- package/src/components/Sidebar/Sidebar.tsx +2 -6
- package/src/components/SplitButton/SplitButton.tsx +95 -0
- package/src/components/Switch/variables.dark.ts +2 -2
- package/src/components/Switch/variables.ts +2 -2
- package/src/components/Tag/variables.ts +2 -2
- package/src/components/Tags/variables.ts +1 -1
- package/src/components/Toast/variables.ts +1 -1
- package/src/components/Tooltip/AnchorTooltip.tsx +2 -2
- package/src/components/Tooltip/JsTooltip.tsx +2 -2
- package/src/components/UserMenu/variables.ts +1 -1
- package/src/core/constants/accordion.ts +4 -0
- package/src/core/constants/index.ts +1 -0
- package/src/core/constants/mcp.ts +14 -0
- package/src/core/constants/search.ts +2 -2
- package/src/core/contexts/PageActionsContext.tsx +7 -0
- package/src/core/contexts/index.ts +1 -0
- package/src/core/hooks/code-walkthrough/use-code-walkthrough-controls.ts +6 -20
- package/src/core/hooks/code-walkthrough/use-code-walkthrough-steps.ts +1 -0
- package/src/core/hooks/menu/use-menu-item-expanded.ts +1 -0
- package/src/core/hooks/use-active-heading.ts +79 -15
- package/src/core/hooks/use-active-section-id.ts +3 -1
- package/src/core/hooks/use-connect-mcp-button.ts +23 -15
- package/src/core/hooks/use-control.ts +5 -1
- package/src/core/hooks/use-local-state.ts +1 -0
- package/src/core/hooks/use-mcp-config.ts +15 -4
- package/src/core/hooks/use-mobile-menu.ts +11 -3
- package/src/core/openapi/index.ts +1 -1
- package/src/core/styles/global.ts +19 -12
- package/src/core/styles/palette.ts +2 -0
- package/src/core/types/button-group.ts +2 -0
- package/src/core/types/catalog.ts +2 -4
- package/src/core/types/common.ts +3 -0
- package/src/core/types/hooks.ts +1 -0
- package/src/core/types/index.ts +1 -0
- package/src/core/types/l10n.ts +29 -1
- package/src/core/types/mcp.ts +1 -1
- package/src/core/utils/RenderWithLink.tsx +19 -0
- package/src/core/utils/index.ts +1 -0
- package/src/core/utils/mcp.ts +39 -0
- package/src/icons/CodexIcon/CodexIcon.tsx +23 -0
- package/src/icons/LinkIcon/LinkIcon.tsx +1 -1
- package/src/index.ts +2 -0
- package/src/layouts/McpNotAllowed.tsx +37 -11
- 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/Cards/Card.tsx +79 -14
- package/src/markdoc/components/Cards/CardBadge.tsx +39 -0
- package/src/markdoc/components/Cards/CardIcon.tsx +16 -5
- package/src/markdoc/components/Cards/variables.dark.ts +32 -0
- package/src/markdoc/components/Cards/variables.ts +81 -7
- package/src/markdoc/components/CodeWalkthrough/CodePanel.tsx +1 -0
- package/src/markdoc/components/CodeWalkthrough/CodeStep.tsx +1 -1
- package/src/markdoc/components/CodeWalkthrough/variables.ts +2 -1
- package/src/markdoc/components/Heading/Heading.tsx +7 -4
- package/src/markdoc/components/Tabs/TabList.tsx +6 -2
- package/src/markdoc/components/Tabs/Tabs.tsx +4 -2
- package/src/markdoc/components/Tabs/variables.ts +4 -4
- 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
- package/src/markdoc/tags/admonition.ts +1 -1
- package/src/markdoc/tags/card.ts +14 -0
- package/src/markdoc/tags/connect-mcp.ts +3 -1
|
@@ -212,10 +212,8 @@ export type BffCatalogEntityList = BffCatalogList<BffCatalogEntity>;
|
|
|
212
212
|
export type BffCatalogRelatedEntityList = BffCatalogList<BffCatalogRelatedEntity>;
|
|
213
213
|
|
|
214
214
|
export type Page = {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
hasNextPage: boolean;
|
|
218
|
-
hasPrevPage: boolean;
|
|
215
|
+
nextPage: string | null;
|
|
216
|
+
previousPage: string | null;
|
|
219
217
|
limit: number;
|
|
220
218
|
total: number;
|
|
221
219
|
};
|
package/src/core/types/common.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import type React from 'react';
|
|
1
2
|
import { DEFAULT_COLOR_MODES } from '../constants';
|
|
2
3
|
|
|
3
4
|
export type Plural<T extends string> = `${T}s`;
|
|
4
5
|
|
|
5
6
|
export type ColorMode = (typeof DEFAULT_COLOR_MODES)[keyof typeof DEFAULT_COLOR_MODES];
|
|
7
|
+
|
|
8
|
+
export type RenderableChildren<Context> = React.ReactNode | ((context: Context) => React.ReactNode);
|
package/src/core/types/hooks.ts
CHANGED
package/src/core/types/index.ts
CHANGED
package/src/core/types/l10n.ts
CHANGED
|
@@ -134,8 +134,28 @@ export type TranslationKey =
|
|
|
134
134
|
| 'page.forbidden.description'
|
|
135
135
|
| 'page.notFound.title'
|
|
136
136
|
| 'page.notFound.description'
|
|
137
|
+
| 'page.apiNotFound.title'
|
|
138
|
+
| 'page.apiNotFound.description'
|
|
139
|
+
| 'page.apiNotFound.hint'
|
|
140
|
+
| 'page.apiNotFound.backButton'
|
|
137
141
|
| 'page.mcpNotAllowed.title'
|
|
138
142
|
| 'page.mcpNotAllowed.description'
|
|
143
|
+
| 'page.mcpNotAllowed.publicNote'
|
|
144
|
+
| 'page.mcpNotAllowed.publicEndpointHint'
|
|
145
|
+
| 'page.mcpNotAllowed.mainEndpointHint'
|
|
146
|
+
| 'page.mcpNotAllowed.snippets.terminal.hint'
|
|
147
|
+
| 'page.mcpNotAllowed.snippets.claudeCode.headline'
|
|
148
|
+
| 'page.mcpNotAllowed.snippets.claudeDesktop.headline'
|
|
149
|
+
| 'page.mcpNotAllowed.snippets.claudeDesktop.instruction'
|
|
150
|
+
| 'page.mcpNotAllowed.snippets.chatgptApp.headline'
|
|
151
|
+
| 'page.mcpNotAllowed.snippets.chatgptApp.instruction'
|
|
152
|
+
| 'page.mcpNotAllowed.snippets.codexCli.headline'
|
|
153
|
+
| 'page.mcpNotAllowed.snippets.prompt.headline'
|
|
154
|
+
| 'page.mcpNotAllowed.snippets.prompt.hint'
|
|
155
|
+
| 'page.mcpNotAllowed.snippets.json.hint'
|
|
156
|
+
| 'page.mcpNotAllowed.tabs.claude'
|
|
157
|
+
| 'page.mcpNotAllowed.tabs.chatgpt'
|
|
158
|
+
| 'page.mcpNotAllowed.tabs.json'
|
|
139
159
|
| 'page.lastUpdated.timeago'
|
|
140
160
|
| 'page.lastUpdated.on'
|
|
141
161
|
| 'catalog.filters.placeholder'
|
|
@@ -271,8 +291,14 @@ export type TranslationKey =
|
|
|
271
291
|
| 'page.actions.connectMcp.cursorDescription'
|
|
272
292
|
| 'page.actions.connectMcp.vscode'
|
|
273
293
|
| 'page.actions.connectMcp.vscodeDescription'
|
|
294
|
+
| 'page.actions.connectMcp.claudeCode'
|
|
295
|
+
| 'page.actions.connectMcp.claudeCodeDescription'
|
|
296
|
+
| 'page.actions.connectMcp.codex'
|
|
297
|
+
| 'page.actions.connectMcp.codexDescription'
|
|
274
298
|
| 'page.actions.connectMcp.copyConfig'
|
|
275
299
|
| 'page.actions.connectMcp.copyConfigDescription'
|
|
300
|
+
| 'page.actions.connectMcp.moreOptions'
|
|
301
|
+
| 'page.actions.moreActions'
|
|
276
302
|
| 'openapi.download.description.title'
|
|
277
303
|
| 'openapi.info.title'
|
|
278
304
|
| 'openapi.info.contact.url'
|
|
@@ -280,6 +306,7 @@ export type TranslationKey =
|
|
|
280
306
|
| 'openapi.info.license'
|
|
281
307
|
| 'openapi.info.termsOfService'
|
|
282
308
|
| 'openapi.info.metadata.title'
|
|
309
|
+
| 'graphql.info.metadata.title'
|
|
283
310
|
| 'openapi.key'
|
|
284
311
|
| 'openapi.value'
|
|
285
312
|
| 'openapi.enum'
|
|
@@ -369,6 +396,8 @@ export type TranslationKey =
|
|
|
369
396
|
| 'openapi.mcp.inputExample'
|
|
370
397
|
| 'openapi.mcp.outputSchema'
|
|
371
398
|
| 'openapi.mcp.outputExample'
|
|
399
|
+
| 'openapi.mcp.exampleTitle'
|
|
400
|
+
| 'openapi.mcp.argumentsExample'
|
|
372
401
|
| 'asyncapi.download.description.title'
|
|
373
402
|
| 'asyncapi.info.title'
|
|
374
403
|
| 'asyncapi.info.contact.url'
|
|
@@ -449,7 +478,6 @@ export type TranslationKey =
|
|
|
449
478
|
| 'graphql.sample'
|
|
450
479
|
| 'graphql.referenced'
|
|
451
480
|
| 'graphql.content.fragment'
|
|
452
|
-
| 'button.copy.tooltipText'
|
|
453
481
|
| 'button.download.tooltipText'
|
|
454
482
|
| 'button.externalLink.tooltipText'
|
|
455
483
|
| 'button.email.tooltipText'
|
package/src/core/types/mcp.ts
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { JSX } from 'react';
|
|
4
|
+
|
|
5
|
+
// Splits a translated sentence on <link>...</link> markers and renders the
|
|
6
|
+
// marked phrase as an anchor, so each locale keeps its own word order.
|
|
7
|
+
export function renderWithLink(text: string, href: string): JSX.Element {
|
|
8
|
+
const [before, label, after] = text.split(/<link>|<\/link>/);
|
|
9
|
+
if (label === undefined) {
|
|
10
|
+
return <>{text}</>;
|
|
11
|
+
}
|
|
12
|
+
return (
|
|
13
|
+
<>
|
|
14
|
+
{before}
|
|
15
|
+
<a href={href}>{label}</a>
|
|
16
|
+
{after}
|
|
17
|
+
</>
|
|
18
|
+
);
|
|
19
|
+
}
|
package/src/core/utils/index.ts
CHANGED
package/src/core/utils/mcp.ts
CHANGED
|
@@ -32,3 +32,42 @@ export function generateMCPDeepLink(
|
|
|
32
32
|
return generateCursorMCPDeepLink(config);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
+
|
|
36
|
+
// Server names can contain spaces (e.g. "Docs MCP server") which break bare CLI
|
|
37
|
+
// arguments, so commands use a slugified form while JSON configs keep the raw name.
|
|
38
|
+
export function slugifyMcpServerName(name: string): string {
|
|
39
|
+
return name
|
|
40
|
+
.toLowerCase()
|
|
41
|
+
.replace(/[^a-z0-9_-]+/g, '-')
|
|
42
|
+
.replace(/^-+|-+$/g, '');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Claude Desktop's config file only launches stdio commands, so remote servers
|
|
46
|
+
// connect through the mcp-remote bridge.
|
|
47
|
+
export function generateClaudeDesktopConfig(config: McpConnectionParams): string {
|
|
48
|
+
return JSON.stringify(
|
|
49
|
+
{
|
|
50
|
+
mcpServers: {
|
|
51
|
+
[slugifyMcpServerName(config.serverName)]: {
|
|
52
|
+
command: 'npx',
|
|
53
|
+
args: ['-y', 'mcp-remote', config.url],
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
null,
|
|
58
|
+
2,
|
|
59
|
+
);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export function generateClaudeCodeCommand(config: McpConnectionParams): string {
|
|
63
|
+
return `claude mcp add --transport http ${slugifyMcpServerName(config.serverName)} ${config.url}`;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export function generateCodexCommand(config: McpConnectionParams): string {
|
|
67
|
+
return `codex mcp add ${slugifyMcpServerName(config.serverName)} --url ${config.url}`;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Pasted into an AI assistant (Claude Code, Codex) so it installs the server itself.
|
|
71
|
+
export function generateMcpInstallPrompt(config: McpConnectionParams): string {
|
|
72
|
+
return `Add the MCP server "${slugifyMcpServerName(config.serverName)}" with URL ${config.url} (streamable HTTP transport) to my MCP configuration, then verify it is connected.`;
|
|
73
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import styled from 'styled-components';
|
|
3
|
+
|
|
4
|
+
import type { IconProps } from '@redocly/theme/icons/types';
|
|
5
|
+
|
|
6
|
+
import { getCssColorVariable } from '@redocly/theme/core/utils';
|
|
7
|
+
|
|
8
|
+
const Icon = (props: IconProps) => (
|
|
9
|
+
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
|
|
10
|
+
<path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.073zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.8956zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997z" />
|
|
11
|
+
</svg>
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
export const CodexIcon = styled(Icon).attrs({
|
|
15
|
+
'data-component-name': 'icons/CodexIcon/CodexIcon',
|
|
16
|
+
})`
|
|
17
|
+
path {
|
|
18
|
+
fill: ${({ color }) => getCssColorVariable(color)};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
height: ${({ size }) => size || '16px'};
|
|
22
|
+
width: ${({ size }) => size || '16px'};
|
|
23
|
+
`;
|
|
@@ -15,7 +15,7 @@ const Icon = (props: IconProps) => (
|
|
|
15
15
|
{...props}
|
|
16
16
|
>
|
|
17
17
|
<path
|
|
18
|
-
d="M0
|
|
18
|
+
d="M0 6C0 2.68629 2.68629 0 6 0H14C17.3137 0 20 2.68629 20 6V14C20 17.3137 17.3137 20 14 20H6C2.68629 20 0 17.3137 0 14V6Z"
|
|
19
19
|
fill="var(--layer-color)"
|
|
20
20
|
/>
|
|
21
21
|
<path
|
package/src/index.ts
CHANGED
|
@@ -15,6 +15,8 @@ export * from '@redocly/theme/components/Badge/Badge';
|
|
|
15
15
|
export * from '@redocly/theme/components/Dropdown/Dropdown';
|
|
16
16
|
export * from '@redocly/theme/components/Dropdown/DropdownMenu';
|
|
17
17
|
export * from '@redocly/theme/components/Dropdown/DropdownMenuItem';
|
|
18
|
+
export * from '@redocly/theme/components/Dropdown/DropdownMenuItemContent';
|
|
19
|
+
export * from '@redocly/theme/components/SplitButton/SplitButton';
|
|
18
20
|
export * from '@redocly/theme/components/Loaders/Loading';
|
|
19
21
|
export * from '@redocly/theme/components/LoadMore/LoadMore';
|
|
20
22
|
export * from '@redocly/theme/components/Link/Link';
|
|
@@ -3,28 +3,61 @@ import styled from 'styled-components';
|
|
|
3
3
|
|
|
4
4
|
import type { JSX } from 'react';
|
|
5
5
|
|
|
6
|
-
import { useThemeHooks } from '@redocly/theme/core/hooks';
|
|
6
|
+
import { useThemeHooks, useMCPConfig } from '@redocly/theme/core/hooks';
|
|
7
|
+
import { renderWithLink } from '@redocly/theme/core/utils';
|
|
7
8
|
import { ConnectMCPButton } from '@redocly/theme/components/Buttons/ConnectMCPButton';
|
|
9
|
+
import { McpConnectionTabs } from '@redocly/theme/components/MCP/McpConnectionTabs';
|
|
8
10
|
|
|
9
11
|
export default function McpNotAllowed(): JSX.Element {
|
|
10
12
|
const { useTranslate } = useThemeHooks();
|
|
11
13
|
const { translate } = useTranslate();
|
|
14
|
+
const { isPublicEndpointPage, alternateServerUrl } = useMCPConfig();
|
|
12
15
|
|
|
13
16
|
return (
|
|
14
17
|
<NotAllowedWrapper data-component-name="layouts/McpNotAllowed">
|
|
15
|
-
<StatusText>405</StatusText>
|
|
16
18
|
<Title data-translation-key="page.mcpNotAllowed.title">
|
|
17
|
-
{translate('page.mcpNotAllowed.title', '
|
|
19
|
+
{translate('page.mcpNotAllowed.title', 'Connect to the MCP server')}
|
|
18
20
|
</Title>
|
|
19
21
|
<Description data-translation-key="page.mcpNotAllowed.description">
|
|
20
22
|
{translate(
|
|
21
23
|
'page.mcpNotAllowed.description',
|
|
22
|
-
'To use this MCP server, register it in your MCP
|
|
24
|
+
'To use this MCP server, register it in your MCP client (for example: VS Code, Cursor, or Claude Code).',
|
|
23
25
|
)}
|
|
24
26
|
</Description>
|
|
27
|
+
{isPublicEndpointPage && (
|
|
28
|
+
<Description data-translation-key="page.mcpNotAllowed.publicNote">
|
|
29
|
+
{translate(
|
|
30
|
+
'page.mcpNotAllowed.publicNote',
|
|
31
|
+
'This endpoint serves publicly available content only and requires no login.',
|
|
32
|
+
)}
|
|
33
|
+
</Description>
|
|
34
|
+
)}
|
|
35
|
+
{isPublicEndpointPage && alternateServerUrl && (
|
|
36
|
+
<Description data-translation-key="page.mcpNotAllowed.mainEndpointHint">
|
|
37
|
+
{renderWithLink(
|
|
38
|
+
translate(
|
|
39
|
+
'page.mcpNotAllowed.mainEndpointHint',
|
|
40
|
+
'To access content available to your account, use the <link>main MCP endpoint</link>.',
|
|
41
|
+
),
|
|
42
|
+
alternateServerUrl,
|
|
43
|
+
)}
|
|
44
|
+
</Description>
|
|
45
|
+
)}
|
|
46
|
+
{!isPublicEndpointPage && alternateServerUrl && (
|
|
47
|
+
<Description data-translation-key="page.mcpNotAllowed.publicEndpointHint">
|
|
48
|
+
{renderWithLink(
|
|
49
|
+
translate(
|
|
50
|
+
'page.mcpNotAllowed.publicEndpointHint',
|
|
51
|
+
'To connect anonymously without an account, use the <link>public endpoint</link>.',
|
|
52
|
+
),
|
|
53
|
+
alternateServerUrl,
|
|
54
|
+
)}
|
|
55
|
+
</Description>
|
|
56
|
+
)}
|
|
25
57
|
<ButtonWrapper>
|
|
26
58
|
<ConnectMCPButton alignment="start" />
|
|
27
59
|
</ButtonWrapper>
|
|
60
|
+
<McpConnectionTabs />
|
|
28
61
|
</NotAllowedWrapper>
|
|
29
62
|
);
|
|
30
63
|
}
|
|
@@ -44,13 +77,6 @@ const NotAllowedWrapper = styled.div`
|
|
|
44
77
|
}
|
|
45
78
|
`;
|
|
46
79
|
|
|
47
|
-
const StatusText = styled.div`
|
|
48
|
-
color: var(--page-mcp-405-status-text-color);
|
|
49
|
-
font-size: var(--page-mcp-405-status-font-size);
|
|
50
|
-
line-height: var(--page-mcp-405-status-line-height);
|
|
51
|
-
font-weight: var(--page-mcp-405-status-font-weight);
|
|
52
|
-
`;
|
|
53
|
-
|
|
54
80
|
const Title = styled.div`
|
|
55
81
|
font-size: var(--page-mcp-405-title-font-size);
|
|
56
82
|
line-height: var(--page-mcp-405-title-line-height);
|
|
@@ -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
|
+
`;
|