@redocly/theme 0.71.0-next.4 → 0.71.0-next.6

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.
Files changed (80) hide show
  1. package/lib/components/Buttons/MobileMenuButton.d.ts +8 -0
  2. package/lib/components/Buttons/MobileMenuButton.js +58 -0
  3. package/lib/components/Catalog/CatalogFilter/CatalogFilter.js +1 -1
  4. package/lib/components/Feedback/Mood.js +1 -1
  5. package/lib/components/Feedback/Rating.js +1 -1
  6. package/lib/components/Feedback/Scale.js +1 -1
  7. package/lib/components/Feedback/Sentiment.js +1 -1
  8. package/lib/components/Filter/Filter.js +1 -1
  9. package/lib/components/MCP/McpConnectionTabs.d.ts +1 -1
  10. package/lib/components/MCP/McpConnectionTabs.js +24 -1
  11. package/lib/components/MissingTranslationNotice/MissingTranslationNotice.d.ts +11 -0
  12. package/lib/components/MissingTranslationNotice/MissingTranslationNotice.js +83 -0
  13. package/lib/components/MissingTranslationNotice/variables.d.ts +1 -0
  14. package/lib/components/MissingTranslationNotice/variables.dark.d.ts +1 -0
  15. package/lib/components/MissingTranslationNotice/variables.dark.js +10 -0
  16. package/lib/components/MissingTranslationNotice/variables.js +29 -0
  17. package/lib/components/Navbar/Navbar.js +10 -18
  18. package/lib/components/PageActions/PageActions.js +1 -0
  19. package/lib/components/Select/Select.js +1 -2
  20. package/lib/core/hooks/use-active-section-id.js +8 -0
  21. package/lib/core/hooks/use-focus-trap.js +6 -5
  22. package/lib/core/hooks/use-page-actions.d.ts +1 -1
  23. package/lib/core/hooks/use-page-actions.js +47 -35
  24. package/lib/core/styles/dark.js +4 -2
  25. package/lib/core/styles/global.js +70 -68
  26. package/lib/core/types/hooks.d.ts +2 -5
  27. package/lib/core/types/l10n.d.ts +2 -1
  28. package/lib/core/utils/get-ai-prompt-link.d.ts +3 -1
  29. package/lib/core/utils/get-ai-prompt-link.js +1 -0
  30. package/lib/core/utils/mcp.d.ts +1 -0
  31. package/lib/core/utils/mcp.js +4 -0
  32. package/lib/icons/GrokIcon/GrokIcon.d.ts +25 -0
  33. package/lib/icons/GrokIcon/GrokIcon.js +23 -0
  34. package/lib/icons/McpIcon/McpIcon.d.ts +25 -0
  35. package/lib/icons/McpIcon/McpIcon.js +24 -0
  36. package/lib/icons/TranslateIcon/TranslateIcon.d.ts +25 -0
  37. package/lib/icons/TranslateIcon/TranslateIcon.js +21 -0
  38. package/lib/index.d.ts +3 -0
  39. package/lib/index.js +4 -0
  40. package/lib/layouts/CodeWalkthroughLayout.js +9 -1
  41. package/lib/layouts/DocumentationLayout.js +2 -0
  42. package/lib/markdoc/default.d.ts +2 -0
  43. package/lib/markdoc/default.js +2 -0
  44. package/package.json +4 -3
  45. package/src/components/Buttons/MobileMenuButton.tsx +45 -0
  46. package/src/components/Catalog/CatalogFilter/CatalogFilter.tsx +2 -2
  47. package/src/components/CatalogClassic/CatalogClassicInfoBlock.tsx +1 -1
  48. package/src/components/Feedback/Feedback.tsx +1 -3
  49. package/src/components/Feedback/Mood.tsx +1 -1
  50. package/src/components/Feedback/Rating.tsx +1 -1
  51. package/src/components/Feedback/Scale.tsx +1 -1
  52. package/src/components/Feedback/Sentiment.tsx +1 -1
  53. package/src/components/Filter/Filter.tsx +2 -2
  54. package/src/components/MCP/McpConnectionTabs.tsx +56 -2
  55. package/src/components/MissingTranslationNotice/MissingTranslationNotice.tsx +113 -0
  56. package/src/components/MissingTranslationNotice/variables.dark.ts +7 -0
  57. package/src/components/MissingTranslationNotice/variables.ts +26 -0
  58. package/src/components/Navbar/Navbar.tsx +15 -30
  59. package/src/components/PageActions/PageActions.tsx +1 -0
  60. package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +1 -1
  61. package/src/components/Select/Select.tsx +1 -2
  62. package/src/core/hooks/__mocks__/use-theme-hooks.ts +1 -1
  63. package/src/core/hooks/use-active-section-id.ts +13 -0
  64. package/src/core/hooks/use-codeblock-tabs-controls.ts +1 -1
  65. package/src/core/hooks/use-focus-trap.ts +8 -7
  66. package/src/core/hooks/use-page-actions.ts +73 -43
  67. package/src/core/styles/dark.ts +2 -0
  68. package/src/core/styles/global.ts +2 -0
  69. package/src/core/types/hooks.ts +2 -2
  70. package/src/core/types/l10n.ts +15 -2
  71. package/src/core/utils/get-ai-prompt-link.ts +5 -2
  72. package/src/core/utils/mcp.ts +4 -0
  73. package/src/icons/GrokIcon/GrokIcon.tsx +24 -0
  74. package/src/icons/McpIcon/McpIcon.tsx +37 -0
  75. package/src/icons/TranslateIcon/TranslateIcon.tsx +22 -0
  76. package/src/index.ts +4 -0
  77. package/src/layouts/CodeWalkthroughLayout.tsx +11 -1
  78. package/src/layouts/DocumentationLayout.tsx +2 -0
  79. package/src/markdoc/default.ts +2 -0
  80. package/src/markdoc/tags/code-walkthrough.ts +1 -1
@@ -18,7 +18,8 @@ const variables_dark_13 = require("../../components/PageActions/variables.dark")
18
18
  const variables_dark_14 = require("../../components/Tooltip/variables.dark");
19
19
  const variables_dark_15 = require("../../components/Banner/variables.dark");
20
20
  const variables_dark_16 = require("../../components/Admonition/variables.dark");
21
- const variables_dark_17 = require("../../components/CodeBlock/variables.dark");
21
+ const variables_dark_17 = require("../../components/MissingTranslationNotice/variables.dark");
22
+ const variables_dark_18 = require("../../components/CodeBlock/variables.dark");
22
23
  const palette_dark_1 = require("./palette.dark");
23
24
  const replayDarkMode = (0, styled_components_1.css) `
24
25
  /**
@@ -359,10 +360,11 @@ exports.darkMode = (0, styled_components_1.css) `
359
360
  ${variables_dark_14.tooltipDarkMode}
360
361
  ${variables_dark_15.bannerDarkMode}
361
362
  ${variables_dark_16.admonitionDarkMode}
363
+ ${variables_dark_17.missingTranslationNoticeDarkMode}
362
364
  ${badgesDarkMode}
363
365
  ${numberedListDarkMode}
364
366
  ${palette_dark_1.activeBrandPaletteDark}
