@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.
Files changed (427) hide show
  1. package/LICENSE +7 -1
  2. package/lib/components/AsyncApiDocs/hooks/AfterAsyncApiChannelDescription.js +1 -0
  3. package/lib/components/Buttons/AIAssistantButton.js +6 -2
  4. package/lib/components/Buttons/ConnectMCPButton.d.ts +8 -0
  5. package/lib/components/Buttons/ConnectMCPButton.js +145 -0
  6. package/lib/components/Buttons/variables.d.ts +1 -0
  7. package/lib/components/Buttons/variables.js +44 -2
  8. package/lib/components/Catalog/CatalogCardView/CatalogCard.js +4 -3
  9. package/lib/components/Catalog/CatalogEntity/CatalogEntity.js +5 -1
  10. package/lib/components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.js +2 -2
  11. package/lib/components/Catalog/CatalogEntity/CatalogEntityInfoBar.js +1 -0
  12. package/lib/components/Catalog/CatalogEntity/CatalogEntityLinks.js +4 -1
  13. package/lib/components/Catalog/CatalogEntity/CatalogEntityMetadata.js +1 -0
  14. package/lib/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.js +4 -1
  15. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.js +4 -1
  16. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.js +4 -1
  17. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.js +4 -1
  18. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/FormatProperty.js +4 -1
  19. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.js +4 -1
  20. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.js +4 -1
  21. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.js +4 -1
  22. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.js +4 -1
  23. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.js +1 -1
  24. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.js +1 -1
  25. package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.js +2 -2
  26. package/lib/components/Catalog/CatalogEntityIcon.js +2 -1
  27. package/lib/components/Catalog/CatalogFilter/CatalogFilter.js +4 -0
  28. package/lib/components/Catalog/CatalogFilter/CatalogFilterDateRange.js +2 -2
  29. package/lib/components/Catalog/CatalogSelector.js +1 -1
  30. package/lib/components/Catalog/CatalogSortButton.js +4 -1
  31. package/lib/components/Catalog/CatalogTableView/CatalogTableHeaderCell.js +2 -2
  32. package/lib/components/Catalog/CatalogTableView/CatalogTableViewRow.js +2 -2
  33. package/lib/components/Catalog/CatalogTagsWithTooltip.js +5 -1
  34. package/lib/components/Catalog/variables.dark.js +1 -1
  35. package/lib/components/Catalog/variables.js +6 -4
  36. package/lib/components/CatalogClassic/variables.js +1 -1
  37. package/lib/components/CodeBlock/CodeBlock.js +3 -1
  38. package/lib/components/CodeBlock/CodeBlockTabs.js +3 -3
  39. package/lib/components/DatePicker/variables.js +2 -0
  40. package/lib/components/Dropdown/Dropdown.d.ts +16 -2
  41. package/lib/components/Dropdown/Dropdown.js +5 -5
  42. package/lib/components/Feedback/Mood.js +2 -2
  43. package/lib/components/Feedback/Rating.js +2 -2
  44. package/lib/components/Filter/FilterDateRange.js +2 -2
  45. package/lib/components/Filter/FilterSelect.js +5 -1
  46. package/lib/components/Link/Link.d.ts +1 -0
  47. package/lib/components/Loaders/Loading.js +4 -1
  48. package/lib/components/Markdown/Markdown.js +9 -9
  49. package/lib/components/Markdown/styles/{baseTable.js → base-table.js} +1 -1
  50. package/lib/components/Markdown/styles/{headingAnchor.js → heading-anchor.js} +1 -1
  51. package/lib/components/Menu/MenuItem.js +6 -2
  52. package/lib/components/Navbar/NavbarItem.js +3 -3
  53. package/lib/components/OpenApiDocs/hooks/AdditionalOverviewInfo.js +1 -0
  54. package/lib/components/OpenApiDocs/hooks/AfterOpenApiDescription.js +1 -0
  55. package/lib/components/OpenApiDocs/hooks/AfterOpenApiOperation.js +1 -0
  56. package/lib/components/OpenApiDocs/hooks/AfterOpenApiTitle.js +1 -0
  57. package/lib/components/OpenApiDocs/hooks/BeforeOpenApiOperation.js +1 -0
  58. package/lib/components/OpenApiDocs/hooks/OpenApiFooter.js +3 -2
  59. package/lib/components/OpenApiDocs/hooks/OpenApiHeader.js +3 -2
  60. package/lib/components/PageActions/PageActions.js +4 -1
  61. package/lib/components/PageActions/variables.js +2 -0
  62. package/lib/components/Search/FilterFields/SearchFilterFieldSelect.js +2 -1
  63. package/lib/components/Search/FilterFields/SearchFilterFieldTags.js +8 -3
  64. package/lib/components/Search/SearchAiActionButtons.d.ts +10 -0
  65. package/lib/components/Search/SearchAiActionButtons.js +43 -0
  66. package/lib/components/Search/SearchAiConversationInput.d.ts +3 -1
  67. package/lib/components/Search/SearchAiConversationInput.js +39 -7
  68. package/lib/components/Search/SearchAiDialog.d.ts +3 -6
  69. package/lib/components/Search/SearchAiDialog.js +20 -9
  70. package/lib/components/Search/SearchAiMessage.d.ts +9 -5
  71. package/lib/components/Search/SearchAiMessage.js +147 -21
  72. package/lib/components/Search/SearchAiNegativeFeedbackForm.d.ts +10 -0
  73. package/lib/components/Search/SearchAiNegativeFeedbackForm.js +170 -0
  74. package/lib/components/Search/SearchDialog.js +36 -5
  75. package/lib/components/Search/SearchGroups.js +5 -2
  76. package/lib/components/Search/SearchHighlight.js +1 -0
  77. package/lib/components/Search/SearchItem.js +9 -2
  78. package/lib/components/Search/variables.js +38 -64
  79. package/lib/components/Segmented/Segmented.d.ts +1 -8
  80. package/lib/components/Segmented/Segmented.js +5 -3
  81. package/lib/components/Select/Select.d.ts +1 -1
  82. package/lib/components/Select/Select.js +4 -2
  83. package/lib/components/Select/SelectInput.d.ts +1 -1
  84. package/lib/components/Select/SelectInput.js +3 -1
  85. package/lib/components/SidebarActions/styled.d.ts +5 -4
  86. package/lib/components/SidebarActions/styled.js +9 -5
  87. package/lib/components/Tag/Tag.d.ts +3 -2
  88. package/lib/components/Tag/Tag.js +65 -16
  89. package/lib/components/Tag/variables.dark.js +143 -36
  90. package/lib/components/Tag/variables.js +85 -60
  91. package/lib/components/Tooltip/Tooltip.js +2 -0
  92. package/lib/components/VersionPicker/VersionPicker.d.ts +1 -1
  93. package/lib/config.d.ts +2 -2
  94. package/lib/core/constants/index.d.ts +2 -0
  95. package/lib/core/constants/index.js +2 -0
  96. package/lib/core/constants/mcp.d.ts +1 -0
  97. package/lib/core/constants/mcp.js +5 -0
  98. package/lib/core/constants/request-methods.d.ts +1 -0
  99. package/lib/core/constants/request-methods.js +14 -0
  100. package/lib/core/constants/search.d.ts +5 -4
  101. package/lib/core/constants/search.js +4 -5
  102. package/lib/core/hoc/index.d.ts +1 -1
  103. package/lib/core/hoc/index.js +1 -1
  104. package/lib/core/hoc/{typedMemo.js → typed-memo.js} +1 -1
  105. package/lib/core/hooks/__tests__/mocks/mock-intersection-observer.d.ts +1 -1
  106. package/lib/core/hooks/__tests__/mocks/mock-intersection-observer.js +1 -3
  107. package/lib/core/hooks/catalog/{useCatalogEntities.js → use-catalog-entities.js} +1 -1
  108. package/lib/core/hooks/catalog/{useCatalogEntitySchema.d.ts → use-catalog-entity-schema.d.ts} +1 -1
  109. package/lib/core/hooks/catalog/{useCatalogEntitySchema.js → use-catalog-entity-schema.js} +1 -1
  110. package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.js → use-catalog-table-header-cell-actions.js} +1 -1
  111. package/lib/core/hooks/catalog/{useCatalogTableViewRow.js → use-catalog-table-view-row.js} +1 -1
  112. package/lib/core/hooks/catalog/{useGraph.js → use-graph.js} +2 -2
  113. package/lib/core/hooks/code-walkthrough/use-code-walkthrough-controls.js +1 -0
  114. package/lib/core/hooks/code-walkthrough/use-code-walkthrough-steps.d.ts +1 -0
  115. package/lib/core/hooks/code-walkthrough/use-renderable-files.js +2 -2
  116. package/lib/core/hooks/index.d.ts +8 -2
  117. package/lib/core/hooks/index.js +8 -2
  118. package/lib/core/hooks/menu/use-collapse.js +1 -0
  119. package/lib/core/hooks/menu/use-mobile-menu-items.js +1 -0
  120. package/lib/core/hooks/menu/use-nested-menu.js +1 -1
  121. package/lib/core/hooks/search/use-feedback-tooltip.d.ts +6 -0
  122. package/lib/core/hooks/search/use-feedback-tooltip.js +26 -0
  123. package/lib/core/hooks/use-connect-mcp-button.d.ts +13 -0
  124. package/lib/core/hooks/use-connect-mcp-button.js +50 -0
  125. package/lib/core/hooks/use-mcp-config.d.ts +9 -0
  126. package/lib/core/hooks/use-mcp-config.js +30 -0
  127. package/lib/core/hooks/use-page-actions.d.ts +1 -1
  128. package/lib/core/hooks/use-page-actions.js +120 -120
  129. package/lib/core/hooks/use-product-picker.js +2 -1
  130. package/lib/core/hooks/use-tabs.d.ts +3 -2
  131. package/lib/core/hooks/use-tabs.js +115 -57
  132. package/lib/core/hooks/use-telemetry-fallback.d.ts +10 -8
  133. package/lib/core/hooks/use-telemetry-fallback.js +11 -8
  134. package/lib/core/hooks/use-theme-config.js +1 -0
  135. package/lib/core/hooks/use-theme-hooks.js +1 -0
  136. package/lib/core/openapi/index.d.ts +3 -1
  137. package/lib/core/openapi/index.js +5 -3
  138. package/lib/core/styles/dark.js +4 -0
  139. package/lib/core/styles/global.js +5 -0
  140. package/lib/core/templates/Markdown.js +1 -0
  141. package/lib/core/types/hooks.d.ts +8 -2
  142. package/lib/core/types/index.d.ts +20 -18
  143. package/lib/core/types/index.js +0 -18
  144. package/lib/core/types/l10n.d.ts +1 -1
  145. package/lib/core/types/mcp.d.ts +6 -0
  146. package/lib/core/types/mcp.js +3 -0
  147. package/lib/core/types/search.d.ts +12 -4
  148. package/lib/core/types/search.js +6 -0
  149. package/lib/core/types/segmented.d.ts +12 -0
  150. package/lib/core/types/segmented.js +3 -0
  151. package/lib/core/types/sidebar.d.ts +1 -0
  152. package/lib/core/utils/{dynamic.js → Dynamic.js} +1 -1
  153. package/lib/core/utils/{get-file-icon.js → GetFileIcon.js} +1 -1
  154. package/lib/core/utils/args-typecheck.d.ts +2 -2
  155. package/lib/core/utils/clipboard-service.js +2 -0
  156. package/lib/core/utils/frontmatter-translate.d.ts +6 -0
  157. package/lib/core/utils/frontmatter-translate.js +14 -0
  158. package/lib/core/utils/get-operation-color.d.ts +7 -0
  159. package/lib/core/utils/get-operation-color.js +13 -0
  160. package/lib/core/utils/get-user-agent.js +1 -0
  161. package/lib/core/utils/index.d.ts +5 -2
  162. package/lib/core/utils/index.js +5 -2
  163. package/lib/core/utils/js-utils.d.ts +1 -1
  164. package/lib/core/utils/load-and-navigate.js +1 -0
  165. package/lib/core/utils/markdoc.js +1 -0
  166. package/lib/core/utils/mcp.d.ts +2 -0
  167. package/lib/core/utils/mcp.js +31 -0
  168. package/lib/core/utils/parse-style-string.js +1 -0
  169. package/lib/ext/configure.d.ts +2 -2
  170. package/lib/ext/configure.js +12 -6
  171. package/lib/ext/{useConfigureReplay.js → use-configure-replay.js} +5 -4
  172. package/lib/icons/AiStarsGradientIcon/AiStarsGradientIcon.js +44 -4
  173. package/lib/icons/AiStarsIcon/AiStarsIcon.js +11 -2
  174. package/lib/icons/ConnectIcon/ConnectIcon.d.ts +9 -0
  175. package/lib/icons/ConnectIcon/ConnectIcon.js +17 -0
  176. package/lib/icons/CubeIcon/CubeIcon.d.ts +9 -0
  177. package/lib/icons/CubeIcon/CubeIcon.js +17 -0
  178. package/lib/icons/HashtagIcon/HashtagIcon.d.ts +9 -0
  179. package/lib/icons/HashtagIcon/HashtagIcon.js +22 -0
  180. package/lib/icons/RedoclyIcon/RedoclyIcon.js +4 -7
  181. package/lib/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.d.ts +9 -0
  182. package/lib/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.js +34 -0
  183. package/lib/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.d.ts +9 -0
  184. package/lib/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.js +34 -0
  185. package/lib/icons/VSCodeIcon/VSCodeIcon.d.ts +9 -0
  186. package/lib/icons/VSCodeIcon/VSCodeIcon.js +17 -0
  187. package/lib/index.d.ts +4 -3
  188. package/lib/index.js +3 -3
  189. package/lib/layouts/ThreePanelLayout.js +4 -4
  190. package/lib/markdoc/components/Cards/Card.js +1 -28
  191. package/lib/markdoc/components/Cards/variables.dark.js +2 -0
  192. package/lib/markdoc/components/Cards/variables.js +2 -0
  193. package/lib/markdoc/components/CodeWalkthrough/CodePanelHeader.js +1 -0
  194. package/lib/markdoc/components/ConnectMCP/ConnectMCP.d.ts +8 -0
  195. package/lib/markdoc/components/ConnectMCP/ConnectMCP.js +19 -0
  196. package/lib/markdoc/components/Tabs/TabList.d.ts +3 -1
  197. package/lib/markdoc/components/Tabs/TabList.js +197 -47
  198. package/lib/markdoc/components/Tabs/Tabs.d.ts +2 -1
  199. package/lib/markdoc/components/Tabs/Tabs.js +57 -12
  200. package/lib/markdoc/components/default.d.ts +1 -0
  201. package/lib/markdoc/components/default.js +1 -0
  202. package/lib/markdoc/default.d.ts +6 -0
  203. package/lib/markdoc/default.js +2 -0
  204. package/lib/markdoc/tags/card.js +0 -1
  205. package/lib/markdoc/tags/code-walkthrough.js +1 -0
  206. package/lib/markdoc/tags/connect-mcp.d.ts +2 -0
  207. package/lib/markdoc/tags/connect-mcp.js +27 -0
  208. package/lib/markdoc/tags/html.js +1 -0
  209. package/package.json +6 -6
  210. package/src/components/AsyncApiDocs/hooks/AfterAsyncApiChannelDescription.tsx +1 -0
  211. package/src/components/Button/Button.tsx +1 -0
  212. package/src/components/Buttons/AIAssistantButton.tsx +6 -2
  213. package/src/components/Buttons/ConnectMCPButton.tsx +180 -0
  214. package/src/components/Buttons/variables.ts +44 -1
  215. package/src/components/Catalog/CatalogCardView/CatalogCard.tsx +4 -3
  216. package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +4 -0
  217. package/src/components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.tsx +1 -1
  218. package/src/components/Catalog/CatalogEntity/CatalogEntityInfoBar.tsx +1 -0
  219. package/src/components/Catalog/CatalogEntity/CatalogEntityLinks.tsx +5 -1
  220. package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +1 -0
  221. package/src/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.tsx +5 -1
  222. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.tsx +5 -1
  223. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.tsx +5 -1
  224. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.tsx +5 -1
  225. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/FormatProperty.tsx +5 -1
  226. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.tsx +5 -1
  227. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.tsx +5 -1
  228. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.tsx +5 -1
  229. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.tsx +5 -1
  230. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.tsx +1 -1
  231. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.tsx +1 -1
  232. package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +3 -1
  233. package/src/components/Catalog/CatalogEntityIcon.tsx +2 -1
  234. package/src/components/Catalog/CatalogFilter/CatalogFilter.tsx +5 -0
  235. package/src/components/Catalog/CatalogFilter/CatalogFilterDateRange.tsx +2 -2
  236. package/src/components/Catalog/CatalogSelector.tsx +2 -2
  237. package/src/components/Catalog/CatalogSortButton.tsx +5 -1
  238. package/src/components/Catalog/CatalogTableView/CatalogTableHeaderCell.tsx +1 -1
  239. package/src/components/Catalog/CatalogTableView/CatalogTableViewRow.tsx +1 -1
  240. package/src/components/Catalog/CatalogTagsWithTooltip.tsx +8 -1
  241. package/src/components/Catalog/variables.dark.ts +1 -1
  242. package/src/components/Catalog/variables.ts +6 -4
  243. package/src/components/CatalogClassic/CatalogClassicInfoBlock.tsx +1 -0
  244. package/src/components/CatalogClassic/variables.ts +1 -1
  245. package/src/components/CodeBlock/CodeBlock.tsx +4 -0
  246. package/src/components/CodeBlock/CodeBlockControls.tsx +1 -0
  247. package/src/components/CodeBlock/CodeBlockTabs.tsx +1 -1
  248. package/src/components/DatePicker/variables.ts +3 -1
  249. package/src/components/Dropdown/Dropdown.tsx +84 -79
  250. package/src/components/Feedback/Mood.tsx +2 -2
  251. package/src/components/Feedback/Rating.tsx +2 -2
  252. package/src/components/Filter/FilterDateRange.tsx +2 -2
  253. package/src/components/Filter/FilterSelect.tsx +1 -0
  254. package/src/components/JsonViewer/JsonViewer.tsx +1 -0
  255. package/src/components/JsonViewer/helpers.tsx +3 -0
  256. package/src/components/LastUpdated/LastUpdated.tsx +1 -0
  257. package/src/components/Link/Link.tsx +1 -0
  258. package/src/components/Loaders/Loading.tsx +5 -1
  259. package/src/components/Markdown/Markdown.tsx +2 -2
  260. package/src/components/Menu/MenuItem.tsx +7 -2
  261. package/src/components/Navbar/NavbarItem.tsx +6 -5
  262. package/src/components/OpenApiDocs/hooks/AdditionalOverviewInfo.tsx +1 -0
  263. package/src/components/OpenApiDocs/hooks/AfterOpenApiDescription.tsx +1 -0
  264. package/src/components/OpenApiDocs/hooks/AfterOpenApiOperation.tsx +1 -1
  265. package/src/components/OpenApiDocs/hooks/AfterOpenApiTitle.tsx +1 -1
  266. package/src/components/OpenApiDocs/hooks/BeforeOpenApiOperation.tsx +1 -1
  267. package/src/components/OpenApiDocs/hooks/OpenApiFooter.tsx +1 -1
  268. package/src/components/OpenApiDocs/hooks/OpenApiHeader.tsx +1 -1
  269. package/src/components/PageActions/PageActions.tsx +5 -1
  270. package/src/components/PageActions/variables.ts +2 -0
  271. package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +4 -1
  272. package/src/components/Search/FilterFields/SearchFilterFieldTags.tsx +10 -4
  273. package/src/components/Search/SearchAiActionButtons.tsx +76 -0
  274. package/src/components/Search/SearchAiConversationInput.tsx +61 -18
  275. package/src/components/Search/SearchAiDialog.tsx +52 -23
  276. package/src/components/Search/SearchAiMessage.tsx +173 -39
  277. package/src/components/Search/SearchAiNegativeFeedbackForm.tsx +212 -0
  278. package/src/components/Search/SearchDialog.tsx +49 -13
  279. package/src/components/Search/SearchGroups.tsx +6 -1
  280. package/src/components/Search/SearchHighlight.tsx +1 -0
  281. package/src/components/Search/SearchItem.tsx +15 -3
  282. package/src/components/Search/variables.ts +38 -64
  283. package/src/components/Segmented/Segmented.tsx +16 -21
  284. package/src/components/Select/Select.tsx +8 -4
  285. package/src/components/Select/SelectInput.tsx +11 -1
  286. package/src/components/SidebarActions/{styled.tsx → styled.ts} +11 -4
  287. package/src/components/Tag/Tag.tsx +36 -18
  288. package/src/components/Tag/variables.dark.ts +143 -36
  289. package/src/components/Tag/variables.ts +85 -60
  290. package/src/components/Tooltip/Tooltip.tsx +2 -1
  291. package/src/components/VersionPicker/VersionPicker.tsx +2 -1
  292. package/src/config.ts +2 -0
  293. package/src/core/constants/index.ts +2 -0
  294. package/src/core/constants/mcp.ts +1 -0
  295. package/src/core/constants/request-methods.ts +10 -0
  296. package/src/core/constants/search.ts +8 -4
  297. package/src/core/hoc/index.ts +1 -1
  298. package/src/core/hooks/__mocks__/use-theme-hooks.ts +2 -2
  299. package/src/core/hooks/__tests__/mocks/mock-intersection-observer.ts +9 -8
  300. package/src/core/hooks/catalog/{useCatalogEntitySchema.ts → use-catalog-entity-schema.ts} +3 -3
  301. package/src/core/hooks/catalog/{useGraph.ts → use-graph.ts} +1 -1
  302. package/src/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.ts +1 -1
  303. package/src/core/hooks/code-walkthrough/__mocks__/mock-intersection-observer.ts +24 -0
  304. package/src/core/hooks/code-walkthrough/use-code-walkthrough-controls.ts +1 -0
  305. package/src/core/hooks/code-walkthrough/use-code-walkthrough-steps.ts +2 -2
  306. package/src/core/hooks/code-walkthrough/use-renderable-files.ts +1 -1
  307. package/src/core/hooks/index.ts +8 -2
  308. package/src/core/hooks/menu/use-collapse.ts +3 -3
  309. package/src/core/hooks/menu/use-mobile-menu-items.ts +1 -0
  310. package/src/core/hooks/menu/use-nested-menu.ts +2 -2
  311. package/src/core/hooks/search/use-feedback-tooltip.ts +32 -0
  312. package/src/core/hooks/use-connect-mcp-button.ts +79 -0
  313. package/src/core/hooks/use-mcp-config.ts +49 -0
  314. package/src/core/hooks/use-page-actions.ts +164 -146
  315. package/src/core/hooks/use-product-picker.ts +2 -1
  316. package/src/core/hooks/use-tabs.ts +168 -86
  317. package/src/core/hooks/use-telemetry-fallback.ts +11 -8
  318. package/src/core/hooks/use-theme-config.ts +1 -0
  319. package/src/core/hooks/use-theme-hooks.ts +2 -1
  320. package/src/core/openapi/index.ts +3 -1
  321. package/src/core/styles/dark.ts +4 -0
  322. package/src/core/styles/global.ts +6 -1
  323. package/src/core/templates/Markdown.tsx +1 -0
  324. package/src/core/types/catalog.ts +3 -1
  325. package/src/core/types/filter.ts +1 -0
  326. package/src/core/types/hooks.ts +11 -1
  327. package/src/core/types/index.ts +20 -18
  328. package/src/core/types/l10n.ts +37 -1
  329. package/src/core/types/mcp.ts +8 -0
  330. package/src/core/types/search.ts +15 -5
  331. package/src/core/types/segmented.ts +15 -0
  332. package/src/core/types/select.ts +1 -0
  333. package/src/core/types/sidebar.ts +1 -0
  334. package/src/core/utils/args-typecheck.ts +2 -2
  335. package/src/core/utils/clipboard-service.ts +2 -0
  336. package/src/core/utils/frontmatter-translate.ts +9 -0
  337. package/src/core/utils/get-operation-color.ts +18 -0
  338. package/src/core/utils/get-user-agent.ts +1 -0
  339. package/src/core/utils/index.ts +5 -2
  340. package/src/core/utils/js-utils.ts +1 -1
  341. package/src/core/utils/load-and-navigate.ts +1 -0
  342. package/src/core/utils/markdoc.ts +1 -0
  343. package/src/core/utils/mcp.ts +34 -0
  344. package/src/core/utils/parse-style-string.ts +1 -0
  345. package/src/ext/configure.ts +15 -8
  346. package/src/ext/process-scorecard.ts +1 -0
  347. package/src/ext/{useConfigureReplay.ts → use-configure-replay.ts} +5 -3
  348. package/src/icons/AiStarsGradientIcon/AiStarsGradientIcon.tsx +13 -4
  349. package/src/icons/AiStarsIcon/AiStarsIcon.tsx +11 -2
  350. package/src/icons/ConnectIcon/ConnectIcon.tsx +27 -0
  351. package/src/icons/CubeIcon/CubeIcon.tsx +27 -0
  352. package/src/icons/HashtagIcon/HashtagIcon.tsx +23 -0
  353. package/src/icons/RedoclyIcon/RedoclyIcon.tsx +4 -22
  354. package/src/icons/ThumbDownFilledIcon/ThumbDownFilledIcon.tsx +38 -0
  355. package/src/icons/ThumbUpFilledIcon/ThumbUpFilledIcon.tsx +35 -0
  356. package/src/icons/VSCodeIcon/VSCodeIcon.tsx +29 -0
  357. package/src/index.ts +4 -3
  358. package/src/layouts/ThreePanelLayout.tsx +1 -1
  359. package/src/markdoc/components/Cards/Card.tsx +1 -28
  360. package/src/markdoc/components/Cards/variables.dark.ts +2 -0
  361. package/src/markdoc/components/Cards/variables.ts +3 -1
  362. package/src/markdoc/components/CodeWalkthrough/CodePanelHeader.tsx +1 -1
  363. package/src/markdoc/components/ConnectMCP/ConnectMCP.tsx +28 -0
  364. package/src/markdoc/components/Tabs/TabList.tsx +312 -105
  365. package/src/markdoc/components/Tabs/Tabs.tsx +136 -11
  366. package/src/markdoc/components/default.ts +1 -0
  367. package/src/markdoc/default.ts +2 -0
  368. package/src/markdoc/tags/card.ts +0 -1
  369. package/src/markdoc/tags/code-walkthrough.ts +2 -0
  370. package/src/markdoc/tags/connect-mcp.ts +25 -0
  371. package/src/markdoc/tags/html.ts +1 -0
  372. package/lib/core/hooks/__mocks__/index.d.ts +0 -28
  373. package/lib/core/hooks/__mocks__/index.js +0 -45
  374. package/lib/core/hooks/__mocks__/search/use-recent-searches.d.ts +0 -5
  375. package/lib/core/hooks/__mocks__/search/use-recent-searches.js +0 -13
  376. package/lib/core/hooks/__mocks__/search/use-search-filter.d.ts +0 -8
  377. package/lib/core/hooks/__mocks__/search/use-search-filter.js +0 -15
  378. package/lib/core/hooks/__mocks__/search/use-suggested-pages.d.ts +0 -4
  379. package/lib/core/hooks/__mocks__/search/use-suggested-pages.js +0 -13
  380. package/lib/core/hooks/__mocks__/use-controlled-state.d.ts +0 -1
  381. package/lib/core/hooks/__mocks__/use-controlled-state.js +0 -7
  382. package/lib/core/hooks/__mocks__/use-element-size.d.ts +0 -4
  383. package/lib/core/hooks/__mocks__/use-element-size.js +0 -9
  384. package/lib/core/hooks/__mocks__/use-input-key-commands.d.ts +0 -3
  385. package/lib/core/hooks/__mocks__/use-input-key-commands.js +0 -8
  386. package/lib/core/hooks/__mocks__/use-mobile-menu.d.ts +0 -1
  387. package/lib/core/hooks/__mocks__/use-mobile-menu.js +0 -7
  388. package/lib/core/hooks/__mocks__/use-theme-config.d.ts +0 -8
  389. package/lib/core/hooks/__mocks__/use-theme-config.js +0 -13
  390. package/lib/core/hooks/__mocks__/use-theme-hooks.d.ts +0 -69
  391. package/lib/core/hooks/__mocks__/use-theme-hooks.js +0 -94
  392. package/lib/core/hooks/__mocks__/use-time-ago.d.ts +0 -3
  393. package/lib/core/hooks/__mocks__/use-time-ago.js +0 -8
  394. package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.d.ts +0 -10
  395. package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.js +0 -56
  396. package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.d.ts +0 -1
  397. package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.js +0 -35
  398. /package/lib/components/Markdown/styles/{baseTable.d.ts → base-table.d.ts} +0 -0
  399. /package/lib/components/Markdown/styles/{headingAnchor.d.ts → heading-anchor.d.ts} +0 -0
  400. /package/lib/core/hoc/{typedMemo.d.ts → typed-memo.d.ts} +0 -0
  401. /package/lib/core/hooks/catalog/{useCatalogEntities.d.ts → use-catalog-entities.d.ts} +0 -0
  402. /package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.d.ts → use-catalog-table-header-cell-actions.d.ts} +0 -0
  403. /package/lib/core/hooks/catalog/{useCatalogTableViewRow.d.ts → use-catalog-table-view-row.d.ts} +0 -0
  404. /package/lib/core/hooks/catalog/{useGraph.d.ts → use-graph.d.ts} +0 -0
  405. /package/lib/core/utils/{dynamic.d.ts → Dynamic.d.ts} +0 -0
  406. /package/lib/core/utils/{get-file-icon.d.ts → GetFileIcon.d.ts} +0 -0
  407. /package/lib/ext/{useConfigureReplay.d.ts → use-configure-replay.d.ts} +0 -0
  408. /package/src/components/Markdown/styles/{baseTable.ts → base-table.ts} +0 -0
  409. /package/src/components/Markdown/styles/{headingAnchor.ts → heading-anchor.ts} +0 -0
  410. /package/src/components/Panel/{PanelBody.ts → PanelBody.tsx} +0 -0
  411. /package/src/components/Panel/{PanelHeader.ts → PanelHeader.tsx} +0 -0
  412. /package/src/components/Panel/{PanelHeaderTitle.ts → PanelHeaderTitle.tsx} +0 -0
  413. /package/src/components/StatusCode/{StatusCode.ts → StatusCode.tsx} +0 -0
  414. /package/src/components/Typography/{CompactTypography.ts → CompactTypography.tsx} +0 -0
  415. /package/src/components/Typography/{Emphasis.ts → Emphasis.tsx} +0 -0
  416. /package/src/components/Typography/{H1.ts → H1.tsx} +0 -0
  417. /package/src/components/Typography/{H2.ts → H2.tsx} +0 -0
  418. /package/src/components/Typography/{H3.ts → H3.tsx} +0 -0
  419. /package/src/components/Typography/{H4.ts → H4.tsx} +0 -0
  420. /package/src/components/Typography/{SectionHeader.ts → SectionHeader.tsx} +0 -0
  421. /package/src/components/Typography/{Typography.ts → Typography.tsx} +0 -0
  422. /package/src/core/hoc/{typedMemo.ts → typed-memo.ts} +0 -0
  423. /package/src/core/hooks/catalog/{useCatalogEntities.ts → use-catalog-entities.ts} +0 -0
  424. /package/src/core/hooks/catalog/{useCatalogTableHeaderCellActions.ts → use-catalog-table-header-cell-actions.ts} +0 -0
  425. /package/src/core/hooks/catalog/{useCatalogTableViewRow.ts → use-catalog-table-view-row.ts} +0 -0
  426. /package/src/core/utils/{dynamic.tsx → Dynamic.tsx} +0 -0
  427. /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 allTabsHidden = (0, react_1.useMemo)(() => tabs.visible.length === 0, [tabs.visible]);
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
- const focusTab = (index) => {
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
- const { visible: visibleTabs, overflow: overflowTabs } = tabs;
63
- // Indexes of visible tabs should be sorted(asc), to replace the last visible tab with the clicked tab
64
- const newVisibleTabs = [...visibleTabs].sort((a, b) => a - b);
65
- const newOverflowTabs = [...overflowTabs];
66
- const clickedIdxInOverflow = newOverflowTabs.indexOf(clickedIndex);
67
- if (clickedIdxInOverflow !== -1) {
68
- const lastVisible = newVisibleTabs[newVisibleTabs.length - 1];
69
- newOverflowTabs.splice(clickedIdxInOverflow, 1);
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
- }, [tabs]);
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
- onTabChange(label);
92
- focusTab(clickedIndex);
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
- }, [allTabsHidden, tabs.overflow, onTabChange, replaceLastVisibleTabWithClickedOverflowTab]);
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 activeTabIndex = tabRefs.current.findIndex((ref) => (ref === null || ref === void 0 ? void 0 : ref.getAttribute('data-label')) === activeTab);
102
- // Active tab should always be visible, so we include it at the beginning of the array
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 visible = activeTabIndex !== -1 ? [activeTabIndex] : [];
105
- const overflow = [];
119
+ const visibleTabs = activeTabIndex !== -1 ? [activeTabIndex] : [];
120
+ const overflowTabs = [];
106
121
  for (let i = 0; i < tabWidths.length; i++) {
107
- // Skip active tab, it was added initially
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
- visible.push(i);
127
+ visibleTabs.push(i);
115
128
  tabsWidth += tabWidthWithGap;
116
129
  }
