@redocly/theme 0.59.0-rc.3 → 0.60.0-custom.2
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/LICENSE +7 -1
- package/lib/components/AsyncApiDocs/hooks/AfterAsyncApiChannelDescription.js +1 -0
- package/lib/components/Buttons/AIAssistantButton.js +6 -2
- package/lib/components/Buttons/ConnectMCPButton.d.ts +8 -0
- package/lib/components/Buttons/ConnectMCPButton.js +145 -0
- package/lib/components/Buttons/variables.d.ts +1 -0
- package/lib/components/Buttons/variables.js +44 -2
- package/lib/components/Catalog/CatalogCardView/CatalogCard.js +4 -3
- package/lib/components/Catalog/CatalogEntity/CatalogEntity.js +5 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.js +2 -2
- package/lib/components/Catalog/CatalogEntity/CatalogEntityInfoBar.js +1 -0
- package/lib/components/Catalog/CatalogEntity/CatalogEntityLinks.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityMetadata.js +1 -0
- package/lib/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/FormatProperty.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.js +4 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.js +1 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.js +1 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.js +2 -2
- package/lib/components/Catalog/CatalogEntityIcon.js +2 -1
- package/lib/components/Catalog/CatalogFilter/CatalogFilter.js +4 -0
- package/lib/components/Catalog/CatalogFilter/CatalogFilterDateRange.js +2 -2
- package/lib/components/Catalog/CatalogSelector.js +1 -1
- package/lib/components/Catalog/CatalogSortButton.js +4 -1
- package/lib/components/Catalog/CatalogTableView/CatalogTableHeaderCell.js +2 -2
- package/lib/components/Catalog/CatalogTableView/CatalogTableViewRow.js +2 -2
- package/lib/components/Catalog/CatalogTagsWithTooltip.js +5 -1
- package/lib/components/Catalog/variables.dark.js +1 -1
- package/lib/components/Catalog/variables.js +6 -4
- package/lib/components/CatalogClassic/variables.js +1 -1
- package/lib/components/CodeBlock/CodeBlock.js +3 -1
- package/lib/components/CodeBlock/CodeBlockTabs.js +3 -3
- package/lib/components/DatePicker/variables.js +2 -0
- package/lib/components/Dropdown/Dropdown.d.ts +16 -2
- package/lib/components/Dropdown/Dropdown.js +5 -5
- package/lib/components/Feedback/Mood.js +2 -2
- package/lib/components/Feedback/Rating.js +2 -2
- package/lib/components/Filter/FilterDateRange.js +2 -2
- package/lib/components/Filter/FilterSelect.js +5 -1
- package/lib/components/Link/Link.d.ts +1 -0
- package/lib/components/Loaders/Loading.js +4 -1
- package/lib/components/Markdown/Markdown.js +9 -9
- package/lib/components/Markdown/styles/{baseTable.js → base-table.js} +1 -1
- package/lib/components/Markdown/styles/{headingAnchor.js → heading-anchor.js} +1 -1
- package/lib/components/Menu/MenuItem.js +6 -2
- package/lib/components/Navbar/NavbarItem.js +3 -3
- package/lib/components/OpenApiDocs/hooks/AdditionalOverviewInfo.js +1 -0
- package/lib/components/OpenApiDocs/hooks/AfterOpenApiDescription.js +1 -0
- package/lib/components/OpenApiDocs/hooks/AfterOpenApiOperation.js +1 -0
- package/lib/components/OpenApiDocs/hooks/AfterOpenApiTitle.js +1 -0
- package/lib/components/OpenApiDocs/hooks/BeforeOpenApiOperation.js +1 -0
- package/lib/components/OpenApiDocs/hooks/OpenApiFooter.js +3 -2
- package/lib/components/OpenApiDocs/hooks/OpenApiHeader.js +3 -2
- package/lib/components/PageActions/PageActions.js +4 -1
- package/lib/components/PageActions/variables.js +2 -0
- package/lib/components/Search/FilterFields/SearchFilterFieldSelect.js +2 -1
- package/lib/components/Search/FilterFields/SearchFilterFieldTags.js +8 -3
- package/lib/components/Search/SearchAiActionButtons.d.ts +10 -0
- package/lib/components/Search/SearchAiActionButtons.js +43 -0
- package/lib/components/Search/SearchAiConversationInput.d.ts +3 -1
- package/lib/components/Search/SearchAiConversationInput.js +39 -7
- package/lib/components/Search/SearchAiDialog.d.ts +3 -6
- package/lib/components/Search/SearchAiDialog.js +20 -9
- package/lib/components/Search/SearchAiMessage.d.ts +9 -5
- package/lib/components/Search/SearchAiMessage.js +147 -21
- package/lib/components/Search/SearchAiNegativeFeedbackForm.d.ts +10 -0
- package/lib/components/Search/SearchAiNegativeFeedbackForm.js +170 -0
- package/lib/components/Search/SearchDialog.js +36 -5
- package/lib/components/Search/SearchGroups.js +5 -2
- package/lib/components/Search/SearchHighlight.js +1 -0
- package/lib/components/Search/SearchItem.js +9 -2
- package/lib/components/Search/variables.js +38 -64
- package/lib/components/Segmented/Segmented.d.ts +1 -8
- package/lib/components/Segmented/Segmented.js +5 -3
- package/lib/components/Select/Select.d.ts +1 -1
- package/lib/components/Select/Select.js +4 -2
- package/lib/components/Select/SelectInput.d.ts +1 -1
- package/lib/components/Select/SelectInput.js +3 -1
- package/lib/components/SidebarActions/styled.d.ts +5 -4
- package/lib/components/SidebarActions/styled.js +9 -5
- package/lib/components/Tag/Tag.d.ts +3 -2
- package/lib/components/Tag/Tag.js +65 -16
- package/lib/components/Tag/variables.dark.js +143 -36
- package/lib/components/Tag/variables.js +85 -60
- package/lib/components/Tooltip/Tooltip.js +2 -0
- package/lib/components/VersionPicker/VersionPicker.d.ts +1 -1
- package/lib/config.d.ts +2 -2
- package/lib/core/constants/index.d.ts +2 -0
- package/lib/core/constants/index.js +2 -0
- package/lib/core/constants/mcp.d.ts +1 -0
- package/lib/core/constants/mcp.js +5 -0
- package/lib/core/constants/request-methods.d.ts +1 -0
- package/lib/core/constants/request-methods.js +14 -0
- package/lib/core/constants/search.d.ts +5 -4
- package/lib/core/constants/search.js +4 -5
- package/lib/core/hoc/index.d.ts +1 -1
- package/lib/core/hoc/index.js +1 -1
- package/lib/core/hoc/{typedMemo.js → typed-memo.js} +1 -1
- package/lib/core/hooks/__tests__/mocks/mock-intersection-observer.d.ts +1 -1
- package/lib/core/hooks/__tests__/mocks/mock-intersection-observer.js +1 -3
- package/lib/core/hooks/catalog/{useCatalogEntities.js → use-catalog-entities.js} +1 -1
- package/lib/core/hooks/catalog/{useCatalogEntitySchema.d.ts → use-catalog-entity-schema.d.ts} +1 -1
- package/lib/core/hooks/catalog/{useCatalogEntitySchema.js → use-catalog-entity-schema.js} +1 -1
- package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.js → use-catalog-table-header-cell-actions.js} +1 -1
- package/lib/core/hooks/catalog/{useCatalogTableViewRow.js → use-catalog-table-view-row.js} +1 -1
- package/lib/core/hooks/catalog/{useGraph.js → use-graph.js} +2 -2
- package/lib/core/hooks/code-walkthrough/use-code-walkthrough-controls.js +1 -0
- package/lib/core/hooks/code-walkthrough/use-code-walkthrough-steps.d.ts +1 -0
- package/lib/core/hooks/code-walkthrough/use-renderable-files.js +2 -2
- package/lib/core/hooks/index.d.ts +8 -2
- package/lib/core/hooks/index.js +8 -2
- package/lib/core/hooks/menu/use-collapse.js +1 -0
- package/lib/core/hooks/menu/use-mobile-menu-items.js +1 -0
- package/lib/core/hooks/menu/use-nested-menu.js +1 -1
- package/lib/core/hooks/search/use-feedback-tooltip.d.ts +6 -0
- package/lib/core/hooks/search/use-feedback-tooltip.js +26 -0
- package/lib/core/hooks/use-connect-mcp-button.d.ts +13 -0
- package/lib/core/hooks/use-connect-mcp-button.js +50 -0
- package/lib/core/hooks/use-mcp-config.d.ts +9 -0
- package/lib/core/hooks/use-mcp-config.js +30 -0
- package/lib/core/hooks/use-page-actions.d.ts +1 -1
- package/lib/core/hooks/use-page-actions.js +120 -120
- package/lib/core/hooks/use-product-picker.js +2 -1
- package/lib/core/hooks/use-tabs.d.ts +3 -2
- package/lib/core/hooks/use-tabs.js +115 -57
- package/lib/core/hooks/use-telemetry-fallback.d.ts +10 -8
- package/lib/core/hooks/use-telemetry-fallback.js +11 -8
- package/lib/core/hooks/use-theme-config.js +1 -0
- package/lib/core/hooks/use-theme-hooks.js +1 -0
- package/lib/core/openapi/index.d.ts +3 -1
- package/lib/core/openapi/index.js +5 -3
- package/lib/core/styles/dark.js +4 -0
- package/lib/core/styles/global.js +5 -0
- package/lib/core/templates/Markdown.js +1 -0
- package/lib/core/types/hooks.d.ts +8 -2
- package/lib/core/types/index.d.ts +20 -18
- package/lib/core/types/index.js +0 -18
- package/lib/core/types/l10n.d.ts +1 -1
- package/lib/core/types/mcp.d.ts +6 -0
- package/lib/core/types/mcp.js +3 -0
- package/lib/core/types/search.d.ts +12 -4
- package/lib/core/types/search.js +6 -0
- package/lib/core/types/segmented.d.ts +12 -0
- package/lib/core/types/segmented.js +3 -0
- package/lib/core/types/sidebar.d.ts +1 -0
- package/lib/core/utils/{dynamic.js → Dynamic.js} +1 -1
- package/lib/core/utils/{get-file-icon.js → GetFileIcon.js} +1 -1
- package/lib/core/utils/args-typecheck.d.ts +2 -2
- package/lib/core/utils/clipboard-service.js +2 -0
- package/lib/core/utils/frontmatter-translate.d.ts +6 -0
- package/lib/core/utils/frontmatter-translate.js +14 -0
- package/lib/core/utils/get-operation-color.d.ts +7 -0
- package/lib/core/utils/get-operation-color.js +13 -0
- package/lib/core/utils/get-user-agent.js +1 -0
- package/lib/core/utils/index.d.ts +5 -2
- package/lib/core/utils/index.js +5 -2
- package/lib/core/utils/js-utils.d.ts +1 -1
- package/lib/core/utils/load-and-navigate.js +1 -0
- package/lib/core/utils/markdoc.js +1 -0
- package/lib/core/utils/mcp.d.ts +2 -0
- package/lib/core/utils/mcp.js +31 -0
- package/lib/core/utils/parse-style-string.js +1 -0
- package/lib/ext/configure.d.ts +2 -2
- package/lib/ext/configure.js +12 -6
- package/lib/ext/{useConfigureReplay.js → use-configure-replay.js} +5 -4
- package/lib/icons/AiStarsGradientIcon/AiStarsGradientIcon.js +44 -4
- package/lib/icons/AiStarsIcon/AiStarsIcon.js +11 -2
- package/lib/icons/ConnectIcon/ConnectIcon.d.ts +9 -0
- package/lib/icons/ConnectIcon/ConnectIcon.js +17 -0
- package/lib/icons/CubeIcon/CubeIcon.d.ts +9 -0
- package/lib/icons/CubeIcon/CubeIcon.js +17 -0
- package/lib/icons/HashtagIcon/HashtagIcon.d.ts +9 -0
- package/lib/icons/HashtagIcon/HashtagIcon.js +22 -0
- package/lib/icons/RedoclyIcon/RedoclyIcon.js +4 -7
- package/lib/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.d.ts +9 -0
- package/lib/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.js +34 -0
- package/lib/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.d.ts +9 -0
- package/lib/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.js +34 -0
- package/lib/icons/VSCodeIcon/VSCodeIcon.d.ts +9 -0
- package/lib/icons/VSCodeIcon/VSCodeIcon.js +17 -0
- package/lib/index.d.ts +4 -3
- package/lib/index.js +3 -3
- package/lib/layouts/ThreePanelLayout.js +4 -4
- package/lib/markdoc/components/Cards/Card.js +1 -28
- package/lib/markdoc/components/Cards/variables.dark.js +2 -0
- package/lib/markdoc/components/Cards/variables.js +2 -0
- package/lib/markdoc/components/CodeWalkthrough/CodePanelHeader.js +1 -0
- package/lib/markdoc/components/ConnectMCP/ConnectMCP.d.ts +8 -0
- package/lib/markdoc/components/ConnectMCP/ConnectMCP.js +19 -0
- package/lib/markdoc/components/Tabs/TabList.d.ts +3 -1
- package/lib/markdoc/components/Tabs/TabList.js +197 -47
- package/lib/markdoc/components/Tabs/Tabs.d.ts +2 -1
- package/lib/markdoc/components/Tabs/Tabs.js +57 -12
- package/lib/markdoc/components/default.d.ts +1 -0
- package/lib/markdoc/components/default.js +1 -0
- package/lib/markdoc/default.d.ts +6 -0
- package/lib/markdoc/default.js +2 -0
- package/lib/markdoc/tags/card.js +0 -1
- package/lib/markdoc/tags/code-walkthrough.js +1 -0
- package/lib/markdoc/tags/connect-mcp.d.ts +2 -0
- package/lib/markdoc/tags/connect-mcp.js +27 -0
- package/lib/markdoc/tags/html.js +1 -0
- package/package.json +6 -6
- package/src/components/AsyncApiDocs/hooks/AfterAsyncApiChannelDescription.tsx +1 -0
- package/src/components/Button/Button.tsx +1 -0
- package/src/components/Buttons/AIAssistantButton.tsx +6 -2
- package/src/components/Buttons/ConnectMCPButton.tsx +180 -0
- package/src/components/Buttons/variables.ts +44 -1
- package/src/components/Catalog/CatalogCardView/CatalogCard.tsx +4 -3
- package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +4 -0
- package/src/components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityInfoBar.tsx +1 -0
- package/src/components/Catalog/CatalogEntity/CatalogEntityLinks.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +1 -0
- package/src/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/FormatProperty.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.tsx +5 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +3 -1
- package/src/components/Catalog/CatalogEntityIcon.tsx +2 -1
- package/src/components/Catalog/CatalogFilter/CatalogFilter.tsx +5 -0
- package/src/components/Catalog/CatalogFilter/CatalogFilterDateRange.tsx +2 -2
- package/src/components/Catalog/CatalogSelector.tsx +2 -2
- package/src/components/Catalog/CatalogSortButton.tsx +5 -1
- package/src/components/Catalog/CatalogTableView/CatalogTableHeaderCell.tsx +1 -1
- package/src/components/Catalog/CatalogTableView/CatalogTableViewRow.tsx +1 -1
- package/src/components/Catalog/CatalogTagsWithTooltip.tsx +8 -1
- package/src/components/Catalog/variables.dark.ts +1 -1
- package/src/components/Catalog/variables.ts +6 -4
- package/src/components/CatalogClassic/CatalogClassicInfoBlock.tsx +1 -0
- package/src/components/CatalogClassic/variables.ts +1 -1
- package/src/components/CodeBlock/CodeBlock.tsx +4 -0
- package/src/components/CodeBlock/CodeBlockControls.tsx +1 -0
- package/src/components/CodeBlock/CodeBlockTabs.tsx +1 -1
- package/src/components/DatePicker/variables.ts +3 -1
- package/src/components/Dropdown/Dropdown.tsx +84 -79
- package/src/components/Feedback/Mood.tsx +2 -2
- package/src/components/Feedback/Rating.tsx +2 -2
- package/src/components/Filter/FilterDateRange.tsx +2 -2
- package/src/components/Filter/FilterSelect.tsx +1 -0
- package/src/components/JsonViewer/JsonViewer.tsx +1 -0
- package/src/components/JsonViewer/helpers.tsx +3 -0
- package/src/components/LastUpdated/LastUpdated.tsx +1 -0
- package/src/components/Link/Link.tsx +1 -0
- package/src/components/Loaders/Loading.tsx +5 -1
- package/src/components/Markdown/Markdown.tsx +2 -2
- package/src/components/Menu/MenuItem.tsx +7 -2
- package/src/components/Navbar/NavbarItem.tsx +6 -5
- package/src/components/OpenApiDocs/hooks/AdditionalOverviewInfo.tsx +1 -0
- package/src/components/OpenApiDocs/hooks/AfterOpenApiDescription.tsx +1 -0
- package/src/components/OpenApiDocs/hooks/AfterOpenApiOperation.tsx +1 -1
- package/src/components/OpenApiDocs/hooks/AfterOpenApiTitle.tsx +1 -1
- package/src/components/OpenApiDocs/hooks/BeforeOpenApiOperation.tsx +1 -1
- package/src/components/OpenApiDocs/hooks/OpenApiFooter.tsx +1 -1
- package/src/components/OpenApiDocs/hooks/OpenApiHeader.tsx +1 -1
- package/src/components/PageActions/PageActions.tsx +5 -1
- package/src/components/PageActions/variables.ts +2 -0
- package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +4 -1
- package/src/components/Search/FilterFields/SearchFilterFieldTags.tsx +10 -4
- package/src/components/Search/SearchAiActionButtons.tsx +76 -0
- package/src/components/Search/SearchAiConversationInput.tsx +61 -18
- package/src/components/Search/SearchAiDialog.tsx +52 -23
- package/src/components/Search/SearchAiMessage.tsx +173 -39
- package/src/components/Search/SearchAiNegativeFeedbackForm.tsx +212 -0
- package/src/components/Search/SearchDialog.tsx +49 -13
- package/src/components/Search/SearchGroups.tsx +6 -1
- package/src/components/Search/SearchHighlight.tsx +1 -0
- package/src/components/Search/SearchItem.tsx +15 -3
- package/src/components/Search/variables.ts +38 -64
- package/src/components/Segmented/Segmented.tsx +16 -21
- package/src/components/Select/Select.tsx +8 -4
- package/src/components/Select/SelectInput.tsx +11 -1
- package/src/components/SidebarActions/{styled.tsx → styled.ts} +11 -4
- package/src/components/Tag/Tag.tsx +36 -18
- package/src/components/Tag/variables.dark.ts +143 -36
- package/src/components/Tag/variables.ts +85 -60
- package/src/components/Tooltip/Tooltip.tsx +2 -1
- package/src/components/VersionPicker/VersionPicker.tsx +2 -1
- package/src/config.ts +2 -0
- package/src/core/constants/index.ts +2 -0
- package/src/core/constants/mcp.ts +1 -0
- package/src/core/constants/request-methods.ts +10 -0
- package/src/core/constants/search.ts +8 -4
- package/src/core/hoc/index.ts +1 -1
- package/src/core/hooks/__mocks__/use-theme-hooks.ts +2 -2
- package/src/core/hooks/__tests__/mocks/mock-intersection-observer.ts +9 -8
- package/src/core/hooks/catalog/{useCatalogEntitySchema.ts → use-catalog-entity-schema.ts} +3 -3
- package/src/core/hooks/catalog/{useGraph.ts → use-graph.ts} +1 -1
- package/src/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.ts +1 -1
- package/src/core/hooks/code-walkthrough/__mocks__/mock-intersection-observer.ts +24 -0
- package/src/core/hooks/code-walkthrough/use-code-walkthrough-controls.ts +1 -0
- package/src/core/hooks/code-walkthrough/use-code-walkthrough-steps.ts +2 -2
- package/src/core/hooks/code-walkthrough/use-renderable-files.ts +1 -1
- package/src/core/hooks/index.ts +8 -2
- package/src/core/hooks/menu/use-collapse.ts +3 -3
- package/src/core/hooks/menu/use-mobile-menu-items.ts +1 -0
- package/src/core/hooks/menu/use-nested-menu.ts +2 -2
- package/src/core/hooks/search/use-feedback-tooltip.ts +32 -0
- package/src/core/hooks/use-connect-mcp-button.ts +79 -0
- package/src/core/hooks/use-mcp-config.ts +49 -0
- package/src/core/hooks/use-page-actions.ts +164 -146
- package/src/core/hooks/use-product-picker.ts +2 -1
- package/src/core/hooks/use-tabs.ts +168 -86
- package/src/core/hooks/use-telemetry-fallback.ts +11 -8
- package/src/core/hooks/use-theme-config.ts +1 -0
- package/src/core/hooks/use-theme-hooks.ts +2 -1
- package/src/core/openapi/index.ts +3 -1
- package/src/core/styles/dark.ts +4 -0
- package/src/core/styles/global.ts +6 -1
- package/src/core/templates/Markdown.tsx +1 -0
- package/src/core/types/catalog.ts +3 -1
- package/src/core/types/filter.ts +1 -0
- package/src/core/types/hooks.ts +11 -1
- package/src/core/types/index.ts +20 -18
- package/src/core/types/l10n.ts +37 -1
- package/src/core/types/mcp.ts +8 -0
- package/src/core/types/search.ts +15 -5
- package/src/core/types/segmented.ts +15 -0
- package/src/core/types/select.ts +1 -0
- package/src/core/types/sidebar.ts +1 -0
- package/src/core/utils/args-typecheck.ts +2 -2
- package/src/core/utils/clipboard-service.ts +2 -0
- package/src/core/utils/frontmatter-translate.ts +9 -0
- package/src/core/utils/get-operation-color.ts +18 -0
- package/src/core/utils/get-user-agent.ts +1 -0
- package/src/core/utils/index.ts +5 -2
- package/src/core/utils/js-utils.ts +1 -1
- package/src/core/utils/load-and-navigate.ts +1 -0
- package/src/core/utils/markdoc.ts +1 -0
- package/src/core/utils/mcp.ts +34 -0
- package/src/core/utils/parse-style-string.ts +1 -0
- package/src/ext/configure.ts +15 -8
- package/src/ext/process-scorecard.ts +1 -0
- package/src/ext/{useConfigureReplay.ts → use-configure-replay.ts} +5 -3
- package/src/icons/AiStarsGradientIcon/AiStarsGradientIcon.tsx +13 -4
- package/src/icons/AiStarsIcon/AiStarsIcon.tsx +11 -2
- package/src/icons/ConnectIcon/ConnectIcon.tsx +27 -0
- package/src/icons/CubeIcon/CubeIcon.tsx +27 -0
- package/src/icons/HashtagIcon/HashtagIcon.tsx +23 -0
- package/src/icons/RedoclyIcon/RedoclyIcon.tsx +4 -22
- package/src/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.tsx +38 -0
- package/src/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.tsx +35 -0
- package/src/icons/VSCodeIcon/VSCodeIcon.tsx +29 -0
- package/src/index.ts +4 -3
- package/src/layouts/ThreePanelLayout.tsx +1 -1
- package/src/markdoc/components/Cards/Card.tsx +1 -28
- package/src/markdoc/components/Cards/variables.dark.ts +2 -0
- package/src/markdoc/components/Cards/variables.ts +3 -1
- package/src/markdoc/components/CodeWalkthrough/CodePanelHeader.tsx +1 -1
- package/src/markdoc/components/ConnectMCP/ConnectMCP.tsx +28 -0
- package/src/markdoc/components/Tabs/TabList.tsx +312 -105
- package/src/markdoc/components/Tabs/Tabs.tsx +136 -11
- package/src/markdoc/components/default.ts +1 -0
- package/src/markdoc/default.ts +2 -0
- package/src/markdoc/tags/card.ts +0 -1
- package/src/markdoc/tags/code-walkthrough.ts +2 -0
- package/src/markdoc/tags/connect-mcp.ts +25 -0
- package/src/markdoc/tags/html.ts +1 -0
- package/lib/core/hooks/__mocks__/index.d.ts +0 -28
- package/lib/core/hooks/__mocks__/index.js +0 -45
- package/lib/core/hooks/__mocks__/search/use-recent-searches.d.ts +0 -5
- package/lib/core/hooks/__mocks__/search/use-recent-searches.js +0 -13
- package/lib/core/hooks/__mocks__/search/use-search-filter.d.ts +0 -8
- package/lib/core/hooks/__mocks__/search/use-search-filter.js +0 -15
- package/lib/core/hooks/__mocks__/search/use-suggested-pages.d.ts +0 -4
- package/lib/core/hooks/__mocks__/search/use-suggested-pages.js +0 -13
- package/lib/core/hooks/__mocks__/use-controlled-state.d.ts +0 -1
- package/lib/core/hooks/__mocks__/use-controlled-state.js +0 -7
- package/lib/core/hooks/__mocks__/use-element-size.d.ts +0 -4
- package/lib/core/hooks/__mocks__/use-element-size.js +0 -9
- package/lib/core/hooks/__mocks__/use-input-key-commands.d.ts +0 -3
- package/lib/core/hooks/__mocks__/use-input-key-commands.js +0 -8
- package/lib/core/hooks/__mocks__/use-mobile-menu.d.ts +0 -1
- package/lib/core/hooks/__mocks__/use-mobile-menu.js +0 -7
- package/lib/core/hooks/__mocks__/use-theme-config.d.ts +0 -8
- package/lib/core/hooks/__mocks__/use-theme-config.js +0 -13
- package/lib/core/hooks/__mocks__/use-theme-hooks.d.ts +0 -69
- package/lib/core/hooks/__mocks__/use-theme-hooks.js +0 -94
- package/lib/core/hooks/__mocks__/use-time-ago.d.ts +0 -3
- package/lib/core/hooks/__mocks__/use-time-ago.js +0 -8
- package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.d.ts +0 -10
- package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.js +0 -56
- package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.d.ts +0 -1
- package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.js +0 -35
- /package/lib/components/Markdown/styles/{baseTable.d.ts → base-table.d.ts} +0 -0
- /package/lib/components/Markdown/styles/{headingAnchor.d.ts → heading-anchor.d.ts} +0 -0
- /package/lib/core/hoc/{typedMemo.d.ts → typed-memo.d.ts} +0 -0
- /package/lib/core/hooks/catalog/{useCatalogEntities.d.ts → use-catalog-entities.d.ts} +0 -0
- /package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.d.ts → use-catalog-table-header-cell-actions.d.ts} +0 -0
- /package/lib/core/hooks/catalog/{useCatalogTableViewRow.d.ts → use-catalog-table-view-row.d.ts} +0 -0
- /package/lib/core/hooks/catalog/{useGraph.d.ts → use-graph.d.ts} +0 -0
- /package/lib/core/utils/{dynamic.d.ts → Dynamic.d.ts} +0 -0
- /package/lib/core/utils/{get-file-icon.d.ts → GetFileIcon.d.ts} +0 -0
- /package/lib/ext/{useConfigureReplay.d.ts → use-configure-replay.d.ts} +0 -0
- /package/src/components/Markdown/styles/{baseTable.ts → base-table.ts} +0 -0
- /package/src/components/Markdown/styles/{headingAnchor.ts → heading-anchor.ts} +0 -0
- /package/src/components/Panel/{PanelBody.ts → PanelBody.tsx} +0 -0
- /package/src/components/Panel/{PanelHeader.ts → PanelHeader.tsx} +0 -0
- /package/src/components/Panel/{PanelHeaderTitle.ts → PanelHeaderTitle.tsx} +0 -0
- /package/src/components/StatusCode/{StatusCode.ts → StatusCode.tsx} +0 -0
- /package/src/components/Typography/{CompactTypography.ts → CompactTypography.tsx} +0 -0
- /package/src/components/Typography/{Emphasis.ts → Emphasis.tsx} +0 -0
- /package/src/components/Typography/{H1.ts → H1.tsx} +0 -0
- /package/src/components/Typography/{H2.ts → H2.tsx} +0 -0
- /package/src/components/Typography/{H3.ts → H3.tsx} +0 -0
- /package/src/components/Typography/{H4.ts → H4.tsx} +0 -0
- /package/src/components/Typography/{SectionHeader.ts → SectionHeader.tsx} +0 -0
- /package/src/components/Typography/{Typography.ts → Typography.tsx} +0 -0
- /package/src/core/hoc/{typedMemo.ts → typed-memo.ts} +0 -0
- /package/src/core/hooks/catalog/{useCatalogEntities.ts → use-catalog-entities.ts} +0 -0
- /package/src/core/hooks/catalog/{useCatalogTableHeaderCellActions.ts → use-catalog-table-header-cell-actions.ts} +0 -0
- /package/src/core/hooks/catalog/{useCatalogTableViewRow.ts → use-catalog-table-view-row.ts} +0 -0
- /package/src/core/utils/{dynamic.tsx → Dynamic.tsx} +0 -0
- /package/src/core/utils/{get-file-icon.tsx → GetFileIcon.tsx} +0 -0
|
@@ -6,15 +6,20 @@ const react_1 = require("react");
|
|
|
6
6
|
const react_router_dom_1 = require("react-router-dom");
|
|
7
7
|
const MORE_BUTTON_WIDTH = 80;
|
|
8
8
|
const TABS_GAP = 8;
|
|
9
|
-
function useTabs({ activeTab, onTabChange, totalTabs, containerRef }) {
|
|
9
|
+
function useTabs({ activeTab, onTabChange, totalTabs, containerRef, }) {
|
|
10
10
|
const [tabs, setTabs] = (0, react_1.useState)({
|
|
11
11
|
visible: Array.from({ length: totalTabs }, (_, i) => i),
|
|
12
12
|
overflow: [],
|
|
13
13
|
});
|
|
14
|
+
const [isReady, setIsReady] = (0, react_1.useState)(false);
|
|
15
|
+
const isFirstCalculation = (0, react_1.useRef)(true);
|
|
14
16
|
const tabRefs = (0, react_1.useRef)([]);
|
|
15
17
|
const tabWidthsRef = (0, react_1.useRef)([]);
|
|
16
18
|
const tabLabelsRef = (0, react_1.useRef)([]);
|
|
17
|
-
const
|
|
19
|
+
const activeTabRef = (0, react_1.useRef)(activeTab);
|
|
20
|
+
const calculateVisibleTabsRef = (0, react_1.useRef)(null);
|
|
21
|
+
// Synchronously update ref before any callbacks or effects run
|
|
22
|
+
activeTabRef.current = activeTab;
|
|
18
23
|
const setTabRef = (0, react_1.useCallback)((element, index) => {
|
|
19
24
|
tabRefs.current[index] = element;
|
|
20
25
|
const width = element === null || element === void 0 ? void 0 : element.offsetWidth;
|
|
@@ -25,18 +30,25 @@ function useTabs({ activeTab, onTabChange, totalTabs, containerRef }) {
|
|
|
25
30
|
if (label) {
|
|
26
31
|
tabLabelsRef.current[index] = label;
|
|
27
32
|
}
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
// Trigger calculation once all tabs are registered
|
|
34
|
+
if (isFirstCalculation.current &&
|
|
35
|
+
tabWidthsRef.current.length >= totalTabs &&
|
|
36
|
+
tabLabelsRef.current.length >= totalTabs &&
|
|
37
|
+
calculateVisibleTabsRef.current) {
|
|
38
|
+
requestAnimationFrame(calculateVisibleTabsRef.current);
|
|
39
|
+
}
|
|
40
|
+
}, [totalTabs]);
|
|
41
|
+
const focusTab = (0, react_1.useCallback)((index) => {
|
|
30
42
|
const currentElement = tabRefs.current[index];
|
|
31
43
|
currentElement === null || currentElement === void 0 ? void 0 : currentElement.focus();
|
|
32
|
-
};
|
|
44
|
+
}, []);
|
|
33
45
|
const onTabSelect = (0, react_1.useCallback)((index) => {
|
|
34
46
|
var _a;
|
|
35
47
|
focusTab(index);
|
|
36
48
|
const label = (_a = tabRefs.current[index]) === null || _a === void 0 ? void 0 : _a.getAttribute('data-label');
|
|
37
49
|
if (label)
|
|
38
50
|
onTabChange(label);
|
|
39
|
-
}, [onTabChange]);
|
|
51
|
+
}, [onTabChange, focusTab]);
|
|
40
52
|
const handleKeyboard = (0, react_1.useCallback)((event, index) => {
|
|
41
53
|
let newIndex = index;
|
|
42
54
|
if (event.key === 'ArrowRight') {
|
|
@@ -59,109 +71,155 @@ function useTabs({ activeTab, onTabChange, totalTabs, containerRef }) {
|
|
|
59
71
|
onTabSelect(newIndex);
|
|
60
72
|
}, [totalTabs, onTabSelect]);
|
|
61
73
|
const replaceLastVisibleTabWithClickedOverflowTab = (0, react_1.useCallback)((clickedIndex) => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
newOverflowTabs.unshift(lastVisible);
|
|
71
|
-
newVisibleTabs.splice(newVisibleTabs.length - 1, 1);
|
|
72
|
-
newVisibleTabs.unshift(clickedIndex);
|
|
73
|
-
}
|
|
74
|
-
setTabs({
|
|
75
|
-
visible: newVisibleTabs,
|
|
76
|
-
overflow: newOverflowTabs,
|
|
74
|
+
setTabs((prevTabs) => {
|
|
75
|
+
const { visible: visibleTabs, overflow: overflowTabs } = prevTabs;
|
|
76
|
+
const sortedVisible = [...visibleTabs].sort((a, b) => a - b);
|
|
77
|
+
const lastVisible = sortedVisible[sortedVisible.length - 1];
|
|
78
|
+
return {
|
|
79
|
+
visible: visibleTabs.map((idx) => (idx === lastVisible ? clickedIndex : idx)),
|
|
80
|
+
overflow: overflowTabs.map((idx) => (idx === clickedIndex ? lastVisible : idx)),
|
|
81
|
+
};
|
|
77
82
|
});
|
|
78
|
-
}, [
|
|
83
|
+
}, []);
|
|
79
84
|
const onTabClick = (0, react_1.useCallback)((labelOrIndex) => {
|
|
80
85
|
const clickedIndex = typeof labelOrIndex === 'string'
|
|
81
86
|
? tabRefs.current.findIndex((ref) => (ref === null || ref === void 0 ? void 0 : ref.getAttribute('data-label')) === labelOrIndex)
|
|
82
87
|
: labelOrIndex;
|
|
83
88
|
if (clickedIndex === -1)
|
|
84
89
|
return;
|
|
85
|
-
const hasOverflowTabs = tabs.overflow.length > 0;
|
|
86
|
-
if (hasOverflowTabs && !allTabsHidden && tabs.overflow.includes(clickedIndex)) {
|
|
87
|
-
replaceLastVisibleTabWithClickedOverflowTab(clickedIndex);
|
|
88
|
-
}
|
|
89
90
|
const label = tabLabelsRef.current[clickedIndex];
|
|
90
|
-
if (label)
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
if (!label)
|
|
92
|
+
return;
|
|
93
|
+
// If this is an overflow tab, replace it with a visible one
|
|
94
|
+
if (tabs.overflow.includes(clickedIndex)) {
|
|
95
|
+
replaceLastVisibleTabWithClickedOverflowTab(clickedIndex);
|
|
93
96
|
}
|
|
94
|
-
|
|
97
|
+
onTabChange(label);
|
|
98
|
+
focusTab(clickedIndex);
|
|
99
|
+
}, [tabs.overflow, onTabChange, replaceLastVisibleTabWithClickedOverflowTab, focusTab]);
|
|
95
100
|
const calculateVisibleTabs = (0, react_1.useCallback)(() => {
|
|
96
101
|
const container = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current;
|
|
97
102
|
if (!container)
|
|
98
103
|
return;
|
|
99
104
|
const containerWidth = container.offsetWidth;
|
|
100
105
|
const tabWidths = tabWidthsRef.current;
|
|
101
|
-
const
|
|
102
|
-
//
|
|
106
|
+
const tabLabels = tabLabelsRef.current;
|
|
107
|
+
// Wait until all tabs are registered before calculating
|
|
108
|
+
if (tabWidths.length < totalTabs || tabLabels.length < totalTabs) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
// Check if container has proper width (not zero)
|
|
112
|
+
if (containerWidth === 0) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
// Find active tab index by label in tabLabelsRef, not by DOM element
|
|
116
|
+
// because tab might not be rendered if it's in overflow
|
|
117
|
+
const activeTabIndex = tabLabels.findIndex((label) => label === activeTabRef.current);
|
|
103
118
|
let tabsWidth = activeTabIndex !== -1 ? tabWidths[activeTabIndex] : 0;
|
|
104
|
-
const
|
|
105
|
-
const
|
|
119
|
+
const visibleTabs = activeTabIndex !== -1 ? [activeTabIndex] : [];
|
|
120
|
+
const overflowTabs = [];
|
|
106
121
|
for (let i = 0; i < tabWidths.length; i++) {
|
|
107
|
-
|
|
108
|
-
if (i === activeTabIndex) {
|
|
122
|
+
if (i === activeTabIndex)
|
|
109
123
|
continue;
|
|
110
|
-
}
|
|
111
124
|
const tabWidthWithGap = tabWidths[i] + TABS_GAP;
|
|
112
125
|
const projectedWidth = tabsWidth + tabWidthWithGap;
|
|
113
126
|
if (projectedWidth <= containerWidth) {
|
|
114
|
-
|
|
127
|
+
visibleTabs.push(i);
|
|
115
128
|
tabsWidth += tabWidthWithGap;
|
|
116
129
|
}
|
|
117
130
|
else {
|
|
118
|
-
|
|
131
|
+
overflowTabs.push(i);
|
|
119
132
|
}
|
|
120
133
|
}
|
|
121
|
-
if (
|
|
134
|
+
if (overflowTabs.length > 0) {
|
|
122
135
|
tabsWidth += MORE_BUTTON_WIDTH;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
if (removed !== undefined) {
|
|
127
|
-
|
|
136
|
+
while (tabsWidth > containerWidth && visibleTabs.length > 1) {
|
|
137
|
+
const removed = visibleTabs.pop();
|
|
138
|
+
// Never remove the active tab - it should always stay visible or be the last one
|
|
139
|
+
if (removed !== undefined && removed !== activeTabIndex) {
|
|
140
|
+
overflowTabs.unshift(removed);
|
|
128
141
|
tabsWidth -= tabWidths[removed];
|
|
129
142
|
}
|
|
143
|
+
else if (removed === activeTabIndex) {
|
|
144
|
+
// Put it back if we accidentally removed the active tab
|
|
145
|
+
visibleTabs.push(removed);
|
|
146
|
+
break;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// If even with only the active tab visible, it doesn't fit with More button,
|
|
150
|
+
// move all tabs to overflow (show only dropdown)
|
|
151
|
+
if (tabsWidth > containerWidth && visibleTabs.length === 1) {
|
|
152
|
+
overflowTabs.unshift(...visibleTabs);
|
|
153
|
+
visibleTabs.length = 0;
|
|
130
154
|
}
|
|
131
155
|
}
|
|
132
156
|
setTabs({
|
|
133
|
-
visible,
|
|
134
|
-
overflow,
|
|
157
|
+
visible: visibleTabs,
|
|
158
|
+
overflow: overflowTabs,
|
|
135
159
|
});
|
|
136
|
-
|
|
160
|
+
// Set ready state on first calculation
|
|
161
|
+
if (isFirstCalculation.current) {
|
|
162
|
+
isFirstCalculation.current = false;
|
|
163
|
+
setIsReady(true);
|
|
164
|
+
}
|
|
165
|
+
}, [containerRef, totalTabs]);
|
|
166
|
+
// Store calculateVisibleTabs in ref for use in setTabRef
|
|
167
|
+
calculateVisibleTabsRef.current = calculateVisibleTabs;
|
|
168
|
+
// Reset isFirstCalculation when totalTabs changes (new page/tabs)
|
|
137
169
|
(0, react_1.useEffect)(() => {
|
|
138
|
-
|
|
170
|
+
isFirstCalculation.current = true;
|
|
171
|
+
setIsReady(false);
|
|
172
|
+
// Clear refs so we wait for new tabs to register
|
|
173
|
+
tabWidthsRef.current = [];
|
|
174
|
+
tabLabelsRef.current = [];
|
|
175
|
+
}, [totalTabs]);
|
|
176
|
+
// Call calculateVisibleTabs on first render and resize
|
|
177
|
+
(0, react_1.useEffect)(() => {
|
|
178
|
+
const container = containerRef === null || containerRef === void 0 ? void 0 : containerRef.current;
|
|
179
|
+
if (!container)
|
|
139
180
|
return;
|
|
140
|
-
let resizeTimeout =
|
|
181
|
+
let resizeTimeout = null;
|
|
182
|
+
// Use ResizeObserver to wait until container has proper size
|
|
183
|
+
const resizeObserver = new ResizeObserver(() => {
|
|
184
|
+
if (resizeTimeout)
|
|
185
|
+
cancelAnimationFrame(resizeTimeout);
|
|
186
|
+
resizeTimeout = requestAnimationFrame(calculateVisibleTabs);
|
|
187
|
+
});
|
|
188
|
+
resizeObserver.observe(container);
|
|
141
189
|
const handleResize = () => {
|
|
142
|
-
if (resizeTimeout)
|
|
190
|
+
if (resizeTimeout)
|
|
143
191
|
cancelAnimationFrame(resizeTimeout);
|
|
144
|
-
}
|
|
145
192
|
resizeTimeout = requestAnimationFrame(calculateVisibleTabs);
|
|
146
193
|
};
|
|
147
194
|
window.addEventListener('resize', handleResize);
|
|
148
195
|
return () => {
|
|
196
|
+
resizeObserver.disconnect();
|
|
149
197
|
window.removeEventListener('resize', handleResize);
|
|
150
|
-
|
|
198
|
+
if (resizeTimeout)
|
|
199
|
+
cancelAnimationFrame(resizeTimeout);
|
|
151
200
|
};
|
|
152
201
|
}, [containerRef, totalTabs, calculateVisibleTabs]);
|
|
202
|
+
// Recalculate when activeTab changes to ensure it's visible
|
|
203
|
+
(0, react_1.useEffect)(() => {
|
|
204
|
+
if (!(containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || isFirstCalculation.current)
|
|
205
|
+
return;
|
|
206
|
+
requestAnimationFrame(calculateVisibleTabs);
|
|
207
|
+
}, [activeTab, containerRef, calculateVisibleTabs]);
|
|
153
208
|
return {
|
|
154
209
|
setTabRef,
|
|
155
210
|
onTabClick,
|
|
156
211
|
handleKeyboard,
|
|
157
212
|
visibleTabs: tabs.visible,
|
|
158
213
|
overflowTabs: tabs.overflow,
|
|
159
|
-
|
|
214
|
+
isReady,
|
|
160
215
|
};
|
|
161
216
|
}
|
|
162
217
|
const useActiveTab = ({ initialTab, tabsId }) => {
|
|
163
218
|
const [searchParams, setSearchParams] = (0, react_router_dom_1.useSearchParams)();
|
|
164
|
-
const
|
|
219
|
+
const initialTabValue = (0, react_1.useMemo)(() => getInitialTab({ initialTab, searchParams, tabsId }),
|
|
220
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
221
|
+
[]);
|
|
222
|
+
const [activeTab, setActiveTab] = (0, react_1.useState)(initialTabValue);
|
|
165
223
|
const prevActiveTabRef = (0, react_1.useRef)(activeTab);
|
|
166
224
|
(0, react_1.useEffect)(() => {
|
|
167
225
|
const hasActiveTabChanged = prevActiveTabRef.current !== activeTab;
|
|
@@ -174,10 +232,10 @@ const useActiveTab = ({ initialTab, tabsId }) => {
|
|
|
174
232
|
return searchParams;
|
|
175
233
|
});
|
|
176
234
|
}, [activeTab, setSearchParams, tabsId]);
|
|
177
|
-
return {
|
|
235
|
+
return (0, react_1.useMemo)(() => ({
|
|
178
236
|
activeTab,
|
|
179
237
|
setActiveTab,
|
|
180
|
-
};
|
|
238
|
+
}), [activeTab]);
|
|
181
239
|
};
|
|
182
240
|
exports.useActiveTab = useActiveTab;
|
|
183
241
|
const getInitialTab = ({ initialTab, searchParams, tabsId }) => {
|
|
@@ -36,20 +36,22 @@ export declare const useTelemetryFallback: () => {
|
|
|
36
36
|
sendLanguagePickerLocaleChangedMessage: () => void;
|
|
37
37
|
sendSearchOpenedMessage: () => void;
|
|
38
38
|
sendSearchQueryMessage: () => void;
|
|
39
|
+
sendSearchAiOpenedMessage: () => void;
|
|
39
40
|
sendSearchAIQueryMessage: () => void;
|
|
41
|
+
sendSearchAIFeedbackMessage: () => void;
|
|
40
42
|
sendFeedbackMessage: () => void;
|
|
41
43
|
sendSearchResultClickedMessage: () => void;
|
|
42
44
|
sendRedirectMessage: () => void;
|
|
43
45
|
sendOpenapiDocsMessage: () => void;
|
|
44
46
|
sendCopyCodeSnippetClickedMessage: () => void;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
sendViewedMessage: () => void;
|
|
48
|
+
sendPerformanceMetricsMessage: () => void;
|
|
49
|
+
sendDownloadDefinitionClickedMessage: () => void;
|
|
50
|
+
sendSelectLanguageClickedMessage: () => void;
|
|
51
|
+
sendExpandCollapseAllClickedMessage: () => void;
|
|
52
|
+
sendSwitchServersClickedMessage: () => void;
|
|
53
|
+
sendExamplesSwitcherClickedMessage: () => void;
|
|
54
|
+
sendTryItOpenedMessage: () => void;
|
|
53
55
|
sendAsyncapiDocsViewedMessage: () => void;
|
|
54
56
|
sendAsyncapiDocsPerformanceMetricsMessage: () => void;
|
|
55
57
|
sendAsyncapiDocsSwitchMessageClickedMessage: () => void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useTelemetryFallback = void 0;
|
|
4
|
+
// eslint-disable-next-line no-warning-comments
|
|
4
5
|
// TODO we need to create some common way to do this.
|
|
5
6
|
const useTelemetryFallback = () => ({
|
|
6
7
|
send: () => { },
|
|
@@ -40,20 +41,22 @@ const useTelemetryFallback = () => ({
|
|
|
40
41
|
sendLanguagePickerLocaleChangedMessage: () => { },
|
|
41
42
|
sendSearchOpenedMessage: () => { },
|
|
42
43
|
sendSearchQueryMessage: () => { },
|
|
44
|
+
sendSearchAiOpenedMessage: () => { },
|
|
43
45
|
sendSearchAIQueryMessage: () => { },
|
|
46
|
+
sendSearchAIFeedbackMessage: () => { },
|
|
44
47
|
sendFeedbackMessage: () => { },
|
|
45
48
|
sendSearchResultClickedMessage: () => { },
|
|
46
49
|
sendRedirectMessage: () => { },
|
|
47
50
|
sendOpenapiDocsMessage: () => { },
|
|
48
51
|
sendCopyCodeSnippetClickedMessage: () => { },
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
52
|
+
sendViewedMessage: () => { },
|
|
53
|
+
sendPerformanceMetricsMessage: () => { },
|
|
54
|
+
sendDownloadDefinitionClickedMessage: () => { },
|
|
55
|
+
sendSelectLanguageClickedMessage: () => { },
|
|
56
|
+
sendExpandCollapseAllClickedMessage: () => { },
|
|
57
|
+
sendSwitchServersClickedMessage: () => { },
|
|
58
|
+
sendExamplesSwitcherClickedMessage: () => { },
|
|
59
|
+
sendTryItOpenedMessage: () => { },
|
|
57
60
|
sendAsyncapiDocsViewedMessage: () => { },
|
|
58
61
|
sendAsyncapiDocsPerformanceMetricsMessage: () => { },
|
|
59
62
|
sendAsyncapiDocsSwitchMessageClickedMessage: () => { },
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.useThemeConfig = useThemeConfig;
|
|
4
4
|
const react_1 = require("react");
|
|
5
5
|
const ThemeDataContext_1 = require("../contexts/ThemeDataContext");
|
|
6
|
+
// eslint-disable-next-line no-warning-comments
|
|
6
7
|
// TODO: rename and additionally export as alias for backward compatibility
|
|
7
8
|
function useThemeConfig(useProductConfig = true) {
|
|
8
9
|
const context = (0, react_1.useContext)(ThemeDataContext_1.ThemeDataContext);
|
|
@@ -20,6 +20,7 @@ const fallbacks = {
|
|
|
20
20
|
usePageData: () => null,
|
|
21
21
|
usePageProps: () => ({}),
|
|
22
22
|
usePageSharedData: () => null,
|
|
23
|
+
useMcpData: () => ({ docs: { enabled: false } }),
|
|
23
24
|
};
|
|
24
25
|
const useThemeHooks = () => {
|
|
25
26
|
const context = (0, react_1.useContext)(ThemeDataContext_1.ThemeDataContext);
|
|
@@ -2,14 +2,16 @@ export type { UserClaims } from '../types/user-claims';
|
|
|
2
2
|
export type { OperationParameter, ParameterHighlight } from '../types/search';
|
|
3
3
|
export type { TFunction, TOptions } from '../types/l10n';
|
|
4
4
|
export type { SelectOption, SelectProps } from '../types/select';
|
|
5
|
+
export type { SegmentedOption, SegmentedProps } from '../types/segmented';
|
|
5
6
|
export { IS_BROWSER } from '../utils/dom';
|
|
6
7
|
export { addLeadingSlash, removeLeadingSlash, getPathPrefix, combineUrls, addTrailingSlash, withPathPrefix, } from '../utils/urls';
|
|
7
8
|
export { capitalize } from '../utils/string';
|
|
8
|
-
export { typedMemo } from '../hoc/
|
|
9
|
+
export { typedMemo } from '../hoc/typed-memo';
|
|
9
10
|
export { useMount } from '../hooks/use-mount';
|
|
10
11
|
export { GlobalStyle } from '../styles/global';
|
|
11
12
|
export { breakpoints } from '../utils/media-css';
|
|
12
13
|
export { isPrimitive } from '../utils/args-typecheck';
|
|
14
|
+
export { getOperationColor } from '../utils/get-operation-color';
|
|
13
15
|
export { ClipboardService } from '../utils/clipboard-service';
|
|
14
16
|
export { getUserAgent } from '../utils/get-user-agent';
|
|
15
17
|
export { useFocusTrap } from '../hooks/use-focus-trap';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ThemeDataContext = exports.isObject = exports.isNotNull = exports.isString = exports.isUndefined = exports.SecurityVariablesEnvSuffix = exports.useDialogHotKeys = exports.useSearchDialog = exports.useModalScrollLock = exports.useActiveSectionId = exports.useOutsideClick = exports.useThemeHooks = exports.useFocusTrap = exports.getUserAgent = exports.ClipboardService = exports.isPrimitive = exports.breakpoints = exports.GlobalStyle = exports.useMount = exports.typedMemo = exports.capitalize = exports.withPathPrefix = exports.addTrailingSlash = exports.combineUrls = exports.getPathPrefix = exports.removeLeadingSlash = exports.addLeadingSlash = exports.IS_BROWSER = void 0;
|
|
3
|
+
exports.ThemeDataContext = exports.isObject = exports.isNotNull = exports.isString = exports.isUndefined = exports.SecurityVariablesEnvSuffix = exports.useDialogHotKeys = exports.useSearchDialog = exports.useModalScrollLock = exports.useActiveSectionId = exports.useOutsideClick = exports.useThemeHooks = exports.useFocusTrap = exports.getUserAgent = exports.ClipboardService = exports.getOperationColor = exports.isPrimitive = exports.breakpoints = exports.GlobalStyle = exports.useMount = exports.typedMemo = exports.capitalize = exports.withPathPrefix = exports.addTrailingSlash = exports.combineUrls = exports.getPathPrefix = exports.removeLeadingSlash = exports.addLeadingSlash = exports.IS_BROWSER = void 0;
|
|
4
4
|
var dom_1 = require("../utils/dom");
|
|
5
5
|
Object.defineProperty(exports, "IS_BROWSER", { enumerable: true, get: function () { return dom_1.IS_BROWSER; } });
|
|
6
6
|
var urls_1 = require("../utils/urls");
|
|
@@ -12,8 +12,8 @@ Object.defineProperty(exports, "addTrailingSlash", { enumerable: true, get: func
|
|
|
12
12
|
Object.defineProperty(exports, "withPathPrefix", { enumerable: true, get: function () { return urls_1.withPathPrefix; } });
|
|
13
13
|
var string_1 = require("../utils/string");
|
|
14
14
|
Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return string_1.capitalize; } });
|
|
15
|
-
var
|
|
16
|
-
Object.defineProperty(exports, "typedMemo", { enumerable: true, get: function () { return
|
|
15
|
+
var typed_memo_1 = require("../hoc/typed-memo");
|
|
16
|
+
Object.defineProperty(exports, "typedMemo", { enumerable: true, get: function () { return typed_memo_1.typedMemo; } });
|
|
17
17
|
var use_mount_1 = require("../hooks/use-mount");
|
|
18
18
|
Object.defineProperty(exports, "useMount", { enumerable: true, get: function () { return use_mount_1.useMount; } });
|
|
19
19
|
var global_1 = require("../styles/global");
|
|
@@ -22,6 +22,8 @@ var media_css_1 = require("../utils/media-css");
|
|
|
22
22
|
Object.defineProperty(exports, "breakpoints", { enumerable: true, get: function () { return media_css_1.breakpoints; } });
|
|
23
23
|
var args_typecheck_1 = require("../utils/args-typecheck");
|
|
24
24
|
Object.defineProperty(exports, "isPrimitive", { enumerable: true, get: function () { return args_typecheck_1.isPrimitive; } });
|
|
25
|
+
var get_operation_color_1 = require("../utils/get-operation-color");
|
|
26
|
+
Object.defineProperty(exports, "getOperationColor", { enumerable: true, get: function () { return get_operation_color_1.getOperationColor; } });
|
|
25
27
|
var clipboard_service_1 = require("../utils/clipboard-service");
|
|
26
28
|
Object.defineProperty(exports, "ClipboardService", { enumerable: true, get: function () { return clipboard_service_1.ClipboardService; } });
|
|
27
29
|
var get_user_agent_1 = require("../utils/get-user-agent");
|
package/lib/core/styles/dark.js
CHANGED
|
@@ -37,6 +37,10 @@ const replayDarkMode = (0, styled_components_1.css) `
|
|
|
37
37
|
--replay-server-variable-bg-color-hover: rgba(31, 10, 144, 0.4); // @presenter Color
|
|
38
38
|
--replay-path-parameter-bg-color-hover: rgba(5, 88, 99, 0.4); // @presenter Color
|
|
39
39
|
|
|
40
|
+
--replay-runtime-expression-color: rgba(147, 166, 249, 1); // @presenter Color
|
|
41
|
+
--replay-runtime-expression-bg-color: rgba(147, 166, 249, 0.16); // @presenter Color
|
|
42
|
+
--replay-operators-color: rgba(168, 143, 88, 1); // @presenter Color
|
|
43
|
+
|
|
40
44
|
// @tokens End
|
|
41
45
|
`;
|
|
42
46
|
exports.darkMode = (0, styled_components_1.css) `
|
|
@@ -1203,6 +1203,10 @@ const replay = (0, styled_components_1.css) `
|
|
|
1203
1203
|
--replay-server-variable-bg-color-hover: rgba(119, 45, 240, 0.16); // @presenter Color
|
|
1204
1204
|
--replay-path-parameter-bg-color-hover: rgba(4, 117, 161, 0.16); // @presenter Color
|
|
1205
1205
|
|
|
1206
|
+
--replay-runtime-expression-color: rgba(54, 90, 249, 1); // @presenter Color
|
|
1207
|
+
--replay-runtime-expression-bg-color: rgba(54, 90, 249, 0.08); // @presenter Color
|
|
1208
|
+
--replay-operators-color: rgba(193, 142, 31, 1); // @presenter Color
|
|
1209
|
+
|
|
1206
1210
|
// @tokens End
|
|
1207
1211
|
`;
|
|
1208
1212
|
exports.styles = (0, styled_components_1.css) `
|
|
@@ -1216,6 +1220,7 @@ exports.styles = (0, styled_components_1.css) `
|
|
|
1216
1220
|
${variables_5.breadcrumbs}
|
|
1217
1221
|
${variables_19.button}
|
|
1218
1222
|
${variables_20.aiAssistantButton}
|
|
1223
|
+
${variables_20.connectMCPButton}
|
|
1219
1224
|
${variables_38.cards}
|
|
1220
1225
|
${variables_8.catalog}
|
|
1221
1226
|
${variables_10.catalogClassic}
|
|
@@ -60,7 +60,7 @@ export type ThemeHooks = {
|
|
|
60
60
|
breadcrumbs: BreadcrumbItem[];
|
|
61
61
|
currentItemSiblings?: BreadcrumbItem[];
|
|
62
62
|
};
|
|
63
|
-
useSearch: (product?: string, autoSearchDisabled?: boolean) => {
|
|
63
|
+
useSearch: (product?: string, autoSearchDisabled?: boolean, searchSessionId?: string) => {
|
|
64
64
|
query: string;
|
|
65
65
|
setQuery: React.Dispatch<React.SetStateAction<string>>;
|
|
66
66
|
filter: SearchFilterItem[];
|
|
@@ -78,7 +78,7 @@ export type ThemeHooks = {
|
|
|
78
78
|
};
|
|
79
79
|
useAiSearch: (options?: {
|
|
80
80
|
filter?: SearchFilterItem[];
|
|
81
|
-
}) => {
|
|
81
|
+
}, searchSessionId?: string) => {
|
|
82
82
|
askQuestion: (question: string, history?: AiSearchConversationItem[]) => void;
|
|
83
83
|
isGeneratingResponse: boolean;
|
|
84
84
|
question: string;
|
|
@@ -98,6 +98,12 @@ export type ThemeHooks = {
|
|
|
98
98
|
setSearchFacet: React.Dispatch<React.SetStateAction<SearchFacet | null>>;
|
|
99
99
|
setSearchFacetQuery: React.Dispatch<React.SetStateAction<SearchFacetQuery | null>>;
|
|
100
100
|
};
|
|
101
|
+
useMcpData: () => {
|
|
102
|
+
docs: {
|
|
103
|
+
enabled: boolean;
|
|
104
|
+
name?: string;
|
|
105
|
+
};
|
|
106
|
+
};
|
|
101
107
|
useSidebarItems: (activeVersion?: Version | null) => {
|
|
102
108
|
currentItems: ItemState[];
|
|
103
109
|
allSidebarItems: ItemState[];
|
|
@@ -1,19 +1,21 @@
|
|
|
1
|
-
export * from './breadcrumb';
|
|
2
|
-
export * from './catalog';
|
|
3
|
-
export * from './l10n';
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
1
|
+
export type * from './breadcrumb';
|
|
2
|
+
export type * from './catalog';
|
|
3
|
+
export type * from './l10n';
|
|
4
|
+
export type * from './mcp';
|
|
5
|
+
export type * from './feedback';
|
|
6
|
+
export type * from './hooks';
|
|
7
|
+
export type * from './markdown';
|
|
8
|
+
export type * from './navbar';
|
|
8
9
|
export * from './search';
|
|
9
|
-
export * from './select';
|
|
10
|
-
export * from './sidebar';
|
|
11
|
-
export * from './filter';
|
|
12
|
-
export * from './user-menu';
|
|
13
|
-
export * from './user-claims';
|
|
14
|
-
export * from './common';
|
|
15
|
-
export * from './open-api-server';
|
|
16
|
-
export * from './marker';
|
|
17
|
-
export * from './code-walkthrough';
|
|
18
|
-
export * from './page-actions';
|
|
19
|
-
export * from './open-api-info';
|
|
10
|
+
export type * from './select';
|
|
11
|
+
export type * from './sidebar';
|
|
12
|
+
export type * from './filter';
|
|
13
|
+
export type * from './user-menu';
|
|
14
|
+
export type * from './user-claims';
|
|
15
|
+
export type * from './common';
|
|
16
|
+
export type * from './open-api-server';
|
|
17
|
+
export type * from './marker';
|
|
18
|
+
export type * from './code-walkthrough';
|
|
19
|
+
export type * from './page-actions';
|
|
20
|
+
export type * from './open-api-info';
|
|
21
|
+
export type * from './segmented';
|
package/lib/core/types/index.js
CHANGED
|
@@ -14,23 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./breadcrumb"), exports);
|
|
18
|
-
__exportStar(require("./catalog"), exports);
|
|
19
|
-
__exportStar(require("./l10n"), exports);
|
|
20
|
-
__exportStar(require("./feedback"), exports);
|
|
21
|
-
__exportStar(require("./hooks"), exports);
|
|
22
|
-
__exportStar(require("./markdown"), exports);
|
|
23
|
-
__exportStar(require("./navbar"), exports);
|
|
24
17
|
__exportStar(require("./search"), exports);
|
|
25
|
-
__exportStar(require("./select"), exports);
|
|
26
|
-
__exportStar(require("./sidebar"), exports);
|
|
27
|
-
__exportStar(require("./filter"), exports);
|
|
28
|
-
__exportStar(require("./user-menu"), exports);
|
|
29
|
-
__exportStar(require("./user-claims"), exports);
|
|
30
|
-
__exportStar(require("./common"), exports);
|
|
31
|
-
__exportStar(require("./open-api-server"), exports);
|
|
32
|
-
__exportStar(require("./marker"), exports);
|
|
33
|
-
__exportStar(require("./code-walkthrough"), exports);
|
|
34
|
-
__exportStar(require("./page-actions"), exports);
|
|
35
|
-
__exportStar(require("./open-api-info"), exports);
|
|
36
18
|
//# sourceMappingURL=index.js.map
|
package/lib/core/types/l10n.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
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.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.filter.title' | 'search.filter.reset' | 'search.filter.field.reset' | 'search.ai.welcomeText' | 'search.ai.newConversation' | 'search.ai.backToSearch' | 'search.ai.placeholder' | 'search.ai.generatingResponse' | 'search.ai.followUpQuestion' | 'search.ai.suggestionsTitle' | 'search.ai.thinkingText' | 'search.ai.resourcesFound' | 'search.ai.resourcesFound.basedOn' | 'search.ai.resourcesFound.resources' | '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' | 'aiAssistant.trigger' | 'toc.header' | 'footer.copyrightText' | 'page.homeButton' | 'page.forbidden.title' | 'page.notFound.title' | 'page.notFound.description' | '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' | '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.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' | 'userMenu.login' | 'userMenu.logout' | 'userMenu.devOnboardingLabel' | 'mobileMenu.mainMenu' | 'mobileMenu.previous' | 'mobileMenu.products' | 'mobileMenu.version' | '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' | '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' | '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.servers.title' | 'openapi.operations' | 'openapi.webhooks' | 'openapi.description' | 'openapi.badges.deprecated' | 'openapi.badges.required' | 'openapi.badges.webhook' | 'openapi.request' | 'openapi.path' | 'openapi.query' | '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.hideExample' | 'openapi.showExample' | 'openapi.expandAll' | 'openapi.collapseAll' | 'openapi.viewSecurityDetails' | 'openapi.noResponseExample' | 'openapi.discriminator.searchPlaceholder' | 'openapi.discriminator.searchNoResults' | 'openapi.noResponseContent' | 'openapi.noRequestPayload' | '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' | 'asyncapi.download.description.title' | 'asyncapi.info.title' | 'graphql.queries' | 'graphql.mutations' | 'graphql.subscriptions' | 'graphql.directives' | 'graphql.objects' | 'graphql.interfaces' | 'graphql.unions' | 'graphql.enums' | 'graphql.inputs' | 'graphql.scalars' | '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.nonNull' | 'graphql.required' | 'graphql.deprecated' | 'graphql.variables' | 'graphql.querySample' | 'graphql.mutationSample' | 'graphql.subscriptionSample' | 'graphql.responseSample' | 'graphql.locations' | 'graphql.sample' | 'graphql.referenced' | 'graphql.content.fragment' | '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';
|
|
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.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.filter.title' | 'search.filter.reset' | 'search.filter.field.reset' | 'search.ai.welcomeText' | 'search.ai.newConversation' | 'search.ai.backToSearch' | 'search.ai.back' | 'search.ai.placeholder' | 'search.ai.generatingResponse' | 'search.ai.followUpQuestion' | '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.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.searchItem.deprecated' | 'search.groups.all' | 'search.filter.field.footer' | 'aiAssistant.trigger' | 'toc.header' | 'footer.copyrightText' | 'page.homeButton' | 'page.forbidden.title' | 'page.notFound.title' | 'page.notFound.description' | '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.tags.more' | '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' | '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.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' | 'userMenu.login' | 'userMenu.logout' | 'userMenu.devOnboardingLabel' | 'mobileMenu.mainMenu' | 'mobileMenu.previous' | 'mobileMenu.products' | 'mobileMenu.version' | '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.copyConfig' | 'page.actions.connectMcp.copyConfigDescription' | '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' | '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.servers.title' | 'openapi.operations' | 'openapi.webhooks' | 'openapi.description' | 'openapi.badges.deprecated' | 'openapi.badges.required' | 'openapi.badges.webhook' | 'openapi.request' | 'openapi.path' | 'openapi.query' | '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.hideExample' | 'openapi.showExample' | 'openapi.expandAll' | 'openapi.collapseAll' | 'openapi.viewSecurityDetails' | 'openapi.noResponseExample' | 'openapi.discriminator.searchPlaceholder' | 'openapi.discriminator.searchNoResults' | 'openapi.discriminator.defaultMapping' | 'openapi.discriminator.defaultMappingTooltip' | 'openapi.noResponseContent' | 'openapi.noRequestPayload' | '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' | 'asyncapi.download.description.title' | 'asyncapi.info.title' | 'graphql.queries' | 'graphql.mutations' | 'graphql.subscriptions' | 'graphql.directives' | 'graphql.objects' | 'graphql.interfaces' | 'graphql.unions' | 'graphql.enums' | 'graphql.inputs' | 'graphql.scalars' | '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.nonNull' | 'graphql.required' | 'graphql.deprecated' | 'graphql.variables' | 'graphql.querySample' | 'graphql.mutationSample' | 'graphql.subscriptionSample' | 'graphql.responseSample' | 'graphql.locations' | 'graphql.sample' | 'graphql.referenced' | 'graphql.content.fragment' | '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';
|
|
3
3
|
export type Locale = {
|
|
4
4
|
code: string;
|
|
5
5
|
name: string;
|