365
- ${variables_dark_17.codeBlockDarkMode}
367
+ ${variables_dark_18.codeBlockDarkMode}
366
368
  /**
367
369
  * @tokens Dark Theme Scrollbar Config
368
370
  * @presenter Color
@@ -20,39 +20,40 @@ const variables_15 = require("../../components/Dropdown/variables");
20
20
  const variables_16 = require("../../components/Tooltip/variables");
21
21
  const variables_17 = require("../../icons/CheckboxIcon/variables");
22
22
  const variables_18 = require("../../components/Admonition/variables");
23
- const variables_19 = require("../../components/Footer/variables");
24
- const variables_20 = require("../../components/Button/variables");
25
- const variables_21 = require("../../components/Buttons/variables");
26
- const variables_22 = require("../../components/Navbar/variables");
27
- const variables_23 = require("../../components/Search/variables");
28
- const variables_24 = require("../../components/Menu/variables");
29
- const variables_25 = require("../../components/CodeBlock/variables");
30
- const variables_26 = require("../../components/Product/variables");
31
- const variables_27 = require("../../components/Markdown/variables");
32
- const variables_28 = require("../../components/Banner/variables");
33
- const variables_29 = require("../../components/Consent/variables");
34
- const variables_30 = require("../../markdoc/components/Accordion/variables");
35
- const variables_31 = require("../../markdoc/components/Tabs/variables");
36
- const variables_32 = require("../../markdoc/components/NumberedList/variables");
37
- const variables_33 = require("../../markdoc/components/Diagram/variables");
38
- const variables_34 = require("../../components/LastUpdated/variables");
39
- const variables_35 = require("../../components/Logo/variables");
40
- const variables_36 = require("../../components/StatusCode/variables");
41
- const variables_37 = require("../../components/Segmented/variables");
42
- const variables_38 = require("../../components/UserMenu/variables");
43
- const variables_39 = require("../../components/Tags/variables");
44
- const variables_40 = require("../../components/VersionPicker/variables");
45
- const variables_41 = require("../../components/DatePicker/variables");
46
- const variables_42 = require("../../components/Switch/variables");
47
- const variables_43 = require("../../markdoc/components/Cards/variables");
48
- const variables_44 = require("../../markdoc/components/Prompt/variables");
49
- const variables_45 = require("../../markdoc/components/CodeWalkthrough/variables");
50
- const variables_46 = require("../../components/SkipContent/variables");
51
- const variables_47 = require("../../components/PageActions/variables");
52
- const variables_48 = require("../../components/SvgViewer/variables");
53
- const variables_49 = require("../../components/Toast/variables");
54
- const variables_50 = require("../../components/PageNavigation/variables");
55
- const variables_51 = require("../../components/NavigationTabs/variables");
23
+ const variables_19 = require("../../components/MissingTranslationNotice/variables");
24
+ const variables_20 = require("../../components/Footer/variables");
25
+ const variables_21 = require("../../components/Button/variables");
26
+ const variables_22 = require("../../components/Buttons/variables");
27
+ const variables_23 = require("../../components/Navbar/variables");
28
+ const variables_24 = require("../../components/Search/variables");
29
+ const variables_25 = require("../../components/Menu/variables");
30
+ const variables_26 = require("../../components/CodeBlock/variables");
31
+ const variables_27 = require("../../components/Product/variables");
32
+ const variables_28 = require("../../components/Markdown/variables");
33
+ const variables_29 = require("../../components/Banner/variables");
34
+ const variables_30 = require("../../components/Consent/variables");
35
+ const variables_31 = require("../../markdoc/components/Accordion/variables");
36
+ const variables_32 = require("../../markdoc/components/Tabs/variables");
37
+ const variables_33 = require("../../markdoc/components/NumberedList/variables");
38
+ const variables_34 = require("../../markdoc/components/Diagram/variables");
39
+ const variables_35 = require("../../components/LastUpdated/variables");
40
+ const variables_36 = require("../../components/Logo/variables");
41
+ const variables_37 = require("../../components/StatusCode/variables");
42
+ const variables_38 = require("../../components/Segmented/variables");
43
+ const variables_39 = require("../../components/UserMenu/variables");
44
+ const variables_40 = require("../../components/Tags/variables");
45
+ const variables_41 = require("../../components/VersionPicker/variables");
46
+ const variables_42 = require("../../components/DatePicker/variables");
47
+ const variables_43 = require("../../components/Switch/variables");
48
+ const variables_44 = require("../../markdoc/components/Cards/variables");
49
+ const variables_45 = require("../../markdoc/components/Prompt/variables");
50
+ const variables_46 = require("../../markdoc/components/CodeWalkthrough/variables");
51
+ const variables_47 = require("../../components/SkipContent/variables");
52
+ const variables_48 = require("../../components/PageActions/variables");
53
+ const variables_49 = require("../../components/SvgViewer/variables");
54
+ const variables_50 = require("../../components/Toast/variables");
55
+ const variables_51 = require("../../components/PageNavigation/variables");
56
+ const variables_52 = require("../../components/NavigationTabs/variables");
56
57
  const utils_1 = require("../../core/utils");
57
58
  const palette_1 = require("./palette");
58
59
  const dark_1 = require("./dark");
@@ -1272,50 +1273,51 @@ const replay = (0, styled_components_1.css) `
1272
1273
  exports.tokens = (0, styled_components_1.css) `
1273
1274
  ${variables_13.accordion}
1274
1275
  ${variables_18.admonition}
1276
+ ${variables_19.missingTranslationNotice}
1275
1277
  ${apiReferenceDocs}
1276
1278
  ${variables_12.apiReferencePanels}
1277
1279
  ${badges}
1278
- ${variables_28.banner}
1280
+ ${variables_29.banner}
1279
1281
  ${borders}
1280
- ${variables_29.consent}
1282
+ ${variables_30.consent}
1281
1283
  ${variables_5.breadcrumbs}
1282
- ${variables_20.button}
1283
- ${variables_21.aiAssistantButton}
1284
- ${variables_21.connectMcpButton}
1285
- ${variables_43.cards}
1286
- ${variables_44.promptTag}
1284
+ ${variables_21.button}
1285
+ ${variables_22.aiAssistantButton}
1286
+ ${variables_22.connectMcpButton}
1287
+ ${variables_44.cards}
1288
+ ${variables_45.promptTag}
1287
1289
  ${variables_8.catalog}
1288
1290
  ${variables_11.catalogClassic}
1289
- ${variables_25.code}
1290
- ${variables_45.codeWalkthrough}
1291
+ ${variables_26.code}
1292
+ ${variables_46.codeWalkthrough}
1291
1293
  ${docsDropdown}
1292
1294
  ${variables_15.dropdown}
1293
1295
  ${error}
1294
1296
  ${variables_10.filter}
1295
- ${variables_19.footer}
1297
+ ${variables_20.footer}
1296
1298
  ${headingsTypography}
1297
- ${variables_39.httpTag}
1299
+ ${variables_40.httpTag}
1298
1300
  ${variables_9.image}
1299
1301
  ${inputs}
1300
1302
  ${variables_1.languagePicker}
1301
- ${variables_34.lastUpdated}
1303
+ ${variables_35.lastUpdated}
1302
1304
  ${links}
1303
1305
  ${loadProgressBar}
1304
- ${variables_35.logo}
1305
- ${variables_27.markdown}
1306
- ${variables_30.markdownAccordion}
1307
- ${variables_31.markdownTabs}
1308
- ${variables_32.markdownNumberedList}
1309
- ${variables_33.diagram}
1310
- ${variables_24.menu}
1311
- ${variables_24.mobileMenu}
1306
+ ${variables_36.logo}
1307
+ ${variables_28.markdown}
1308
+ ${variables_31.markdownAccordion}
1309
+ ${variables_32.markdownTabs}
1310
+ ${variables_33.markdownNumberedList}
1311
+ ${variables_34.diagram}
1312
+ ${variables_25.menu}
1313
+ ${variables_25.mobileMenu}
1312
1314
  ${modal}
1313
- ${variables_22.navbar}
1315
+ ${variables_23.navbar}
1314
1316
  ${pages}
1315
- ${variables_26.productPicker}
1317
+ ${variables_27.productPicker}
1316
1318
  ${variables_12.responsePanelColors}
1317
- ${variables_23.search}
1318
- ${variables_51.navigationTabs}
1319
+ ${variables_24.search}
1320
+ ${variables_52.navigationTabs}
1319
1321
  ${variables_14.select}
1320
1322
  ${variables_4.sidebar}
1321
1323
  ${sizeAndSpace}
@@ -1326,26 +1328,26 @@ exports.tokens = (0, styled_components_1.css) `
1326
1328
  ${variables_7.toc}
1327
1329
  ${variables_16.tooltip}
1328
1330
  ${typography}
1329
- ${variables_38.userMenu}
1330
- ${variables_40.versionPicker}
1331
+ ${variables_39.userMenu}
1332
+ ${variables_41.versionPicker}
1331
1333
  ${zIndexDepth}
1332
1334
  ${scorecardColors}
1333
- ${variables_36.statusCode}
1335
+ ${variables_37.statusCode}
1334
1336
  ${tab}
1335
1337
  ${icon}
1336
1338
  ${tree}
1337
- ${variables_37.segmented}
1338
- ${variables_42.switcher}
1339
+ ${variables_38.segmented}
1340
+ ${variables_43.switcher}
1339
1341
  ${variables_17.checkbox}
1340
1342
  ${variables_3.feedback}
1341
1343
  ${variables_2.scorecard}
1342
- ${variables_41.datePicker}
1344
+ ${variables_42.datePicker}
1343
1345
  ${replay}
1344
- ${variables_46.skipContent}
1345
- ${variables_47.pageActions}
1346
- ${variables_48.svgViewer}
1347
- ${variables_49.toast}
1348
- ${variables_50.pageNavigation}
1346
+ ${variables_47.skipContent}
1347
+ ${variables_48.pageActions}
1348
+ ${variables_49.svgViewer}
1349
+ ${variables_50.toast}
1350
+ ${variables_51.pageNavigation}
1349
1351
 
1350
1352
  `;
1351
1353
  exports.styles = (0, styled_components_1.css) `
@@ -11,7 +11,7 @@ import type { ItemState, DrilldownMenuItemDetails } from './sidebar';
11
11
  import type { NavigationTabsState } from './navigation-tabs';
12
12
  import type { SearchItemData, SearchFacet, SearchFilterItem, SearchFacetQuery, AiSearchConversationItem, ContentSegment, ToolCall } from './search';
13
13
  import type { SubmitFeedbackParams } from './feedback';
14
- import type { TFunction } from './l10n';
14
+ import type { Locale, TFunction } from './l10n';
15
15
  import type { BreadcrumbItem } from './breadcrumb';
16
16
  import type { UseConsentResult } from './consent';
17
17
  import type { AiSearchError } from '../constants/search';
@@ -185,8 +185,5 @@ export type ThemeHooks = {
185
185
  export type L10nConfig = {
186
186
  currentLocale: string;
187
187
  defaultLocale: string;
188
- locales: {
189
- code: string;
190
- name: string;
191
- }[];
188
+ locales: Locale[];
192
189
  };
@@ -1,8 +1,9 @@
1
1
  import type { TOptions } from 'i18next';
2
- export type TranslationKey = 'dev.newApp' | 'dev.newApp.text' | 'dev.sidebar.header' | 'dev.sidebar.footer.text' | 'dev.create.app.dialog.appName.placeholder' | 'dev.create.app.dialog.appName.error' | 'dev.create.app.dialog.selectAPIs' | 'dev.create.app.dialog.description' | 'dev.create.app.dialog.description.placeholder' | 'dev.create.app.dialog.create' | 'dev.create.app.dialog.cancel' | 'dev.main.tab.appKeys' | 'dev.main.tab.logs' | 'dev.app.description.title' | 'dev.edit.description.dialog.title' | 'dev.edit.description.dialog.save' | 'dev.edit.description.dialog.cancel' | 'dev.create.app.dialog.callbackUrls' | 'dev.create.app.dialog.callbackUrls.placeholder' | 'dev.create.app.dialog.callbackUrls.hint' | 'dev.app.callbackUrls.title' | 'dev.edit.callbackUrls.dialog.title' | 'dev.edit.callbackUrls.dialog.placeholder' | 'dev.edit.callbackUrls.dialog.hint' | 'dev.edit.callbackUrls.dialog.save' | 'dev.edit.callbackUrls.dialog.cancel' | 'dev.edit.apis.dialog.selectedAPIs' | 'dev.app.key.create' | 'dev.create.key.dialog.title' | 'dev.create.key.dialog.create' | 'dev.create.key.dialog.cancel' | 'dev.app.edit' | 'dev.app.delete' | 'dev.edit.app.dialog.title' | 'dev.edit.app.dialog.save' | 'dev.edit.app.dialog.cancel' | 'dev.delete.app.dialog.title' | 'dev.delete.app.dialog.confirmation' | 'dev.delete.app.dialog.delete' | 'dev.delete.app.dialog.cancel' | 'dev.app.key.roll' | 'dev.roll.key.dialog.title' | 'dev.roll.key.dialog.apiKey' | 'dev.roll.key.dialog.expires' | 'dev.roll.key.dialog.confirmation' | 'dev.roll.key.dialog.cancel' | 'dev.roll.key.dialog.roll' | 'dev.update.key.dialog.title' | 'dev.update.key.dialog.update' | 'dev.update.key.dialog.cancel' | 'dev.app.key.api.name' | 'dev.app.key.api.status' | 'dev.app.key.api.edit' | 'dev.edit.apis.dialog.title' | 'dev.edit.apis.dialog.apiKey' | 'dev.edit.apis.dialog.save' | 'dev.edit.apis.dialog.cancel' | 'dev.select.placeholder' | 'dev.app.overview.status.pending' | 'dev.app.overview.status.approved' | 'dev.app.overview.status.revoked' | 'dev.app.overview.status' | 'dev.app.overview.non-production' | 'dev.app.overview.production' | 'dev.app.overview.clientId' | 'dev.app.overview.apiKey' | 'dev.app.key.revoke' | 'dev.revoke.key.dialog.title' | 'dev.revoke.key.dialog.apiKey' | 'dev.revoke.key.dialog.expires' | 'dev.revoke.key.dialog.confirmation' | 'dev.revoke.key.dialog.revoke' | 'dev.revoke.key.dialog.cancel' | 'dev.app.overview.expires' | 'dev.app.overview.created' | 'dev.app.overview.visibilityToggle.hide' | 'dev.app.overview.visibilityToggle.show' | 'search.loading' | 'search.noResults.title' | 'search.keys.navigate' | 'search.keys.select' | 'search.keys.exit' | 'search.label' | 'search.cancel' | 'search.recent' | 'search.navbar.label' | 'search.suggested' | 'search.showMore' | 'search.error.title' | 'search.error.button' | 'search.filter.title' | 'search.filter.reset' | 'search.filter.field.reset' | 'search.ai.welcomeText' | 'search.ai.newConversation' | 'search.ai.backToSearch' | 'search.ai.back' | 'search.ai.assistant' | 'search.ai.placeholder' | 'search.ai.generatingResponse' | 'search.ai.followUpQuestion' | 'search.ai.send' | 'search.ai.suggestionsTitle' | 'search.ai.thinkingText' | 'search.ai.resourcesFound' | 'search.ai.resourcesFound.basedOn' | 'search.ai.resourcesFound.resources' | 'search.ai.feedback.title' | 'search.ai.feedback.detailsPlaceholder' | 'search.ai.feedback.thanks' | 'search.ai.toolCall.executed' | 'search.ai.toolCall.executing' | 'search.ai.toolCall.usedTools' | 'search.ai.button' | 'search.ai.label' | 'search.ai.disclaimer' | 'search.ai.error.description' | 'search.ai.error.description.forbidden' | 'search.ai.error.description.unauthorized' | 'search.ai.error.header' | 'search.ai.error.header.forbidden' | 'search.ai.error.header.unauthorized' | 'search.ai.feedback.more' | 'search.ai.actions.copy' | 'search.ai.actions.like' | 'search.ai.actions.dislike' | 'search.searchItem.deprecated' | 'search.searchItem.enum' | 'search.searchItem.example' | 'search.groups.all' | 'search.filter.field.footer' | 'aiAssistant.trigger' | 'toc.header' | 'footer.copyrightText' | 'page.homeButton' | 'page.forbidden.title' | 'page.forbidden.description' | 'page.notFound.title' | 'page.notFound.description' | 'page.apiNotFound.title' | 'page.apiNotFound.description' | 'page.apiNotFound.hint' | 'page.apiNotFound.backButton' | 'page.mcpNotAllowed.title' | 'page.mcpNotAllowed.description' | 'page.mcpNotAllowed.publicNote' | 'page.mcpNotAllowed.publicEndpointHint' | 'page.mcpNotAllowed.mainEndpointHint' | 'page.mcpNotAllowed.snippets.terminal.hint' | 'page.mcpNotAllowed.snippets.claudeCode.headline' | 'page.mcpNotAllowed.snippets.claudeDesktop.headline' | 'page.mcpNotAllowed.snippets.claudeDesktop.accountHint' | 'page.mcpNotAllowed.snippets.claudeDesktop.instruction' | 'page.mcpNotAllowed.snippets.chatgptApp.headline' | 'page.mcpNotAllowed.snippets.chatgptApp.instruction' | 'page.mcpNotAllowed.snippets.codexCli.headline' | 'page.mcpNotAllowed.snippets.prompt.headline' | 'page.mcpNotAllowed.snippets.prompt.hint' | 'page.mcpNotAllowed.snippets.json.hint' | 'page.mcpNotAllowed.tabs.claude' | 'page.mcpNotAllowed.tabs.chatgpt' | 'page.mcpNotAllowed.tabs.json' | 'page.lastUpdated.timeago' | 'page.lastUpdated.on' | 'catalog.filters.placeholder' | 'catalog.filters.title' | 'catalog.filters.add' | 'catalog.filters.clearAll' | 'catalog.filters.select.addFilter' | 'catalog.filters.select.all' | 'catalog.filters.done' | 'catalog.catalogs.all.title' | 'catalog.catalogs.all.description' | 'catalog.catalogs.all.switcherLabel' | 'catalog.catalogs.service.title' | 'catalog.catalogs.service.description' | 'catalog.catalogs.service.switcherLabel' | 'catalog.catalogs.user.title' | 'catalog.catalogs.user.description' | 'catalog.catalogs.user.switcherLabel' | 'catalog.catalogs.team.title' | 'catalog.catalogs.team.description' | 'catalog.catalogs.team.switcherLabel' | 'catalog.catalogs.domain.title' | 'catalog.catalogs.domain.description' | 'catalog.catalogs.domain.switcherLabel' | 'catalog.catalogs.apiDescription.title' | 'catalog.catalogs.apiDescription.description' | 'catalog.catalogs.apiDescription.switcherLabel' | 'catalog.catalogs.dataSchema.title' | 'catalog.catalogs.dataSchema.description' | 'catalog.catalogs.dataSchema.switcherLabel' | 'catalog.catalogs.apiOperation.title' | 'catalog.catalogs.apiOperation.description' | 'catalog.catalogs.apiOperation.switcherLabel' | 'catalog.entity.metadata.title' | 'catalog.entity.schema.title' | 'catalog.entity.properties.apiDescription.title' | 'catalog.backToAllLabel' | 'catalog.notConnected' | 'catalog.tags.label' | 'catalog.sort' | 'catalog.catalogs.label' | 'catalog.owners.label' | 'catalog.repositories.label' | 'catalog.email.label' | 'catalog.format.label' | 'catalog.entityType.label' | 'catalog.domains.label' | 'catalog.contact.label' | 'catalog.methodAndPath.label' | 'catalog.links.label' | 'catalog.metadata.domains' | 'catalog.metadata.owners' | 'catalog.history.button.label' | 'catalog.history.sidebar.title' | 'catalog.history.sidebar.close' | 'catalog.history.version.label' | 'catalog.filters.close' | 'catalog.history.version.notSpecified' | 'catalog.history.version.default' | 'catalog.history.revisions.limitMessage' | 'catalog.history.revision.current' | 'catalog.history.revisions.showLess' | 'catalog.history.revisions.showMore' | 'navigationTabs.label' | 'sidebar.menu.backLabel' | 'sidebar.menu.backToLabel' | 'sidebar.actions.show' | 'sidebar.actions.hide' | 'sidebar.actions.changeToSingleColumn' | 'sidebar.actions.changeToTwoColumns' | 'sidebar.actions.singleColumn' | 'sidebar.actions.twoColumns' | 'versionPicker.label' | 'versionPicker.unversioned' | 'codeSnippet.copy.buttonText' | 'codeSnippet.copy.tooltipText' | 'codeSnippet.copy.toasterText' | 'markdown.editPage.text' | 'feedback.settings.comment.submitText' | 'feedback.settings.comment.label' | 'feedback.settings.comment.send' | 'feedback.settings.comment.cancel' | 'feedback.settings.comment.maxLength' | 'feedback.settings.comment.satisfiedLabel' | 'feedback.settings.comment.neutralLabel' | 'feedback.settings.comment.dissatisfiedLabel' | 'feedback.settings.submitText' | 'feedback.settings.label' | 'feedback.settings.reasons.label' | 'feedback.submit' | 'feedback.cancel' | 'feedback.settings.comment.likeLabel' | 'feedback.settings.comment.dislikeLabel' | 'feedback.sentiment.thumbUp' | 'feedback.sentiment.thumbDown' | 'feedback.settings.leftScaleLabel' | 'feedback.settings.rightScaleLabel' | 'feedback.settings.optionalEmail.placeholder' | 'feedback.settings.optionalEmail.label' | 'codeSnippet.report.buttonText' | 'codeSnippet.report.tooltipText' | 'codeSnippet.report.label' | 'codeSnippet.expand.tooltipText' | 'codeSnippet.collapse.tooltipText' | 'jsonViewer.showMore' | 'jsonViewer.showLess' | 'userMenu.login' | 'userMenu.logout' | 'userMenu.devOnboardingLabel' | 'mobileMenu.mainMenu' | 'mobileMenu.previous' | 'mobileMenu.products' | 'mobileMenu.version' | 'navbar.label' | 'navbar.products' | 'page.nextButton' | 'page.previousButton' | 'page.actions.copyButtonText' | 'page.actions.copyTitle' | 'page.actions.copyDescription' | 'page.actions.viewAsMdTitle' | 'page.actions.viewAsMdButtonText' | 'page.actions.viewAsMdDescription' | 'page.actions.chatGptTitle' | 'page.actions.chatGptButtonText' | 'page.actions.chatGptDescription' | 'page.actions.claudeTitle' | 'page.actions.claudeButtonText' | 'page.actions.claudeDescription' | 'page.actions.cursorMcpButtonText' | 'page.actions.cursorMcpTitle' | 'page.actions.cursorMcpDescription' | 'page.actions.connectMcp' | 'page.actions.connectMcp.cursor' | 'page.actions.connectMcp.cursorDescription' | 'page.actions.connectMcp.vscode' | 'page.actions.connectMcp.vscodeDescription' | 'page.actions.connectMcp.claude' | 'page.actions.connectMcp.claudeDescription' | 'page.actions.connectMcp.claudeCode' | 'page.actions.connectMcp.claudeCodeDescription' | 'page.actions.connectMcp.codex' | 'page.actions.connectMcp.codexDescription' | 'page.actions.connectMcp.copyConfig' | 'page.actions.connectMcp.copyConfigDescription' | 'page.actions.connectMcp.moreOptions' | 'page.actions.moreActions' | 'promptTag.copy.buttonText' | 'promptTag.showPrompt' | 'promptTag.hidePrompt' | 'promptTag.showFullPrompt' | 'promptTag.showLess' | 'promptTag.openIn.cursor' | 'promptTag.openIn.cursorDescription' | 'promptTag.openIn.claude' | 'promptTag.openIn.claudeDescription' | 'promptTag.openIn.chatgpt' | 'promptTag.openIn.chatgptDescription' | 'openapi.download.description.title' | 'openapi.info.title' | 'openapi.info.contact.url' | 'openapi.info.contact.name' | 'openapi.info.license' | 'openapi.info.termsOfService' | 'openapi.info.metadata.title' | 'graphql.info.metadata.title' | 'openapi.key' | 'openapi.value' | 'openapi.enum' | 'openapi.items' | 'openapi.default' | 'openapi.variable' | 'openapi.variables' | 'openapi.actions.show' | 'openapi.actions.hide' | 'openapi.actions.more' | 'openapi.languages.title' | 'openapi.languages.moreButton.tooltipText' | 'openapi.servers.title' | 'openapi.operations' | 'openapi.schemas' | 'openapi.webhooks' | 'openapi.description' | 'openapi.badges.deprecated' | 'openapi.badges.required' | 'openapi.badges.webhook' | 'openapi.request' | 'openapi.path' | 'openapi.query' | 'openapi.querystring' | 'openapi.cookie' | 'openapi.header' | 'openapi.body' | 'openapi.responses' | 'openapi.response' | 'openapi.callbacks' | 'openapi.callbackRequest' | 'openapi.callbackResponse' | 'openapi.payload' | 'openapi.discriminator' | 'openapi.contentType' | 'openapi.tryIt' | 'openapi.loading' | 'openapi.example' | 'openapi.examples' | 'openapi.additionalProperties' | 'openapi.patternProperties' | 'openapi.required' | 'openapi.recursive' | 'openapi.complex' | 'openapi.property' | 'openapi.properties' | 'openapi.details' | 'openapi.hideExample' | 'openapi.showExample' | 'openapi.expandAll' | 'openapi.deepLink.tooltip' | 'openapi.collapseAll' | 'openapi.viewSecurityDetails' | 'openapi.noResponseExample' | 'openapi.discriminator.searchPlaceholder' | 'openapi.discriminator.searchNoResults' | 'openapi.discriminator.defaultMapping' | 'openapi.discriminator.defaultMappingTooltip' | 'openapi.noResponseContent' | 'openapi.noRequestPayload' | 'openapi.noRequestData' | 'openapi.hidePattern' | 'openapi.showPattern' | 'openapi.authorizationUrl' | 'openapi.tokenUrl' | 'openapi.refreshUrl' | 'openapi.showOptionalScopes' | 'openapi.hideOptionalScopes' | 'openapi.security' | 'openapi.httpAuthorizationScheme' | 'openapi.bearerFormat' | 'openapi.parameterName' | 'openapi.flowType' | 'openapi.connectUrl' | 'openapi.requiredScopes' | 'openapi.unsupportedLanguage' | 'openapi.failedToGenerateCodeSample' | 'openapi.schemaCatalogLink.title' | 'openapi.schemaCatalogLink.copyButtonTooltip' | 'openapi.schemaCatalogLink.copiedTooltip' | 'openapi.mcp.title' | 'openapi.mcp.endpoint' | 'openapi.mcp.tools' | 'openapi.mcp.protocolVersion' | 'openapi.mcp.capabilities' | 'openapi.mcp.experimentalCapabilities' | 'openapi.mcp.inputSchema' | 'openapi.mcp.inputExample' | 'openapi.mcp.outputSchema' | 'openapi.mcp.outputExample' | 'openapi.mcp.exampleTitle' | 'openapi.mcp.argumentsExample' | 'asyncapi.download.description.title' | 'asyncapi.info.title' | 'asyncapi.info.contact.url' | 'asyncapi.info.contact.name' | 'asyncapi.info.license' | 'asyncapi.info.termsOfService' | 'asyncapi.key' | 'asyncapi.value' | 'asyncapi.variables' | 'asyncapi.required' | 'asyncapi.requiredScopes' | 'asyncapi.viewSecurityDetails' | 'graphql.download.description.title' | 'graphql.info.title' | 'graphql.info.contact.url' | 'graphql.info.contact.name' | 'graphql.info.license' | 'graphql.info.termsOfService' | 'graphql.overview' | 'graphql.metadata' | 'graphql.key' | 'graphql.value' | 'graphql.queries' | 'graphql.mutations' | 'graphql.subscriptions' | 'graphql.directives' | 'graphql.objects' | 'graphql.interfaces' | 'graphql.unions' | 'graphql.enums' | 'graphql.inputs' | 'graphql.scalars' | 'graphql.actions.show' | 'graphql.actions.hide' | 'graphql.actions.more' | 'graphql.fields' | 'graphql.inputFields' | 'graphql.values' | 'graphql.arguments.label' | 'graphql.arguments.show' | 'graphql.arguments.hide' | 'graphql.arguments.here' | 'graphql.returnTypes.label' | 'graphql.returnTypes.show' | 'graphql.returnTypes.hide' | 'graphql.possibleTypes' | 'graphql.defaultValue' | 'graphql.deprecationReason' | 'graphql.requiredScopes' | 'graphql.viewSecurityDetails' | 'graphql.objectScopes' | 'graphql.fieldScopes' | 'graphql.implementedInterfaces' | 'graphql.implementedBy' | 'graphql.nonNull' | 'graphql.required' | 'asyncapi.badges.deprecated' | 'graphql.badges.deprecated' | 'asyncapi.actions.show' | 'asyncapi.actions.hide' | 'asyncapi.actions.more' | 'asyncapi.payload' | 'asyncapi.parameters' | 'asyncapi.messages' | 'asyncapi.contentType' | 'asyncapi.moreDetails' | 'asyncapi.property' | 'asyncapi.properties' | 'asyncapi.details' | 'asyncapi.reply' | 'asyncapi.servers.title' | 'graphql.variables' | 'graphql.querySample' | 'graphql.mutationSample' | 'graphql.subscriptionSample' | 'graphql.responseSample' | 'graphql.locations' | 'graphql.sample' | 'graphql.referenced' | 'graphql.content.fragment' | 'graphql.tryIt' | 'graphql.loading' | 'button.download.tooltipText' | 'button.externalLink.tooltipText' | 'button.email.tooltipText' | 'codeWalkthrough.download' | 'codeWalkthrough.preview' | 'time.justNow' | 'time.past.second' | 'time.past.seconds' | 'time.past.minute' | 'time.past.minutes' | 'time.past.hour' | 'time.past.hours' | 'time.past.day' | 'time.past.days' | 'time.past.week' | 'time.past.weeks' | 'time.past.month' | 'time.past.months' | 'time.past.year' | 'time.past.years' | 'page.internalServerError.title' | 'page.internalServerError.description' | 'page.skipToContent.label' | 'select.noResults' | 'loaders.loading' | 'filter.dateRange.from' | 'filter.dateRange.to' | 'diagram.openFullscreen' | 'diagram.zoomIn' | 'diagram.zoomOut' | 'diagram.reset' | 'diagram.close' | 'diagram.viewer' | 'consent.title' | 'consent.message' | 'consent.privacyPolicy' | 'consent.customize' | 'consent.rejectAll' | 'consent.acceptAll' | 'consent.acceptAllCookies' | 'consent.savePreferences' | 'consent.dialog.title' | 'consent.dialog.description' | 'consent.dialog.close' | 'consent.alwaysOn' | 'consent.alwaysOff' | 'consent.gpcNotice' | 'consent.category.necessary.title' | 'consent.category.necessary.description' | 'consent.category.analytics.title' | 'consent.category.analytics.description' | 'consent.category.marketing.title' | 'consent.category.marketing.description' | 'consent.settingsLink';
2
+ export type TranslationKey = 'dev.newApp' | 'dev.newApp.text' | 'dev.sidebar.header' | 'dev.sidebar.footer.text' | 'dev.create.app.dialog.appName.placeholder' | 'dev.create.app.dialog.appName.error' | 'dev.create.app.dialog.selectAPIs' | 'dev.create.app.dialog.description' | 'dev.create.app.dialog.description.placeholder' | 'dev.create.app.dialog.create' | 'dev.create.app.dialog.cancel' | 'dev.main.tab.appKeys' | 'dev.main.tab.logs' | 'dev.app.description.title' | 'dev.edit.description.dialog.title' | 'dev.edit.description.dialog.save' | 'dev.edit.description.dialog.cancel' | 'dev.create.app.dialog.callbackUrls' | 'dev.create.app.dialog.callbackUrls.placeholder' | 'dev.create.app.dialog.callbackUrls.hint' | 'dev.app.callbackUrls.title' | 'dev.edit.callbackUrls.dialog.title' | 'dev.edit.callbackUrls.dialog.placeholder' | 'dev.edit.callbackUrls.dialog.hint' | 'dev.edit.callbackUrls.dialog.save' | 'dev.edit.callbackUrls.dialog.cancel' | 'dev.edit.apis.dialog.selectedAPIs' | 'dev.app.key.create' | 'dev.create.key.dialog.title' | 'dev.create.key.dialog.create' | 'dev.create.key.dialog.cancel' | 'dev.app.edit' | 'dev.app.delete' | 'dev.edit.app.dialog.title' | 'dev.edit.app.dialog.save' | 'dev.edit.app.dialog.cancel' | 'dev.delete.app.dialog.title' | 'dev.delete.app.dialog.confirmation' | 'dev.delete.app.dialog.delete' | 'dev.delete.app.dialog.cancel' | 'dev.app.key.roll' | 'dev.roll.key.dialog.title' | 'dev.roll.key.dialog.apiKey' | 'dev.roll.key.dialog.expires' | 'dev.roll.key.dialog.confirmation' | 'dev.roll.key.dialog.cancel' | 'dev.roll.key.dialog.roll' | 'dev.update.key.dialog.title' | 'dev.update.key.dialog.update' | 'dev.update.key.dialog.cancel' | 'dev.app.key.api.name' | 'dev.app.key.api.status' | 'dev.app.key.api.edit' | 'dev.edit.apis.dialog.title' | 'dev.edit.apis.dialog.apiKey' | 'dev.edit.apis.dialog.save' | 'dev.edit.apis.dialog.cancel' | 'dev.select.placeholder' | 'dev.app.overview.status.pending' | 'dev.app.overview.status.approved' | 'dev.app.overview.status.revoked' | 'dev.app.overview.status' | 'dev.app.overview.non-production' | 'dev.app.overview.production' | 'dev.app.overview.clientId' | 'dev.app.overview.apiKey' | 'dev.app.key.revoke' | 'dev.revoke.key.dialog.title' | 'dev.revoke.key.dialog.apiKey' | 'dev.revoke.key.dialog.expires' | 'dev.revoke.key.dialog.confirmation' | 'dev.revoke.key.dialog.revoke' | 'dev.revoke.key.dialog.cancel' | 'dev.app.overview.expires' | 'dev.app.overview.created' | 'dev.app.overview.visibilityToggle.hide' | 'dev.app.overview.visibilityToggle.show' | 'search.loading' | 'search.noResults.title' | 'search.keys.navigate' | 'search.keys.select' | 'search.keys.exit' | 'search.label' | 'search.cancel' | 'search.recent' | 'search.navbar.label' | 'search.suggested' | 'search.showMore' | 'search.error.title' | 'search.error.button' | 'search.filter.title' | 'search.filter.reset' | 'search.filter.field.reset' | 'search.ai.welcomeText' | 'search.ai.newConversation' | 'search.ai.backToSearch' | 'search.ai.back' | 'search.ai.assistant' | 'search.ai.placeholder' | 'search.ai.generatingResponse' | 'search.ai.followUpQuestion' | 'search.ai.send' | 'search.ai.suggestionsTitle' | 'search.ai.thinkingText' | 'search.ai.resourcesFound' | 'search.ai.resourcesFound.basedOn' | 'search.ai.resourcesFound.resources' | 'search.ai.feedback.title' | 'search.ai.feedback.detailsPlaceholder' | 'search.ai.feedback.thanks' | 'search.ai.toolCall.executed' | 'search.ai.toolCall.executing' | 'search.ai.toolCall.usedTools' | 'search.ai.button' | 'search.ai.label' | 'search.ai.disclaimer' | 'search.ai.error.description' | 'search.ai.error.description.forbidden' | 'search.ai.error.description.unauthorized' | 'search.ai.error.header' | 'search.ai.error.header.forbidden' | 'search.ai.error.header.unauthorized' | 'search.ai.feedback.more' | 'search.ai.actions.copy' | 'search.ai.actions.like' | 'search.ai.actions.dislike' | 'search.searchItem.deprecated' | 'search.searchItem.enum' | 'search.searchItem.example' | 'search.groups.all' | 'search.filter.field.footer' | 'aiAssistant.trigger' | 'toc.header' | 'footer.copyrightText' | 'page.homeButton' | 'page.forbidden.title' | 'page.forbidden.description' | 'page.notFound.title' | 'page.notFound.description' | 'page.apiNotFound.title' | 'page.apiNotFound.description' | 'page.apiNotFound.hint' | 'page.apiNotFound.backButton' | 'page.mcpNotAllowed.title' | 'page.mcpNotAllowed.description' | 'page.mcpNotAllowed.publicNote' | 'page.mcpNotAllowed.publicEndpointHint' | 'page.mcpNotAllowed.mainEndpointHint' | 'page.mcpNotAllowed.snippets.terminal.hint' | 'page.mcpNotAllowed.snippets.claudeCode.headline' | 'page.mcpNotAllowed.snippets.claudeDesktop.headline' | 'page.mcpNotAllowed.snippets.claudeDesktop.accountHint' | 'page.mcpNotAllowed.snippets.claudeDesktop.instruction' | 'page.mcpNotAllowed.snippets.chatgptApp.headline' | 'page.mcpNotAllowed.snippets.chatgptApp.instruction' | 'page.mcpNotAllowed.snippets.codexCli.headline' | 'page.mcpNotAllowed.snippets.grokBuild.headline' | 'page.mcpNotAllowed.snippets.grokApp.headline' | 'page.mcpNotAllowed.snippets.grokApp.instruction' | 'page.mcpNotAllowed.snippets.grokApp.openConnectors' | 'page.mcpNotAllowed.snippets.prompt.headline' | 'page.mcpNotAllowed.snippets.prompt.hint' | 'page.mcpNotAllowed.snippets.json.hint' | 'page.mcpNotAllowed.tabs.claude' | 'page.mcpNotAllowed.tabs.chatgpt' | 'page.mcpNotAllowed.tabs.grok' | 'page.mcpNotAllowed.tabs.json' | 'page.lastUpdated.timeago' | 'page.lastUpdated.on' | 'catalog.filters.placeholder' | 'catalog.filters.title' | 'catalog.filters.add' | 'catalog.filters.clearAll' | 'catalog.filters.select.addFilter' | 'catalog.filters.select.all' | 'catalog.filters.done' | 'catalog.catalogs.all.title' | 'catalog.catalogs.all.description' | 'catalog.catalogs.all.switcherLabel' | 'catalog.catalogs.service.title' | 'catalog.catalogs.service.description' | 'catalog.catalogs.service.switcherLabel' | 'catalog.catalogs.user.title' | 'catalog.catalogs.user.description' | 'catalog.catalogs.user.switcherLabel' | 'catalog.catalogs.team.title' | 'catalog.catalogs.team.description' | 'catalog.catalogs.team.switcherLabel' | 'catalog.catalogs.domain.title' | 'catalog.catalogs.domain.description' | 'catalog.catalogs.domain.switcherLabel' | 'catalog.catalogs.apiDescription.title' | 'catalog.catalogs.apiDescription.description' | 'catalog.catalogs.apiDescription.switcherLabel' | 'catalog.catalogs.dataSchema.title' | 'catalog.catalogs.dataSchema.description' | 'catalog.catalogs.dataSchema.switcherLabel' | 'catalog.catalogs.apiOperation.title' | 'catalog.catalogs.apiOperation.description' | 'catalog.catalogs.apiOperation.switcherLabel' | 'catalog.entity.metadata.title' | 'catalog.entity.schema.title' | 'catalog.entity.properties.apiDescription.title' | 'catalog.backToAllLabel' | 'catalog.notConnected' | 'catalog.tags.label' | 'catalog.sort' | 'catalog.catalogs.label' | 'catalog.owners.label' | 'catalog.repositories.label' | 'catalog.email.label' | 'catalog.format.label' | 'catalog.entityType.label' | 'catalog.domains.label' | 'catalog.contact.label' | 'catalog.methodAndPath.label' | 'catalog.links.label' | 'catalog.metadata.domains' | 'catalog.metadata.owners' | 'catalog.history.button.label' | 'catalog.history.sidebar.title' | 'catalog.history.sidebar.close' | 'catalog.history.version.label' | 'catalog.filters.close' | 'catalog.history.version.notSpecified' | 'catalog.history.version.default' | 'catalog.history.revisions.limitMessage' | 'catalog.history.revision.current' | 'catalog.history.revisions.showLess' | 'catalog.history.revisions.showMore' | 'navigationTabs.label' | 'sidebar.menu.backLabel' | 'sidebar.menu.backToLabel' | 'sidebar.actions.show' | 'sidebar.actions.hide' | 'sidebar.actions.changeToSingleColumn' | 'sidebar.actions.changeToTwoColumns' | 'sidebar.actions.singleColumn' | 'sidebar.actions.twoColumns' | 'versionPicker.label' | 'versionPicker.unversioned' | 'codeSnippet.copy.buttonText' | 'codeSnippet.copy.tooltipText' | 'codeSnippet.copy.toasterText' | 'markdown.editPage.text' | 'feedback.settings.comment.submitText' | 'feedback.settings.comment.label' | 'feedback.settings.comment.send' | 'feedback.settings.comment.cancel' | 'feedback.settings.comment.maxLength' | 'feedback.settings.comment.satisfiedLabel' | 'feedback.settings.comment.neutralLabel' | 'feedback.settings.comment.dissatisfiedLabel' | 'feedback.settings.submitText' | 'feedback.settings.label' | 'feedback.settings.reasons.label' | 'feedback.submit' | 'feedback.cancel' | 'feedback.settings.comment.likeLabel' | 'feedback.settings.comment.dislikeLabel' | 'feedback.sentiment.thumbUp' | 'feedback.sentiment.thumbDown' | 'feedback.settings.leftScaleLabel' | 'feedback.settings.rightScaleLabel' | 'feedback.settings.optionalEmail.placeholder' | 'feedback.settings.optionalEmail.label' | 'codeSnippet.report.buttonText' | 'codeSnippet.report.tooltipText' | 'codeSnippet.report.label' | 'codeSnippet.expand.tooltipText' | 'codeSnippet.collapse.tooltipText' | 'jsonViewer.showMore' | 'jsonViewer.showLess' | 'userMenu.login' | 'userMenu.logout' | 'userMenu.devOnboardingLabel' | 'mobileMenu.mainMenu' | 'mobileMenu.previous' | 'mobileMenu.products' | 'mobileMenu.version' | 'navbar.label' | 'navbar.products' | 'page.nextButton' | 'page.previousButton' | 'page.actions.copyButtonText' | 'page.actions.copyTitle' | 'page.actions.copyDescription' | 'page.actions.viewAsMdTitle' | 'page.actions.viewAsMdButtonText' | 'page.actions.viewAsMdDescription' | 'page.actions.chatGptTitle' | 'page.actions.chatGptButtonText' | 'page.actions.chatGptDescription' | 'page.actions.claudeTitle' | 'page.actions.claudeButtonText' | 'page.actions.claudeDescription' | 'page.actions.grokTitle' | 'page.actions.grokButtonText' | 'page.actions.grokDescription' | 'page.actions.cursorMcpButtonText' | 'page.actions.cursorMcpTitle' | 'page.actions.cursorMcpDescription' | 'page.actions.connectMcp' | 'page.actions.connectMcp.cursor' | 'page.actions.connectMcp.cursorDescription' | 'page.actions.connectMcp.vscode' | 'page.actions.connectMcp.vscodeDescription' | 'page.actions.connectMcp.claude' | 'page.actions.connectMcp.claudeDescription' | 'page.actions.connectMcp.claudeCode' | 'page.actions.connectMcp.claudeCodeDescription' | 'page.actions.connectMcp.codex' | 'page.actions.connectMcp.codexDescription' | 'page.actions.connectMcp.copyConfig' | 'page.actions.connectMcp.copyConfigDescription' | 'page.actions.connectMcp.copyUrl' | 'page.actions.connectMcp.copyUrlDescription' | 'page.actions.connectMcp.moreOptions' | 'page.actions.moreActions' | 'promptTag.copy.buttonText' | 'promptTag.showPrompt' | 'promptTag.hidePrompt' | 'promptTag.showFullPrompt' | 'promptTag.showLess' | 'promptTag.openIn.cursor' | 'promptTag.openIn.cursorDescription' | 'promptTag.openIn.claude' | 'promptTag.openIn.claudeDescription' | 'promptTag.openIn.chatgpt' | 'promptTag.openIn.chatgptDescription' | 'openapi.download.description.title' | 'openapi.info.title' | 'openapi.info.contact.url' | 'openapi.info.contact.name' | 'openapi.info.license' | 'openapi.info.termsOfService' | 'openapi.info.metadata.title' | 'graphql.info.metadata.title' | 'openapi.key' | 'openapi.value' | 'openapi.enum' | 'openapi.items' | 'openapi.default' | 'openapi.variable' | 'openapi.variables' | 'openapi.actions.show' | 'openapi.actions.hide' | 'openapi.actions.more' | 'openapi.languages.title' | 'openapi.languages.moreButton.tooltipText' | 'openapi.servers.title' | 'openapi.operations' | 'openapi.schemas' | 'openapi.webhooks' | 'openapi.description' | 'openapi.badges.deprecated' | 'openapi.badges.required' | 'openapi.badges.webhook' | 'openapi.request' | 'openapi.path' | 'openapi.query' | 'openapi.querystring' | 'openapi.cookie' | 'openapi.header' | 'openapi.body' | 'openapi.responses' | 'openapi.response' | 'openapi.callbacks' | 'openapi.callbackRequest' | 'openapi.callbackResponse' | 'openapi.payload' | 'openapi.discriminator' | 'openapi.contentType' | 'openapi.tryIt' | 'openapi.loading' | 'openapi.example' | 'openapi.examples' | 'openapi.additionalProperties' | 'openapi.patternProperties' | 'openapi.required' | 'openapi.recursive' | 'openapi.complex' | 'openapi.property' | 'openapi.properties' | 'openapi.details' | 'openapi.hideExample' | 'openapi.showExample' | 'openapi.expandAll' | 'openapi.deepLink.tooltip' | 'openapi.collapseAll' | 'openapi.viewSecurityDetails' | 'openapi.noResponseExample' | 'openapi.discriminator.searchPlaceholder' | 'openapi.discriminator.searchNoResults' | 'openapi.discriminator.defaultMapping' | 'openapi.discriminator.defaultMappingTooltip' | 'openapi.noResponseContent' | 'openapi.noRequestPayload' | 'openapi.noRequestData' | 'openapi.hidePattern' | 'openapi.showPattern' | 'openapi.authorizationUrl' | 'openapi.tokenUrl' | 'openapi.refreshUrl' | 'openapi.showOptionalScopes' | 'openapi.hideOptionalScopes' | 'openapi.security' | 'openapi.httpAuthorizationScheme' | 'openapi.bearerFormat' | 'openapi.parameterName' | 'openapi.flowType' | 'openapi.connectUrl' | 'openapi.requiredScopes' | 'openapi.unsupportedLanguage' | 'openapi.failedToGenerateCodeSample' | 'openapi.schemaCatalogLink.title' | 'openapi.schemaCatalogLink.copyButtonTooltip' | 'openapi.schemaCatalogLink.copiedTooltip' | 'openapi.mcp.title' | 'openapi.mcp.endpoint' | 'openapi.mcp.tools' | 'openapi.mcp.protocolVersion' | 'openapi.mcp.capabilities' | 'openapi.mcp.experimentalCapabilities' | 'openapi.mcp.inputSchema' | 'openapi.mcp.inputExample' | 'openapi.mcp.outputSchema' | 'openapi.mcp.outputExample' | 'openapi.mcp.exampleTitle' | 'openapi.mcp.argumentsExample' | 'asyncapi.download.description.title' | 'asyncapi.info.title' | 'asyncapi.info.contact.url' | 'asyncapi.info.contact.name' | 'asyncapi.info.license' | 'asyncapi.info.termsOfService' | 'asyncapi.key' | 'asyncapi.value' | 'asyncapi.variables' | 'asyncapi.required' | 'asyncapi.requiredScopes' | 'asyncapi.viewSecurityDetails' | 'graphql.download.description.title' | 'graphql.info.title' | 'graphql.info.contact.url' | 'graphql.info.contact.name' | 'graphql.info.license' | 'graphql.info.termsOfService' | 'graphql.overview' | 'graphql.metadata' | 'graphql.key' | 'graphql.value' | 'graphql.queries' | 'graphql.mutations' | 'graphql.subscriptions' | 'graphql.directives' | 'graphql.objects' | 'graphql.interfaces' | 'graphql.unions' | 'graphql.enums' | 'graphql.inputs' | 'graphql.scalars' | 'graphql.actions.show' | 'graphql.actions.hide' | 'graphql.actions.more' | 'graphql.fields' | 'graphql.inputFields' | 'graphql.values' | 'graphql.arguments.label' | 'graphql.arguments.show' | 'graphql.arguments.hide' | 'graphql.arguments.here' | 'graphql.returnTypes.label' | 'graphql.returnTypes.show' | 'graphql.returnTypes.hide' | 'graphql.possibleTypes' | 'graphql.defaultValue' | 'graphql.deprecationReason' | 'graphql.requiredScopes' | 'graphql.viewSecurityDetails' | 'graphql.objectScopes' | 'graphql.fieldScopes' | 'graphql.implementedInterfaces' | 'graphql.implementedBy' | 'graphql.nonNull' | 'graphql.required' | 'asyncapi.badges.deprecated' | 'graphql.badges.deprecated' | 'asyncapi.actions.show' | 'asyncapi.actions.hide' | 'asyncapi.actions.more' | 'asyncapi.payload' | 'asyncapi.parameters' | 'asyncapi.messages' | 'asyncapi.contentType' | 'asyncapi.moreDetails' | 'asyncapi.property' | 'asyncapi.properties' | 'asyncapi.details' | 'asyncapi.reply' | 'asyncapi.servers.title' | 'graphql.variables' | 'graphql.querySample' | 'graphql.mutationSample' | 'graphql.subscriptionSample' | 'graphql.responseSample' | 'graphql.locations' | 'graphql.sample' | 'graphql.referenced' | 'graphql.content.fragment' | 'graphql.tryIt' | 'graphql.loading' | 'button.download.tooltipText' | 'button.externalLink.tooltipText' | 'button.email.tooltipText' | 'codeWalkthrough.download' | 'codeWalkthrough.preview' | 'time.justNow' | 'time.past.second' | 'time.past.seconds' | 'time.past.minute' | 'time.past.minutes' | 'time.past.hour' | 'time.past.hours' | 'time.past.day' | 'time.past.days' | 'time.past.week' | 'time.past.weeks' | 'time.past.month' | 'time.past.months' | 'time.past.year' | 'time.past.years' | 'page.internalServerError.title' | 'page.internalServerError.description' | 'page.skipToContent.label' | 'select.noResults' | 'loaders.loading' | 'filter.dateRange.from' | 'filter.dateRange.to' | 'diagram.openFullscreen' | 'diagram.zoomIn' | 'diagram.zoomOut' | 'diagram.reset' | 'diagram.close' | 'diagram.viewer' | 'consent.title' | 'consent.message' | 'consent.privacyPolicy' | 'consent.customize' | 'consent.rejectAll' | 'consent.acceptAll' | 'consent.acceptAllCookies' | 'consent.savePreferences' | 'consent.dialog.title' | 'consent.dialog.description' | 'consent.dialog.close' | 'consent.alwaysOn' | 'consent.alwaysOff' | 'consent.gpcNotice' | 'consent.category.necessary.title' | 'consent.category.necessary.description' | 'consent.category.analytics.title' | 'consent.category.analytics.description' | 'consent.category.marketing.title' | 'consent.category.marketing.description' | 'consent.settingsLink' | 'missingTranslationNotice.title' | 'missingTranslationNotice.content' | 'missingTranslationNotice.close';
3
3
  export type Locale = {
4
4
  code: string;
5
5
  name: string;
6
+ showMissingTranslationNotice?: boolean;
6
7
  };
7
8
  export type TFunction = (value?: TranslationKey | (string & {
8
9
  _?: never;
@@ -1,4 +1,5 @@
1
1
  import type { AiPromptTarget } from '../types/prompt';
2
+ type AiPromptLinkTarget = AiPromptTarget | 'grok';
2
3
  /**
3
4
  * Builds a link that opens an AI tool with the prompt prefilled.
4
5
  *
@@ -12,4 +13,5 @@ import type { AiPromptTarget } from '../types/prompt';
12
13
  * // 'https://claude.ai/new?q=Summarize+this+page'
13
14
  * ```
14
15
  */