117
130
  else {
118
- overflow.push(i);
131
+ overflowTabs.push(i);
119
132
  }
120
133
  }
121
- if (overflow.length > 0) {
134
+ if (overflowTabs.length > 0) {
122
135
  tabsWidth += MORE_BUTTON_WIDTH;
123
- // Remove tabs starting from the end of the array until the width of the visible tabs is less than the container width
124
- while (tabsWidth > containerWidth && visible.length) {
125
- const removed = visible.pop();
126
- if (removed !== undefined) {
127
- overflow.unshift(removed);
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
- }, [containerRef, activeTab]);
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
- if (!(containerRef === null || containerRef === void 0 ? void 0 : containerRef.current))
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 = requestAnimationFrame(calculateVisibleTabs);
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
- cancelAnimationFrame(resizeTimeout);
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
- allTabsHidden,
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 [activeTab, setActiveTab] = (0, react_1.useState)(getInitialTab({ initialTab, searchParams, tabsId }));
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
- sendOpenapiDocsViewedMessage: () => void;
46
- sendOpenapiDocsPerformanceMetricsMessage: () => void;
47
- sendOpenapiDocsDownloadDefinitionClickedMessage: () => void;
48
- sendOpenapiDocsSelectLanguageClickedMessage: () => void;
49
- sendOpenapiDocsExpandCollapseAllClickedMessage: () => void;
50
- sendOpenapiDocsSwitchServersClickedMessage: () => void;
51
- sendOpenapiDocsExamplesSwitcherClickedMessage: () => void;
52
- sendOpenapiDocsTryItOpenedMessage: () => void;
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
- sendOpenapiDocsViewedMessage: () => { },
50
- sendOpenapiDocsPerformanceMetricsMessage: () => { },
51
- sendOpenapiDocsDownloadDefinitionClickedMessage: () => { },
52
- sendOpenapiDocsSelectLanguageClickedMessage: () => { },
53
- sendOpenapiDocsExpandCollapseAllClickedMessage: () => { },
54
- sendOpenapiDocsSwitchServersClickedMessage: () => { },
55
- sendOpenapiDocsExamplesSwitcherClickedMessage: () => { },
56
- sendOpenapiDocsTryItOpenedMessage: () => { },
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/typedMemo';
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 typedMemo_1 = require("../hoc/typedMemo");
16
- Object.defineProperty(exports, "typedMemo", { enumerable: true, get: function () { return typedMemo_1.typedMemo; } });
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");
@@ -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}
@@ -58,6 +58,7 @@ function default_1({ pageProps, children }) {
58
58
  }
59
59
  setWrapperElement(node);
60
60
  },
61
+ // eslint-disable-next-line no-warning-comments
61
62
  // TODO: is this correct?
62
63
  // eslint-disable-next-line react-hooks/exhaustive-deps
63
64
  [pageProps.headings]);
@@ -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 './feedback';
5
- export * from './hooks';
6
- export * from './markdown';
7
- export * from './navbar';
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';
@@ -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
@@ -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;
@@ -0,0 +1,6 @@
1
+ export type MCPClientType = 'cursor' | 'vscode';
2
+ export type MCPOption = 'cursor' | 'vscode' | 'copy';
3
+ export type McpConnectionParams = {
4
+ serverName: string;
5
+ url: string;
6
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mcp.js.map