@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
@@ -86,6 +86,7 @@ export type TranslationKey =
86
86
  | 'search.ai.welcomeText'
87
87
  | 'search.ai.newConversation'
88
88
  | 'search.ai.backToSearch'
89
+ | 'search.ai.back'
89
90
  | 'search.ai.placeholder'
90
91
  | 'search.ai.generatingResponse'
91
92
  | 'search.ai.followUpQuestion'
@@ -94,6 +95,9 @@ export type TranslationKey =
94
95
  | 'search.ai.resourcesFound'
95
96
  | 'search.ai.resourcesFound.basedOn'
96
97
  | 'search.ai.resourcesFound.resources'
98
+ | 'search.ai.feedback.title'
99
+ | 'search.ai.feedback.detailsPlaceholder'
100
+ | 'search.ai.feedback.thanks'
97
101
  | 'search.ai.button'
98
102
  | 'search.ai.label'
99
103
  | 'search.ai.disclaimer'
@@ -103,6 +107,10 @@ export type TranslationKey =
103
107
  | 'search.ai.error.header'
104
108
  | 'search.ai.error.header.forbidden'
105
109
  | 'search.ai.error.header.unauthorized'
110
+ | 'search.ai.feedback.more'
111
+ | 'search.searchItem.deprecated'
112
+ | 'search.groups.all'
113
+ | 'search.filter.field.footer'
106
114
  | 'aiAssistant.trigger'
107
115
  | 'toc.header'
108
116
  | 'footer.copyrightText'
@@ -147,6 +155,21 @@ export type TranslationKey =
147
155
  | 'catalog.entity.schema.title'
148
156
  | 'catalog.entity.properties.apiDescription.title'
149
157
  | 'catalog.backToAllLabel'
158
+ | 'catalog.tags.more'
159
+ | 'catalog.tags.label'
160
+ | 'catalog.sort'
161
+ | 'catalog.catalogs.label'
162
+ | 'catalog.owners.label'
163
+ | 'catalog.repositories.label'
164
+ | 'catalog.email.label'
165
+ | 'catalog.format.label'
166
+ | 'catalog.entityType.label'
167
+ | 'catalog.domains.label'
168
+ | 'catalog.contact.label'
169
+ | 'catalog.methodAndPath.label'
170
+ | 'catalog.links.label'
171
+ | 'catalog.metadata.domains'
172
+ | 'catalog.metadata.owners'
150
173
  | 'sidebar.menu.backLabel'
151
174
  | 'sidebar.menu.backToLabel'
152
175
  | 'sidebar.actions.show'
@@ -211,6 +234,13 @@ export type TranslationKey =
211
234
  | 'page.actions.cursorMcpButtonText'
212
235
  | 'page.actions.cursorMcpTitle'
213
236
  | 'page.actions.cursorMcpDescription'
237
+ | 'page.actions.connectMcp'
238
+ | 'page.actions.connectMcp.cursor'
239
+ | 'page.actions.connectMcp.cursorDescription'
240
+ | 'page.actions.connectMcp.vscode'
241
+ | 'page.actions.connectMcp.vscodeDescription'
242
+ | 'page.actions.connectMcp.copyConfig'
243
+ | 'page.actions.connectMcp.copyConfigDescription'
214
244
  | 'openapi.download.description.title'
215
245
  | 'openapi.info.title'
216
246
  | 'openapi.info.contact.url'
@@ -267,6 +297,8 @@ export type TranslationKey =
267
297
  | 'openapi.noResponseExample'
268
298
  | 'openapi.discriminator.searchPlaceholder'
269
299
  | 'openapi.discriminator.searchNoResults'
300
+ | 'openapi.discriminator.defaultMapping'
301
+ | 'openapi.discriminator.defaultMappingTooltip'
270
302
  | 'openapi.noResponseContent'
271
303
  | 'openapi.noRequestPayload'
272
304
  | 'openapi.hidePattern'
@@ -356,7 +388,11 @@ export type TranslationKey =
356
388
  | 'time.past.years'
357
389
  | 'page.internalServerError.title'
358
390
  | 'page.internalServerError.description'
359
- | 'page.skipToContent.label';
391
+ | 'page.skipToContent.label'
392
+ | 'select.noResults'
393
+ | 'loaders.loading'
394
+ | 'filter.dateRange.from'
395
+ | 'filter.dateRange.to';
360
396
 