15
- export declare function getAiPromptLink(target: AiPromptTarget, prompt: string): string;
16
+ export declare function getAiPromptLink(target: AiPromptLinkTarget, prompt: string): string;
17
+ export {};
@@ -4,6 +4,7 @@ exports.getAiPromptLink = getAiPromptLink;
4
4
  const AI_PROMPT_ENDPOINTS = {
5
5
  chatgpt: { baseUrl: 'https://chat.openai.com', queryParam: 'q' },
6
6
  claude: { baseUrl: 'https://claude.ai/new', queryParam: 'q' },
7
+ grok: { baseUrl: 'https://grok.com/', queryParam: 'q' },
7
8
  // Encoding: https://cursor.com/docs/integrations/deeplinks
8
9
  cursor: { baseUrl: 'https://cursor.com/link/prompt', queryParam: 'text' },
9
10
  };
@@ -3,5 +3,6 @@ export declare function isMCPOption(value: unknown): value is MCPOption;
3
3
  export declare function generateMCPDeepLink(clientType: MCPClientType, config: McpConnectionParams): string;
4
4
  export declare function slugifyMcpServerName(name: string): string;
5
5
  export declare function generateClaudeCodeCommand(config: McpConnectionParams): string;
6
+ export declare function generateGrokBuildCommand(config: McpConnectionParams): string;
6
7
  export declare function generateCodexCommand(config: McpConnectionParams): string;
7
8
  export declare function generateMcpInstallPrompt(config: McpConnectionParams): string;
@@ -4,6 +4,7 @@ exports.isMCPOption = isMCPOption;
4
4
  exports.generateMCPDeepLink = generateMCPDeepLink;
5
5
  exports.slugifyMcpServerName = slugifyMcpServerName;
6
6
  exports.generateClaudeCodeCommand = generateClaudeCodeCommand;
7
+ exports.generateGrokBuildCommand = generateGrokBuildCommand;
7
8
  exports.generateCodexCommand = generateCodexCommand;
8
9
  exports.generateMcpInstallPrompt = generateMcpInstallPrompt;
9
10
  const mcp_1 = require("../constants/mcp");
@@ -53,6 +54,9 @@ function slugifyMcpServerName(name) {
53
54
  function generateClaudeCodeCommand(config) {
54
55
  return `claude mcp add --transport http ${slugifyMcpServerName(config.serverName)} ${config.url}`;
55
56
  }
57
+ function generateGrokBuildCommand(config) {
58
+ return `grok mcp add --transport http ${slugifyMcpServerName(config.serverName)} ${config.url}`;
59
+ }
56
60
  function generateCodexCommand(config) {
57
61
  return `codex mcp add ${slugifyMcpServerName(config.serverName)} --url ${config.url}`;
58
62
  }
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import type { IconProps } from '../../icons/types';
3
+ declare const Icon: (props: IconProps) => React.JSX.Element;
4
+ export declare const GrokIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<{
5
+ color?: string;
6
+ size?: string;
7
+ className?: string;
8
+ 'data-component-name'?: string;
9
+ } & React.SVGProps<SVGSVGElement>, "data-component-name" | "size" | keyof React.SVGProps<SVGSVGElement>> & {
10
+ color?: string;
11
+ size?: string;
12
+ className?: string;
13
+ 'data-component-name'?: string;
14
+ } & React.SVGProps<SVGSVGElement>, "data-component-name"> & Partial<Pick<import("styled-components").FastOmit<{
15
+ color?: string;
16
+ size?: string;
17
+ className?: string;
18
+ 'data-component-name'?: string;
19
+ } & React.SVGProps<SVGSVGElement>, "data-component-name" | "size" | keyof React.SVGProps<SVGSVGElement>> & {
20
+ color?: string;
21
+ size?: string;
22
+ className?: string;
23
+ 'data-component-name'?: string;
24
+ } & React.SVGProps<SVGSVGElement>, "data-component-name">>> & string & Omit<typeof Icon, keyof React.Component<any, {}, any>>;
25
+ export {};
@@ -0,0 +1,23 @@
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.GrokIcon = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const styled_components_1 = __importDefault(require("styled-components"));
9
+ const utils_1 = require("../../core/utils");
10
+ const Icon = (props) => (react_1.default.createElement("svg", Object.assign({ viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, props),
11
+ react_1.default.createElement("path", { d: "M6.6345 9.6347L10.6239 6.6862C10.8195 6.5417 11.0991 6.598 11.1923 6.8226C11.6827 8.0067 11.4636 9.4297 10.4877 10.4067C9.5119 11.3837 8.1541 11.5979 6.9131 11.1099L5.5573 11.7384C7.5019 13.0691 9.8631 12.74 11.3387 11.2617C12.5091 10.0899 12.8716 8.4926 12.5327 7.0522L12.5357 7.0553C12.0442 4.9393 12.6566 4.0935 13.9109 2.364C13.9406 2.3229 13.9703 2.2819 14 2.2399L12.3493 3.8925V3.8874L6.6335 9.6357" }),
12
+ react_1.default.createElement("path", { d: "M5.8113 10.3513C4.4156 9.0165 4.6562 6.9507 5.8471 5.7594C6.7277 4.8777 8.1705 4.5179 9.43 5.0469L10.7827 4.4215C10.539 4.2452 10.2266 4.0555 9.8682 3.9223C8.2483 3.2549 6.3089 3.587 4.9921 4.9044C3.7254 6.1726 3.3271 8.1225 4.0111 9.7864C4.5221 11.03 3.6844 11.9096 2.8407 12.7974C2.5417 13.1122 2.2417 13.4269 2 13.7601L5.8102 10.3523" })));
13
+ exports.GrokIcon = (0, styled_components_1.default)(Icon).attrs({
14
+ 'data-component-name': 'icons/GrokIcon/GrokIcon',
15
+ }) `
16
+ path {
17
+ fill: ${({ color }) => (0, utils_1.getCssColorVariable)(color)};
18
+ }
19
+
20
+ height: ${({ size }) => size || '16px'};
21
+ width: ${({ size }) => size || '16px'};
22
+ `;
23
+ //# sourceMappingURL=GrokIcon.js.map
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import type { IconProps } from '../../icons/types';
3
+ declare const Icon: (props: IconProps) => React.JSX.Element;
4
+ export declare const McpIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<{
5
+ color?: string;
6
+ size?: string;
7
+ className?: string;
8
+ 'data-component-name'?: string;
9
+ } & React.SVGProps<SVGSVGElement>, "data-component-name" | "size" | keyof React.SVGProps<SVGSVGElement>> & {
10
+ color?: string;
11
+ size?: string;
12
+ className?: string;
13
+ 'data-component-name'?: string;
14
+ } & React.SVGProps<SVGSVGElement>, "data-component-name"> & Partial<Pick<import("styled-components").FastOmit<{
15
+ color?: string;
16
+ size?: string;
17
+ className?: string;
18
+ 'data-component-name'?: string;
19
+ } & React.SVGProps<SVGSVGElement>, "data-component-name" | "size" | keyof React.SVGProps<SVGSVGElement>> & {
20
+ color?: string;
21
+ size?: string;
22
+ className?: string;
23
+ 'data-component-name'?: string;
24
+ } & React.SVGProps<SVGSVGElement>, "data-component-name">>> & string & Omit<typeof Icon, keyof React.Component<any, {}, any>>;
25
+ export {};
@@ -0,0 +1,24 @@
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.McpIcon = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const styled_components_1 = __importDefault(require("styled-components"));
9
+ const utils_1 = require("../../core/utils");
10
+ const Icon = (props) => (react_1.default.createElement("svg", Object.assign({ viewBox: "14 13 150 154", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, props),
11
+ react_1.default.createElement("path", { d: "M23.5996 85.2532L86.2021 22.6507C94.8457 14.0071 108.86 14.0071 117.503 22.6507C126.147 31.2942 126.147 45.3083 117.503 53.9519L70.2254 101.23", strokeWidth: "11", strokeLinecap: "round" }),
12
+ react_1.default.createElement("path", { d: "M70.8789 100.578L117.504 53.952C126.148 45.3083 140.163 45.3083 148.806 53.952L149.132 54.278C157.776 62.9216 157.776 76.9357 149.132 85.5792L92.5139 142.198C89.6327 145.079 89.6327 149.75 92.5139 152.631L104.14 164.257", strokeWidth: "11", strokeLinecap: "round" }),
13
+ react_1.default.createElement("path", { d: "M101.853 38.3013L55.553 84.6011C46.9094 93.2447 46.9094 107.258 55.553 115.902C64.1966 124.546 78.2106 124.546 86.8543 115.902L133.154 69.6025", strokeWidth: "11", strokeLinecap: "round" })));
14
+ exports.McpIcon = (0, styled_components_1.default)(Icon).attrs({
15
+ 'data-component-name': 'icons/McpIcon/McpIcon',
16
+ }) `
17
+ path {
18
+ stroke: ${({ color }) => (0, utils_1.getCssColorVariable)(color)};
19
+ }
20
+
21
+ height: ${({ size }) => size || '16px'};
22
+ width: ${({ size }) => size || '16px'};
23
+ `;
24
+ //# sourceMappingURL=McpIcon.js.map
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import type { IconProps } from '../../icons/types';
3
+ declare const Icon: (props: IconProps) => React.JSX.Element;
4
+ export declare const TranslateIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<{
5
+ color?: string;
6
+ size?: string;
7
+ className?: string;
8
+ 'data-component-name'?: string;
9
+ } & React.SVGProps<SVGSVGElement>, "data-component-name" | "size" | keyof React.SVGProps<SVGSVGElement>> & {
10
+ color?: string;
11
+ size?: string;
12
+ className?: string;
13
+ 'data-component-name'?: string;
14
+ } & React.SVGProps<SVGSVGElement>, "data-component-name"> & Partial<Pick<import("styled-components").FastOmit<{
15
+ color?: string;
16
+ size?: string;
17
+ className?: string;
18
+ 'data-component-name'?: string;
19
+ } & React.SVGProps<SVGSVGElement>, "data-component-name" | "size" | keyof React.SVGProps<SVGSVGElement>> & {
20
+ color?: string;
21
+ size?: string;
22
+ className?: string;
23
+ 'data-component-name'?: string;
24
+ } & React.SVGProps<SVGSVGElement>, "data-component-name">>> & string & Omit<typeof Icon, keyof React.Component<any, {}, any>>;
25
+ export {};
@@ -0,0 +1,21 @@
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.TranslateIcon = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const styled_components_1 = __importDefault(require("styled-components"));
9
+ const utils_1 = require("../../core/utils");
10
+ const Icon = (props) => (react_1.default.createElement("svg", Object.assign({ viewBox: "0 0 24 24", fill: "inherit", xmlns: "http://www.w3.org/2000/svg" }, props),
11
+ react_1.default.createElement("path", { d: "M12.87 15.07L10.33 12.56L10.36 12.53C12.1 10.59 13.34 8.36 14.07 6H17V4H10V2H8V4H1V6H12.17C11.5 7.92 10.44 9.75 9 11.35C8.07 10.32 7.3 9.19 6.69 8H4.69C5.42 9.63 6.42 11.17 7.67 12.56L2.58 17.58L4 19L9 14L12.11 17.11L12.87 15.07ZM18.5 10H16.5L12 22H14L15.12 19H19.87L21 22H23L18.5 10ZM15.88 17L17.5 12.67L19.12 17H15.88Z" })));
12
+ exports.TranslateIcon = (0, styled_components_1.default)(Icon).attrs({
13
+ 'data-component-name': 'icons/TranslateIcon/TranslateIcon',
14
+ }) `
15
+ path {
16
+ fill: ${({ color }) => (0, utils_1.getCssColorVariable)(color)};
17
+ }
18
+ height: ${({ size }) => size || '20px'};
19
+ width: ${({ size }) => size || '20px'};
20
+ `;
21
+ //# sourceMappingURL=TranslateIcon.js.map
package/lib/index.d.ts CHANGED
@@ -41,6 +41,7 @@ export * from './components/Markdown/styles/base-table';
41
41
  export * from './components/Markdown/styles/heading-anchor';
42
42
  export * from './components/Markdown/styles/links';
43
43
  export * from './components/Admonition/Admonition';
44
+ export * from './components/MissingTranslationNotice/MissingTranslationNotice';
44
45
  export * from './components/ApiOnboarding/AppCustomAttributes';
45
46
  export * from './components/Navbar/Navbar';
46
47
  export * from './components/Navbar/NavbarItem';
@@ -165,6 +166,8 @@ export * from './icons/SpinnerIcon/SpinnerIcon';
165
166
  export * from './icons/ChatGptIcon/ChatGptIcon';
166
167
  export * from './icons/CopyIcon/CopyIcon';
167
168
  export * from './icons/ClaudeIcon/ClaudeIcon';
169
+ export * from './icons/GrokIcon/GrokIcon';
170
+ export * from './icons/McpIcon/McpIcon';
168
171
  export * from './icons/CleanIcon/CleanIcon';
169
172
  export * from './icons/GraphqlIcon/GraphqlIcon';
170
173
  export * from './icons/DeselectIcon/DeselectIcon';
package/lib/index.js CHANGED
@@ -83,6 +83,8 @@ __exportStar(require("./components/Markdown/styles/heading-anchor"), exports);
83
83
  __exportStar(require("./components/Markdown/styles/links"), exports);
84
84
  /* Admonition */
85
85
  __exportStar(require("./components/Admonition/Admonition"), exports);
86
+ /* MissingTranslationNotice */
87
+ __exportStar(require("./components/MissingTranslationNotice/MissingTranslationNotice"), exports);
86
88
  /* ApiOnboarding */
87
89
  __exportStar(require("./components/ApiOnboarding/AppCustomAttributes"), exports);
88
90
  /* Navbar */
@@ -229,6 +231,8 @@ __exportStar(require("./icons/SpinnerIcon/SpinnerIcon"), exports);
229
231
  __exportStar(require("./icons/ChatGptIcon/ChatGptIcon"), exports);
230
232
  __exportStar(require("./icons/CopyIcon/CopyIcon"), exports);
231
233
  __exportStar(require("./icons/ClaudeIcon/ClaudeIcon"), exports);
234
+ __exportStar(require("./icons/GrokIcon/GrokIcon"), exports);
235
+ __exportStar(require("./icons/McpIcon/McpIcon"), exports);
232
236
  __exportStar(require("./icons/CleanIcon/CleanIcon"), exports);
233
237
  __exportStar(require("./icons/GraphqlIcon/GraphqlIcon"), exports);
234
238
  __exportStar(require("./icons/DeselectIcon/DeselectIcon"), exports);
@@ -8,9 +8,12 @@ const react_1 = __importDefault(require("react"));
8
8
  const styled_components_1 = __importDefault(require("styled-components"));
9
9
  const constants_1 = require("../core/constants");
10
10
  const utils_1 = require("../core/utils");
11
+ const MissingTranslationNotice_1 = require("../components/MissingTranslationNotice/MissingTranslationNotice");
11
12
  function CodeWalkthroughLayout({ className, children, }) {
12
13
  return (react_1.default.createElement(LayoutWrapper, { "data-component-name": "Layout/CodeWalkthroughLayout", className: className },
13
- react_1.default.createElement(ContentWrapper, null, children)));
14
+ react_1.default.createElement(ContentWrapper, null,
15
+ react_1.default.createElement(Notice, null),
16
+ children)));
14
17
  }
15
18
  const LayoutWrapper = styled_components_1.default.div.attrs(({ className }) => ({
16
19
  className,
@@ -19,6 +22,11 @@ const LayoutWrapper = styled_components_1.default.div.attrs(({ className }) => (
19
22
  flex: 1;
20
23
  width: 100%;
21
24
  `;
25
+ const Notice = (0, styled_components_1.default)(MissingTranslationNotice_1.MissingTranslationNotice) `
26
+ max-width: var(--md-content-max-width);
27
+ margin-left: auto;
28
+ margin-right: auto;
29
+ `;
22
30
  const ContentWrapper = styled_components_1.default.section `
23
31
  width: 100%;
24
32
  --md-content-font-size: var(--font-size-lg);