361
397
  export type Locale = { code: string; name: string };
362
398
 
@@ -0,0 +1,8 @@
1
+ export type MCPClientType = 'cursor' | 'vscode';
2
+
3
+ export type MCPOption = 'cursor' | 'vscode' | 'copy';
4
+
5
+ export type McpConnectionParams = {
6
+ serverName: string;
7
+ url: string;
8
+ };
@@ -14,7 +14,7 @@ export type OperationParameter = {
14
14
  example: string | undefined;
15
15
  enum: string[] | undefined;
16
16
  };
17
-
17
+ /* eslint-disable-next-line no-warning-comments */
18
18
  // TODO: review SearchHit type as it might contain properties that are not in the search results
19
19
  export type SearchHit = {
20
20
  id: string;
@@ -25,6 +25,7 @@ export type SearchHit = {
25
25
  httpMethod?: string;
26
26
  httpPath?: string | string[];
27
27
  deprecated?: boolean;
28
+ isAdditionalOperation?: boolean;
28
29
  security?: string[];
29
30
  parameters?: OperationParameter[];
30
31
  version?: string;
@@ -93,11 +94,20 @@ export type AiSearchErrorConfig = {
93
94
  messageDefault: string;
94
95
  };
95
96
 
97
+ export enum FeedbackType {
98
+ Like = 'like',
99
+ Dislike = 'dislike',
100
+ }
101
+
102
+ export type SearchAiMessageResource = {
103
+ url: string;
104
+ title: string;
105
+ };
106
+
96
107
  export type AiSearchConversationItem = {
97
108
  role: AiSearchConversationRole;
98
109
  content: string;
99
- resources?: {
100
- url: string;
101
- title: string;
102
- }[];
110
+ resources?: SearchAiMessageResource[];
111
+ messageId?: string;
112
+ feedback?: FeedbackType;
103
113
  };
@@ -0,0 +1,15 @@
1
+ import type React from 'react';
2
+ import type { SelectOption } from './select';
3
+
4
+ export type SegmentedOption<T> = SelectOption<T> & {
5
+ divider?: React.ReactNode;
6
+ };
7
+
8
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
9
+ export type SegmentedProps<T = any> = {
10
+ options: SegmentedOption<T>[];
11
+ value: T;
12
+ onChange: ({ label, value }: SegmentedOption<T>) => void;
13
+ className?: string;
14
+ size?: 'regular' | 'small';
15
+ };
@@ -7,6 +7,7 @@ export type SelectOption<T> = {
7
7
  label?: string;
8
8
  };
9
9
 
10
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
10
11
  export type SelectProps<T = any> = {
11
12
  value?: SelectOption<T> | SelectOption<T>[] | T | T[];
12
13
  options: SelectOption<T>[];
@@ -51,6 +51,7 @@ export type ItemState = Omit<SidebarNavItem, 'items'> & {
51
51
  languageInsensitive?: boolean;
52
52
  modified?: boolean; //item from openapi-docs sidebar
53
53
  deprecated?: boolean; //item from openapi-docs sidebar
54
+ isAdditionalOperation?: boolean; //item from openapi-docs sidebar
54
55
  };
55
56
 
56
57
  export type DrilldownMenuItemDetails = {
@@ -1,7 +1,7 @@
1
- export function isEmptyArray(items: any): boolean {
1
+ export function isEmptyArray(items: unknown): boolean {
2
2
  return Array.isArray(items) && !items?.length;
3
3
  }
4
4
 
5
- export function isPrimitive(arg: any): boolean {
5
+ export function isPrimitive(arg: unknown): boolean {
6
6
  return ['string', 'boolean', 'number', 'undefined'].includes(typeof arg);
7
7
  }
@@ -10,7 +10,9 @@ export class ClipboardService {
10
10
  }
11
11
  let range;
12
12
  let selection;
13
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
13
14
  if ((document.body as any).createTextRange) {
15
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
14
16
  range = (document.body as any).createTextRange();
15
17
  range.moveToElementText(element);
16
18
  range.select();
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Utility function for use in React frontmatter
3
+ * This function creates a string that will be processed by the frontmatter loader
4
+ * to convert it into a translation key object
5
+ */
6
+ export const frontmatterTranslate = (key: string, defaultValue: string): string => {
7
+ const escapedDefaultValue = defaultValue.replace(/'/g, "\\'");
8
+ return `frontmatterTranslate('${key}', '${escapedDefaultValue}')`;
9
+ };
@@ -0,0 +1,18 @@
1
+ type OperationColorProps = {
2
+ deprecated?: boolean;
3
+ isAdditionalOperation?: boolean;
4
+ httpVerb: string;
5
+ };
6
+
7
+ export function getOperationColor({
8
+ deprecated,
9
+ isAdditionalOperation,
10
+ httpVerb,
11
+ }: OperationColorProps): string {
12
+ if (deprecated) {
13
+ return 'http-deprecated';
14
+ } else if (isAdditionalOperation) {
15
+ return 'http-additional-operation';
16
+ }
17
+ return httpVerb;
18
+ }
@@ -2,6 +2,7 @@
2
2
  * Returns user agent. Handles SSR and browser.
3
3
  */
4
4
  export function getUserAgent() {
5
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
5
6
  const ssrUserAgent = (globalThis as any)['SSR_USER_AGENT'];
6
7
 
7
8
  if (ssrUserAgent) {
@@ -1,6 +1,7 @@
1
1
  export * from './clipboard-service';
2
2
  export * from './css-variables';
3
3
  export * from './add-line-numbers';
4
+ export * from './mcp';
4
5
  export * from './media-css';
5
6
  export * from './theme-helpers';
6
7
  export * from './class-names';
@@ -27,7 +28,7 @@ export * from './with-load-progress';
27
28
  export * from './text-trimmer';
28
29
  export * from './get-code-walkthrough-file-text';
29
30
  export * from './download-code-walkthrough';
30
- export * from './get-file-icon';
31
+ export * from './GetFileIcon';
31
32
  export * from './match-code-walkthrough-conditions';
32
33
  export * from './replace-inputs-with-value';
33
34
  export * from './find-closest-common-directory';
@@ -36,5 +37,7 @@ export * from './parse-style-string';
36
37
  export * from './lang-to-name';
37
38
  export * from './enhanced-smoothstep';
38
39
  export * from './icon-resolver';
39
- export * from './dynamic';
40
+ export * from './Dynamic';
40
41
  export * from './tabs';
42
+ export * from './get-operation-color';
43
+ export * from './frontmatter-translate';
@@ -24,7 +24,7 @@ export function isBrowser() {
24
24
  return typeof window !== 'undefined' && 'HTMLElement' in window;
25
25
  }
26
26
 
27
- export function isPlainObject(obj: any): boolean {
27
+ export function isPlainObject(obj: unknown): boolean {
28
28
  return (
29
29
  typeof obj === 'object' &&
30
30
  obj !== null &&
@@ -21,6 +21,7 @@ export async function loadAndNavigate({
21
21
  const { pathname, hash, search } = new URL(to, window.location.origin + window.location.pathname);
22
22
 
23
23
  // use window-shared loader instead of importing to prevent circular import issue
24
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
24
25
  const loader = (window as any)['__LOADER'];
25
26
  const result = await withLoadProgress(loader.tryLoad(pathname));
26
27
  // @ts-ignore
@@ -1,5 +1,6 @@
1
1
  import type { Tag } from '@markdoc/markdoc';
2
2
 
3
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
3
4
  export function isTag(value?: any): value is Tag {
4
5
  return !!(value?.$$mdtype === 'Tag');
5
6
  }
@@ -0,0 +1,34 @@
1
+ import type { MCPClientType, McpConnectionParams } from '../types';
2
+
3
+ function generateCursorMCPDeepLink(config: McpConnectionParams): string {
4
+ const cursorConfig = {
5
+ url: config.url,
6
+ description: 'MCP Server',
7
+ };
8
+ const encodedConfig = btoa(JSON.stringify(cursorConfig));
9
+ return `cursor://anysphere.cursor-deeplink/mcp/install?name=${config.serverName}&config=${encodedConfig}`;
10
+ }
11
+
12
+ function generateVSCodeMCPDeepLink(config: McpConnectionParams): string {
13
+ const vscodeConfig = {
14
+ name: config.serverName,
15
+ url: config.url,
16
+ type: 'http',
17
+ };
18
+ const encodedConfig = encodeURIComponent(JSON.stringify(vscodeConfig));
19
+ return `vscode:mcp/install?${encodedConfig}`;
20
+ }
21
+
22
+ export function generateMCPDeepLink(
23
+ clientType: MCPClientType,
24
+ config: McpConnectionParams,
25
+ ): string {
26
+ switch (clientType) {
27
+ case 'cursor':
28
+ return generateCursorMCPDeepLink(config);
29
+ case 'vscode':
30
+ return generateVSCodeMCPDeepLink(config);
31
+ default:
32
+ return generateCursorMCPDeepLink(config);
33
+ }
34
+ }
@@ -13,6 +13,7 @@ export function parseStyleString(styleString: string): React.CSSProperties {
13
13
  const camelCaseKey = key.replace(/-[a-z]/g, (match) => {
14
14
  return match[1].toUpperCase();
15
15
  });
16
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
16
17
  (styleObj as any)[camelCaseKey] = value;
17
18
  }
18
19
 
@@ -1,4 +1,4 @@
1
- import { UserClaims, OpenAPIServer } from '@redocly/theme/core/types';
1
+ import type { UserClaims, OpenAPIServer } from '@redocly/theme/core/types';
2
2
 
3
3
  export type SecurityDetails = {
4
4
  password?: string;
@@ -14,11 +14,12 @@ export type SecurityDetails = {
14
14
 
15
15
  export type ConfigureRequestValues = {
16
16
  headers?: Record<string, string>;
17
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
17
18
  body?: Record<string, any>;
18
19
  query?: Record<string, string>;
19
20
  path?: Record<string, string>;
20
21
  cookie?: Record<string, string>;
21
- security?: SecurityDetails;
22
+ security?: Record<string, SecurityDetails>;
22
23
  envVariables?: Record<string, string>;
23
24
  serverVariables?: Record<string, string>;
24
25
  };
@@ -49,8 +50,10 @@ export function configure(_context: ContextProps): Configure {
49
50
  // name: 'Default Product'
50
51
  // },
51
52
  // security: {
52
- // username: 'default_api_user',
53
- // password: 'secureP@ssword123'
53
+ // default: {
54
+ // username: 'default_api_user',
55
+ // password: 'secureP@ssword123'
56
+ // },
54
57
  // },
55
58
  // envVariables: {
56
59
  // customLocation: 'default'
@@ -62,8 +65,10 @@ export function configure(_context: ContextProps): Configure {
62
65
  // name: 'Development Product'
63
66
  // },
64
67
  // security: {
65
- // username: 'dev_api_user',
66
- // password: 'Dev@P!T3st'
68
+ // default: {
69
+ // username: 'dev_api_user',
70
+ // password: 'Dev@P!T3st'
71
+ // },
67
72
  // },
68
73
  // envVariables: {
69
74
  // customLocation: 'dev'
@@ -75,8 +80,10 @@ export function configure(_context: ContextProps): Configure {
75
80
  // name: 'Production Product'
76
81
  // },
77
82
  // security: {
78
- // username: 'prod_api_user',
79
- // password: 'Pr0d@P!S3cur3'
83
+ // default: {
84
+ // username: 'prod_api_user',
85
+ // password: 'Pr0d@P!S3cur3'
86
+ // },
80
87
  // },
81
88
  // envVariables: {
82
89
  // customLocation: 'prod'
@@ -3,6 +3,7 @@ import { useCallback } from 'react';
3
3
  import type { CatalogItem } from '@redocly/theme';
4
4
 
5
5
  export function useProcessScorecard(): {
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
7
  processScorecard: <T = any>(scorecard: T, api: CatalogItem) => T;
7
8
  processInfo: <T>(info: T) => T;
8
9
  } {
@@ -38,11 +38,13 @@ async function getReplayConfiguration(
38
38
  // }
39
39
 
40
40
  // const { token } = await response.json();
41
- //
41
+
42
42
  // return {
43
43
  // security: {
44
- // token: {
45
- // access_token: token,
44
+ // default: {
45
+ // token: {
46
+ // access_token: token,
47
+ // }
46
48
  // }
47
49
  // }
48
50
  // };
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { useEffect, useState } from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
4
  import type { IconProps } from '@redocly/theme/icons/types';
@@ -15,9 +15,18 @@ export interface AiStarsGradientIconProps extends IconProps {
15
15
  const Icon = (props: AiStarsGradientIconProps) => {
16
16
  const { color = '', background, borderRadius, padding, margin, ...restProps } = props;
17
17
 
18
- const resolvedColor = color.startsWith('var(')
19
- ? getComputedStyle(document.documentElement).getPropertyValue(color.slice(4, -1)).trim()
20
- : color;
18
+ const [resolvedColor, setResolvedColor] = useState(color);
19
+
20
+ useEffect(() => {
21
+ const resolvedColor = color.startsWith('var(')
22
+ ? window
23
+ .getComputedStyle(document.documentElement)
24
+ .getPropertyValue(color.slice(4, -1))
25
+ .trim()
26
+ : color;
27
+
28
+ setResolvedColor(resolvedColor);
29
+ }, [color]);
21
30
 
22
31
  const isColorOverridden = resolvedColor && resolvedColor !== 'none';
23
32
  const fill = isColorOverridden ? resolvedColor : 'url(#gradient)';
@@ -35,19 +35,28 @@ export const AiStarsIcon = styled(Icon).attrs(() => ({
35
35
  height: ${({ size }) => size || '16px'};
36
36
  width: ${({ size }) => size || '16px'};
37
37
 
38
- ${({ background, borderRadius, margin }) =>
38
+ ${({ background, borderRadius, margin, padding, size }) =>
39
39
  background &&
40
40
  `
41
41
  display: flex;
42
42
  align-items: center;
43
43
  justify-content: center;
44
+ flex-shrink: 0;
44
45
 
45
46
  background: ${getCssColorVariable(background)};
47
+ width: ${size || '16px'};
48
+ height: ${size || '16px'};
46
49
 
47
- padding: var(--spacing-xs);
50
+ padding: ${padding || 'var(--spacing-xs)'};
48
51
  margin: ${margin || '0'};
49
52
 
50
53
  border-radius: ${background && borderRadius ? borderRadius : 'none'};
54
+
55
+ svg {
56
+ width: calc(${size || '16px'} - 2 * (${padding || 'var(--spacing-xs)'}));
57
+ height: calc(${size || '16px'} - 2 * (${padding || 'var(--spacing-xs)'}));
58
+ flex-shrink: 0;
59
+ }
51
60
  `}
52
61
 
53
62
  color: ${({ color }) => color && getCssColorVariable(color)};
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+
4
+ import type { IconProps } from '@redocly/theme/icons/types';
5
+
6
+ const Icon = (props: IconProps) => (
7
+ <svg
8
+ width="14"
9
+ height="14"
10
+ viewBox="0 0 14 14"
11
+ fill="none"
12
+ xmlns="http://www.w3.org/2000/svg"
13
+ {...props}
14
+ >
15
+ <path
16
+ d="M10.5 7.00875C9.74669 7.00947 9.01371 7.25321 8.40999 7.70375L6.29999 5.59375C6.75586 4.99443 7.00185 4.26175 6.99999 3.50875C7.00197 2.72021 6.73759 1.9541 6.24973 1.33459C5.76186 0.715073 5.07908 0.278462 4.31205 0.0955081C3.54502 -0.0874454 2.73868 -0.00601915 2.02371 0.326591C1.30874 0.659201 0.727035 1.2235 0.372873 1.92805C0.0187108 2.63259 -0.087157 3.43608 0.0724264 4.20832C0.23201 4.98055 0.647693 5.67627 1.25211 6.18272C1.85652 6.68917 2.61425 6.97668 3.4025 6.99864C4.19074 7.02061 4.96331 6.77576 5.59499 6.30375L7.69999 8.41375C7.22812 9.04527 6.98326 9.81759 7.00508 10.6056C7.0269 11.3937 7.31412 12.1512 7.82021 12.7557C8.32631 13.3601 9.02164 13.776 9.79358 13.9359C10.5655 14.0959 11.3688 13.9906 12.0735 13.637C12.7781 13.2834 13.3427 12.7024 13.6758 11.9879C14.009 11.2734 14.0912 10.4674 13.9091 9.70036C13.727 8.93334 13.2913 8.25026 12.6726 7.76174C12.0539 7.27323 11.2883 7.00791 10.5 7.00875ZM0.999993 3.50875C0.999993 3.0143 1.14662 2.53095 1.42132 2.11983C1.69602 1.70871 2.08647 1.38827 2.54328 1.19906C3.0001 1.00984 3.50277 0.960328 3.98772 1.05679C4.47267 1.15325 4.91813 1.39136 5.26776 1.74099C5.61739 2.09062 5.85549 2.53608 5.95196 3.02103C6.04842 3.50598 5.99891 4.00865 5.80969 4.46546C5.62047 4.92228 5.30004 5.31272 4.88892 5.58743C4.4778 5.86213 3.99445 6.00875 3.49999 6.00875C2.83695 6.00875 2.20107 5.74536 1.73223 5.27652C1.26339 4.80768 0.999993 4.1718 0.999993 3.50875Z"
17
+ fill="currentColor"
18
+ />
19
+ </svg>
20
+ );
21
+
22
+ export const ConnectIcon = styled(Icon).attrs(() => ({
23
+ 'data-component-name': 'icons/ConnectIcon/ConnectIcon',
24
+ }))<IconProps>`
25
+ height: ${({ size }) => size || '14px'};
26
+ width: ${({ size }) => size || '14px'};
27
+ `;
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+
4
+ import type { IconProps } from '@redocly/theme/icons/types';
5
+
6
+ const Icon = (props: IconProps) => (
7
+ <svg
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ width="16"
10
+ height="16"
11
+ viewBox="0 0 16 16"
12
+ fill="currentColor"
13
+ {...props}
14
+ >
15
+ <path
16
+ d="M14.252 4.06812L8.25195 0.568119C8.17548 0.523507 8.08853 0.5 8 0.5C7.91147 0.5 7.82452 0.523507 7.74805 0.568119L1.74805 4.06812C1.67257 4.11215 1.60994 4.1752 1.56642 4.25099C1.5229 4.32677 1.5 4.41263 1.5 4.50002V11.5C1.5 11.5874 1.5229 11.6733 1.56642 11.7491C1.60994 11.8248 1.67257 11.8879 1.74805 11.9319L7.74805 15.4319C7.82452 15.4765 7.91147 15.5 8 15.5C8.08853 15.5 8.17548 15.4765 8.25195 15.4319L14.252 11.9319C14.3274 11.8879 14.3901 11.8248 14.4336 11.7491C14.4771 11.6733 14.5 11.5874 14.5 11.5V4.50002C14.5 4.41263 14.4771 4.32677 14.4336 4.25099C14.3901 4.1752 14.3274 4.11215 14.252 4.06812ZM8 1.57887L13.0078 4.50002L8 7.42117L2.9922 4.50002L8 1.57887ZM2.5 5.37062L7.5 8.28712V14.1294L2.5 11.2129V5.37062ZM8.5 14.1294V8.28712L13.5 5.37062V11.2129L8.5 14.1294Z"
17
+ fill="currentColor"
18
+ />
19
+ </svg>
20
+ );
21
+
22
+ export const CubeIcon = styled(Icon).attrs(() => ({
23
+ 'data-component-name': 'icons/CubeIcon/CubeIcon',
24
+ }))<IconProps>`
25
+ height: ${({ size }) => size || '16px'};
26
+ width: ${({ size }) => size || '16px'};
27
+ `;
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+
4
+ import type { IconProps } from '@redocly/theme/icons/types';
5
+
6
+ import { getCssColorVariable } from '@redocly/theme/core/utils';
7
+
8
+ const Icon = (props: IconProps) => (
9
+ <svg viewBox="0 0 12 12" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
10
+ <path d="M10.5 4.5V3.75H8.25V1.5H7.5V3.75H4.5V1.5H3.75V3.75H1.5V4.5H3.75V7.5H1.5V8.25H3.75V10.5H4.5V8.25H7.5V10.5H8.25V8.25H10.5V7.5H8.25V4.5H10.5ZM7.5 7.5H4.5V4.5H7.5V7.5Z" />
11
+ </svg>
12
+ );
13
+
14
+ export const HashtagIcon = styled(Icon).attrs(() => ({
15
+ 'data-component-name': 'icons/HashtagIcon/HashtagIcon',
16
+ }))<IconProps>`
17
+ path {
18
+ fill: ${({ color }) => getCssColorVariable(color)};
19
+ }
20
+
21
+ height: ${({ size }) => size || '16px'};
22
+ width: ${({ size }) => size || '16px'};
23
+ `;
@@ -6,29 +6,11 @@ import type { IconProps } from '@redocly/theme/icons/types';
6
6
  import { getCssColorVariable } from '@redocly/theme/core/utils';
7
7
 
8
8
  const Icon = (props: IconProps) => (
9
- <svg
10
- width="18"
11
- height="18"
12
- viewBox="0 0 18 18"
13
- fill="none"
14
- xmlns="http://www.w3.org/2000/svg"
15
- {...props}
16
- >
17
- <g clipPath="url(#clip0_4053_1165)">
18
- <path
19
- d="M14.625 6.19973C14.625 8.69176 12.6173 10.712 10.1406 10.712H2.8125V10.2717C5.04753 10.2717 6.85938 8.44864 6.85938 6.19973C6.85938 3.95082 5.04753 2.12772 2.8125 2.12772V1.6875H10.1406C12.6173 1.6875 14.625 3.70769 14.625 6.19973Z"
20
- fill="#2467F2"
21
- />
22
- <path
23
- d="M14.625 16.875C14.625 14.383 12.6173 12.3628 10.1406 12.3628H2.8125V12.803C5.04753 12.803 6.85938 14.6261 6.85938 16.875H14.625Z"
24
- fill="#2467F2"
25
- />
9
+ <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg" {...props}>
10
+ <g>
11
+ <path d="M14.625 6.19973C14.625 8.69176 12.6173 10.712 10.1406 10.712H2.8125V10.2717C5.04753 10.2717 6.85938 8.44864 6.85938 6.19973C6.85938 3.95082 5.04753 2.12772 2.8125 2.12772V1.6875H10.1406C12.6173 1.6875 14.625 3.70769 14.625 6.19973Z" />
12
+ <path d="M14.625 16.875C14.625 14.383 12.6173 12.3628 10.1406 12.3628H2.8125V12.803C5.04753 12.803 6.85938 14.6261 6.85938 16.875H14.625Z" />
26
13
  </g>
27
- <defs>
28
- <clipPath id="clip0_4053_1165">
29
- <rect width="18" height="18" fill="white" />
30
- </clipPath>
31
- </defs>
32
14
  </svg>
33
15
  );
34
16
 
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+
4
+ import type { IconProps } from '@redocly/theme/icons/types';
5
+
6
+ import { getCssColorVariable } from '@redocly/theme/core/utils';
7
+
8
+ const Icon = (props: IconProps) => {
9
+ const { color, ...restProps } = props;
10
+
11
+ return (
12
+ <svg
13
+ width="14"
14
+ height="14"
15
+ viewBox="0 0 14 14"
16
+ fill="none"
17
+ xmlns="http://www.w3.org/2000/svg"
18
+ {...restProps}
19
+ >
20
+ <path
21
+ d="M3.0625 0.875H0.875V7H3.0625V0.875Z"
22
+ fill={getCssColorVariable(color) || '#DCDDE5'}
23
+ />
24
+ <path
25
+ d="M10.0625 0.875H3.9375V7.35118L5.26846 9.34771L5.63828 11.9362C5.66886 12.1443 5.77308 12.3346 5.932 12.4725C6.09092 12.6103 6.29402 12.6866 6.5044 12.6875H6.5625C6.91048 12.6871 7.2441 12.5487 7.49016 12.3027C7.73621 12.0566 7.87462 11.723 7.875 11.375V8.75H11.375C11.839 8.74948 12.2838 8.56494 12.6119 8.23686C12.9399 7.90879 13.1245 7.46397 13.125 7V3.9375C13.1241 3.12555 12.8012 2.34712 12.227 1.77298C11.6529 1.19885 10.8744 0.875903 10.0625 0.875Z"
26
+ fill={getCssColorVariable(color) || '#DCDDE5'}
27
+ />
28
+ </svg>
29
+ );
30
+ };
31
+
32
+ export const ThumbDownFilledIcon = styled(Icon).attrs(() => ({
33
+ 'data-component-name': 'icons/ThumbDownFilledIcon/ThumbDownFilledIcon',
34
+ }))<IconProps>`
35
+ height: ${({ size }) => size || '14px'};
36
+ width: ${({ size }) => size || '14px'};
37
+ color: ${({ color }) => color && getCssColorVariable(color)};
38
+ `;