@redocly/theme 0.60.0-next.1 → 0.60.0-next.3

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 (294) hide show
  1. package/lib/components/Buttons/ConnectMCPButton.js +3 -3
  2. package/lib/components/Buttons/variables.js +2 -0
  3. package/lib/components/Catalog/CatalogCardView/CatalogCard.js +4 -3
  4. package/lib/components/Catalog/CatalogEntity/CatalogEntity.js +5 -1
  5. package/lib/components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.js +2 -2
  6. package/lib/components/Catalog/CatalogEntity/CatalogEntityLinks.js +4 -1
  7. package/lib/components/Catalog/CatalogEntity/CatalogEntityMetadata.js +1 -0
  8. package/lib/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.js +4 -1
  9. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.js +4 -1
  10. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.js +4 -1
  11. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.js +4 -1
  12. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/FormatProperty.js +4 -1
  13. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.js +4 -1
  14. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.js +4 -1
  15. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.js +4 -1
  16. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.js +4 -1
  17. package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.js +2 -2
  18. package/lib/components/Catalog/CatalogFilter/CatalogFilterDateRange.js +2 -2
  19. package/lib/components/Catalog/CatalogSelector.js +1 -1
  20. package/lib/components/Catalog/CatalogSortButton.js +4 -1
  21. package/lib/components/Catalog/CatalogTableView/CatalogTableHeaderCell.js +2 -2
  22. package/lib/components/Catalog/CatalogTableView/CatalogTableViewRow.js +2 -2
  23. package/lib/components/Catalog/CatalogTagsWithTooltip.js +5 -1
  24. package/lib/components/Catalog/variables.dark.js +1 -1
  25. package/lib/components/Catalog/variables.js +5 -3
  26. package/lib/components/CatalogClassic/variables.js +1 -1
  27. package/lib/components/CodeBlock/CodeBlock.js +3 -1
  28. package/lib/components/CodeBlock/CodeBlockTabs.js +3 -3
  29. package/lib/components/DatePicker/variables.js +2 -0
  30. package/lib/components/Feedback/Mood.js +2 -2
  31. package/lib/components/Feedback/Rating.js +2 -2
  32. package/lib/components/Filter/FilterDateRange.js +2 -2
  33. package/lib/components/Filter/FilterSelect.js +5 -1
  34. package/lib/components/JsonViewer/{helpers.js → Helpers.js} +1 -1
  35. package/lib/components/JsonViewer/JsonViewer.js +2 -2
  36. package/lib/components/Loaders/Loading.js +4 -1
  37. package/lib/components/Markdown/Markdown.js +9 -9
  38. package/lib/components/Markdown/styles/{baseTable.js → base-table.js} +1 -1
  39. package/lib/components/Markdown/styles/{headingAnchor.js → heading-anchor.js} +1 -1
  40. package/lib/components/Menu/MenuItem.js +5 -1
  41. package/lib/components/OpenApiDocs/hooks/AfterOpenApiOperation.js +1 -0
  42. package/lib/components/OpenApiDocs/hooks/AfterOpenApiTitle.js +1 -0
  43. package/lib/components/OpenApiDocs/hooks/BeforeOpenApiOperation.js +1 -0
  44. package/lib/components/OpenApiDocs/hooks/OpenApiFooter.js +3 -2
  45. package/lib/components/OpenApiDocs/hooks/OpenApiHeader.js +3 -2
  46. package/lib/components/Search/FilterFields/SearchFilterFieldSelect.js +2 -1
  47. package/lib/components/Search/FilterFields/SearchFilterFieldTags.js +7 -1
  48. package/lib/components/Search/SearchAiMessage.js +20 -18
  49. package/lib/components/Search/SearchAiNegativeFeedbackForm.d.ts +5 -3
  50. package/lib/components/Search/SearchAiNegativeFeedbackForm.js +5 -4
  51. package/lib/components/Search/SearchGroups.js +4 -1
  52. package/lib/components/Search/SearchHighlight.js +1 -0
  53. package/lib/components/Search/SearchItem.js +9 -2
  54. package/lib/components/Search/variables.js +2 -0
  55. package/lib/components/Segmented/Segmented.d.ts +1 -1
  56. package/lib/components/Segmented/Segmented.js +2 -2
  57. package/lib/components/Select/Select.d.ts +1 -1
  58. package/lib/components/Select/Select.js +4 -2
  59. package/lib/components/Select/SelectInput.d.ts +1 -1
  60. package/lib/components/Select/SelectInput.js +2 -0
  61. package/lib/components/SidebarActions/styled.d.ts +5 -4
  62. package/lib/components/SidebarActions/styled.js +9 -5
  63. package/lib/components/Tag/Tag.d.ts +1 -1
  64. package/lib/components/Tag/variables.dark.js +8 -0
  65. package/lib/components/Tag/variables.js +8 -0
  66. package/lib/components/Tooltip/Tooltip.js +2 -0
  67. package/lib/components/VersionPicker/VersionPicker.d.ts +1 -1
  68. package/lib/core/constants/index.d.ts +1 -0
  69. package/lib/core/constants/index.js +1 -0
  70. package/lib/core/constants/request-methods.d.ts +1 -0
  71. package/lib/core/constants/request-methods.js +14 -0
  72. package/lib/core/hoc/index.d.ts +1 -1
  73. package/lib/core/hoc/index.js +1 -1
  74. package/lib/core/hoc/{typedMemo.js → typed-memo.js} +1 -1
  75. package/lib/core/hooks/__tests__/mocks/mock-intersection-observer.d.ts +1 -1
  76. package/lib/core/hooks/__tests__/mocks/mock-intersection-observer.js +1 -3
  77. package/lib/core/hooks/catalog/{useCatalogEntities.js → use-catalog-entities.js} +1 -1
  78. package/lib/core/hooks/catalog/{useCatalogEntitySchema.d.ts → use-catalog-entity-schema.d.ts} +1 -1
  79. package/lib/core/hooks/catalog/{useCatalogEntitySchema.js → use-catalog-entity-schema.js} +1 -1
  80. package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.js → use-catalog-table-header-cell-actions.js} +1 -1
  81. package/lib/core/hooks/catalog/{useCatalogTableViewRow.js → use-catalog-table-view-row.js} +1 -1
  82. package/lib/core/hooks/catalog/{useGraph.js → use-graph.js} +2 -2
  83. package/lib/core/hooks/code-walkthrough/use-code-walkthrough-controls.js +1 -0
  84. package/lib/core/hooks/code-walkthrough/use-code-walkthrough-steps.d.ts +1 -0
  85. package/lib/core/hooks/code-walkthrough/use-renderable-files.js +2 -2
  86. package/lib/core/hooks/index.d.ts +5 -2
  87. package/lib/core/hooks/index.js +5 -2
  88. package/lib/core/hooks/menu/use-collapse.js +1 -0
  89. package/lib/core/hooks/menu/use-mobile-menu-items.js +1 -0
  90. package/lib/core/hooks/use-mcp-config.js +9 -6
  91. package/lib/core/hooks/use-page-actions.js +5 -3
  92. package/lib/core/hooks/use-telemetry-fallback.js +1 -0
  93. package/lib/core/hooks/use-theme-config.js +1 -0
  94. package/lib/core/hooks/use-theme-hooks.js +1 -0
  95. package/lib/core/openapi/index.d.ts +2 -1
  96. package/lib/core/openapi/index.js +5 -3
  97. package/lib/core/templates/Markdown.js +1 -0
  98. package/lib/core/types/hooks.d.ts +6 -0
  99. package/lib/core/types/index.d.ts +20 -19
  100. package/lib/core/types/index.js +0 -19
  101. package/lib/core/types/l10n.d.ts +1 -1
  102. package/lib/core/types/search.d.ts +1 -0
  103. package/lib/core/types/sidebar.d.ts +1 -0
  104. package/lib/core/utils/{dynamic.js → Dynamic.js} +1 -1
  105. package/lib/core/utils/{get-file-icon.js → GetFileIcon.js} +1 -1
  106. package/lib/core/utils/args-typecheck.d.ts +2 -2
  107. package/lib/core/utils/clipboard-service.js +2 -0
  108. package/lib/core/utils/get-operation-color.d.ts +7 -0
  109. package/lib/core/utils/get-operation-color.js +13 -0
  110. package/lib/core/utils/get-user-agent.js +1 -0
  111. package/lib/core/utils/index.d.ts +3 -2
  112. package/lib/core/utils/index.js +3 -2
  113. package/lib/core/utils/js-utils.d.ts +1 -1
  114. package/lib/core/utils/load-and-navigate.js +1 -0
  115. package/lib/core/utils/markdoc.js +1 -0
  116. package/lib/core/utils/parse-style-string.js +1 -0
  117. package/lib/ext/configure.d.ts +1 -1
  118. package/lib/index.d.ts +3 -3
  119. package/lib/index.js +2 -3
  120. package/lib/layouts/ThreePanelLayout.js +4 -4
  121. package/lib/markdoc/components/Cards/variables.dark.js +2 -0
  122. package/lib/markdoc/components/Cards/variables.js +2 -0
  123. package/lib/markdoc/components/CodeWalkthrough/CodePanelHeader.js +1 -0
  124. package/lib/markdoc/tags/code-walkthrough.js +1 -0
  125. package/lib/markdoc/tags/html.js +1 -0
  126. package/package.json +2 -2
  127. package/src/components/Button/Button.tsx +1 -0
  128. package/src/components/Buttons/ConnectMCPButton.tsx +1 -1
  129. package/src/components/Buttons/variables.ts +2 -0
  130. package/src/components/Catalog/CatalogCardView/CatalogCard.tsx +4 -3
  131. package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +4 -0
  132. package/src/components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.tsx +1 -1
  133. package/src/components/Catalog/CatalogEntity/CatalogEntityLinks.tsx +5 -1
  134. package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +1 -0
  135. package/src/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.tsx +5 -1
  136. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.tsx +5 -1
  137. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.tsx +5 -1
  138. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.tsx +5 -1
  139. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/FormatProperty.tsx +5 -1
  140. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.tsx +5 -1
  141. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.tsx +5 -1
  142. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.tsx +5 -1
  143. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.tsx +5 -1
  144. package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +3 -1
  145. package/src/components/Catalog/CatalogFilter/CatalogFilterDateRange.tsx +2 -2
  146. package/src/components/Catalog/CatalogSelector.tsx +2 -2
  147. package/src/components/Catalog/CatalogSortButton.tsx +5 -1
  148. package/src/components/Catalog/CatalogTableView/CatalogTableHeaderCell.tsx +1 -1
  149. package/src/components/Catalog/CatalogTableView/CatalogTableViewRow.tsx +1 -1
  150. package/src/components/Catalog/CatalogTagsWithTooltip.tsx +8 -1
  151. package/src/components/Catalog/variables.dark.ts +1 -1
  152. package/src/components/Catalog/variables.ts +5 -3
  153. package/src/components/CatalogClassic/CatalogClassicInfoBlock.tsx +1 -0
  154. package/src/components/CatalogClassic/variables.ts +1 -1
  155. package/src/components/CodeBlock/CodeBlock.tsx +4 -0
  156. package/src/components/CodeBlock/CodeBlockControls.tsx +1 -0
  157. package/src/components/CodeBlock/CodeBlockTabs.tsx +1 -1
  158. package/src/components/DatePicker/variables.ts +3 -1
  159. package/src/components/Feedback/Mood.tsx +2 -2
  160. package/src/components/Feedback/Rating.tsx +2 -2
  161. package/src/components/Filter/FilterDateRange.tsx +2 -2
  162. package/src/components/Filter/FilterSelect.tsx +1 -0
  163. package/src/components/JsonViewer/{helpers.tsx → Helpers.tsx} +2 -0
  164. package/src/components/JsonViewer/JsonViewer.tsx +2 -1
  165. package/src/components/LastUpdated/LastUpdated.tsx +1 -0
  166. package/src/components/Loaders/Loading.tsx +5 -1
  167. package/src/components/Markdown/Markdown.tsx +2 -2
  168. package/src/components/Menu/MenuItem.tsx +6 -2
  169. package/src/components/OpenApiDocs/hooks/AfterOpenApiOperation.tsx +1 -1
  170. package/src/components/OpenApiDocs/hooks/AfterOpenApiTitle.tsx +1 -1
  171. package/src/components/OpenApiDocs/hooks/BeforeOpenApiOperation.tsx +1 -1
  172. package/src/components/OpenApiDocs/hooks/OpenApiFooter.tsx +1 -1
  173. package/src/components/OpenApiDocs/hooks/OpenApiHeader.tsx +1 -1
  174. package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +4 -1
  175. package/src/components/Search/FilterFields/SearchFilterFieldTags.tsx +7 -1
  176. package/src/components/Search/SearchAiMessage.tsx +42 -37
  177. package/src/components/Search/SearchAiNegativeFeedbackForm.tsx +7 -5
  178. package/src/components/Search/SearchGroups.tsx +4 -1
  179. package/src/components/Search/SearchHighlight.tsx +1 -0
  180. package/src/components/Search/SearchItem.tsx +15 -3
  181. package/src/components/Search/variables.ts +2 -0
  182. package/src/components/Segmented/Segmented.tsx +2 -2
  183. package/src/components/Select/Select.tsx +8 -4
  184. package/src/components/Select/SelectInput.tsx +10 -1
  185. package/src/components/SidebarActions/{styled.tsx → styled.ts} +11 -4
  186. package/src/components/Tag/Tag.tsx +2 -1
  187. package/src/components/Tag/variables.dark.ts +8 -0
  188. package/src/components/Tag/variables.ts +8 -0
  189. package/src/components/Tooltip/Tooltip.tsx +2 -1
  190. package/src/components/VersionPicker/VersionPicker.tsx +2 -1
  191. package/src/core/constants/index.ts +1 -0
  192. package/src/core/constants/request-methods.ts +10 -0
  193. package/src/core/hoc/index.ts +1 -1
  194. package/src/core/hooks/__mocks__/use-theme-hooks.ts +2 -2
  195. package/src/core/hooks/__tests__/mocks/mock-intersection-observer.ts +9 -8
  196. package/src/core/hooks/catalog/{useCatalogEntitySchema.ts → use-catalog-entity-schema.ts} +3 -3
  197. package/src/core/hooks/catalog/{useGraph.ts → use-graph.ts} +1 -1
  198. package/src/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.ts +1 -1
  199. package/src/core/hooks/code-walkthrough/__mocks__/mock-intersection-observer.ts +24 -0
  200. package/src/core/hooks/code-walkthrough/use-code-walkthrough-controls.ts +1 -0
  201. package/src/core/hooks/code-walkthrough/use-code-walkthrough-steps.ts +2 -2
  202. package/src/core/hooks/code-walkthrough/use-renderable-files.ts +1 -1
  203. package/src/core/hooks/index.ts +5 -2
  204. package/src/core/hooks/menu/use-collapse.ts +3 -3
  205. package/src/core/hooks/menu/use-mobile-menu-items.ts +1 -0
  206. package/src/core/hooks/use-mcp-config.ts +11 -5
  207. package/src/core/hooks/use-page-actions.ts +3 -1
  208. package/src/core/hooks/use-telemetry-fallback.ts +1 -0
  209. package/src/core/hooks/use-theme-config.ts +1 -0
  210. package/src/core/hooks/use-theme-hooks.ts +2 -1
  211. package/src/core/openapi/index.ts +2 -1
  212. package/src/core/templates/Markdown.tsx +1 -0
  213. package/src/core/types/catalog.ts +3 -1
  214. package/src/core/types/filter.ts +1 -0
  215. package/src/core/types/hooks.ts +6 -0
  216. package/src/core/types/index.ts +20 -19
  217. package/src/core/types/l10n.ts +24 -1
  218. package/src/core/types/search.ts +2 -1
  219. package/src/core/types/segmented.ts +1 -0
  220. package/src/core/types/select.ts +1 -0
  221. package/src/core/types/sidebar.ts +1 -0
  222. package/src/core/utils/args-typecheck.ts +2 -2
  223. package/src/core/utils/clipboard-service.ts +2 -0
  224. package/src/core/utils/get-operation-color.ts +18 -0
  225. package/src/core/utils/get-user-agent.ts +1 -0
  226. package/src/core/utils/index.ts +3 -2
  227. package/src/core/utils/js-utils.ts +1 -1
  228. package/src/core/utils/load-and-navigate.ts +1 -0
  229. package/src/core/utils/markdoc.ts +1 -0
  230. package/src/core/utils/parse-style-string.ts +1 -0
  231. package/src/ext/configure.ts +2 -1
  232. package/src/index.ts +3 -3
  233. package/src/layouts/ThreePanelLayout.tsx +1 -1
  234. package/src/markdoc/components/Cards/variables.dark.ts +2 -0
  235. package/src/markdoc/components/Cards/variables.ts +3 -1
  236. package/src/markdoc/components/CodeWalkthrough/CodePanelHeader.tsx +1 -1
  237. package/src/markdoc/tags/code-walkthrough.ts +2 -0
  238. package/src/markdoc/tags/html.ts +1 -0
  239. package/lib/core/hooks/__mocks__/index.d.ts +0 -28
  240. package/lib/core/hooks/__mocks__/index.js +0 -45
  241. package/lib/core/hooks/__mocks__/search/use-recent-searches.d.ts +0 -5
  242. package/lib/core/hooks/__mocks__/search/use-recent-searches.js +0 -13
  243. package/lib/core/hooks/__mocks__/search/use-search-filter.d.ts +0 -8
  244. package/lib/core/hooks/__mocks__/search/use-search-filter.js +0 -15
  245. package/lib/core/hooks/__mocks__/search/use-suggested-pages.d.ts +0 -4
  246. package/lib/core/hooks/__mocks__/search/use-suggested-pages.js +0 -13
  247. package/lib/core/hooks/__mocks__/use-controlled-state.d.ts +0 -1
  248. package/lib/core/hooks/__mocks__/use-controlled-state.js +0 -7
  249. package/lib/core/hooks/__mocks__/use-element-size.d.ts +0 -4
  250. package/lib/core/hooks/__mocks__/use-element-size.js +0 -9
  251. package/lib/core/hooks/__mocks__/use-input-key-commands.d.ts +0 -3
  252. package/lib/core/hooks/__mocks__/use-input-key-commands.js +0 -8
  253. package/lib/core/hooks/__mocks__/use-mobile-menu.d.ts +0 -1
  254. package/lib/core/hooks/__mocks__/use-mobile-menu.js +0 -7
  255. package/lib/core/hooks/__mocks__/use-theme-config.d.ts +0 -8
  256. package/lib/core/hooks/__mocks__/use-theme-config.js +0 -13
  257. package/lib/core/hooks/__mocks__/use-theme-hooks.d.ts +0 -69
  258. package/lib/core/hooks/__mocks__/use-theme-hooks.js +0 -94
  259. package/lib/core/hooks/__mocks__/use-time-ago.d.ts +0 -3
  260. package/lib/core/hooks/__mocks__/use-time-ago.js +0 -8
  261. package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.d.ts +0 -10
  262. package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.js +0 -56
  263. package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.d.ts +0 -1
  264. package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.js +0 -35
  265. /package/lib/components/JsonViewer/{helpers.d.ts → Helpers.d.ts} +0 -0
  266. /package/lib/components/Markdown/styles/{baseTable.d.ts → base-table.d.ts} +0 -0
  267. /package/lib/components/Markdown/styles/{headingAnchor.d.ts → heading-anchor.d.ts} +0 -0
  268. /package/lib/core/hoc/{typedMemo.d.ts → typed-memo.d.ts} +0 -0
  269. /package/lib/core/hooks/catalog/{useCatalogEntities.d.ts → use-catalog-entities.d.ts} +0 -0
  270. /package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.d.ts → use-catalog-table-header-cell-actions.d.ts} +0 -0
  271. /package/lib/core/hooks/catalog/{useCatalogTableViewRow.d.ts → use-catalog-table-view-row.d.ts} +0 -0
  272. /package/lib/core/hooks/catalog/{useGraph.d.ts → use-graph.d.ts} +0 -0
  273. /package/lib/core/utils/{dynamic.d.ts → Dynamic.d.ts} +0 -0
  274. /package/lib/core/utils/{get-file-icon.d.ts → GetFileIcon.d.ts} +0 -0
  275. /package/src/components/Markdown/styles/{baseTable.ts → base-table.ts} +0 -0
  276. /package/src/components/Markdown/styles/{headingAnchor.ts → heading-anchor.ts} +0 -0
  277. /package/src/components/Panel/{PanelBody.ts → PanelBody.tsx} +0 -0
  278. /package/src/components/Panel/{PanelHeader.ts → PanelHeader.tsx} +0 -0
  279. /package/src/components/Panel/{PanelHeaderTitle.ts → PanelHeaderTitle.tsx} +0 -0
  280. /package/src/components/StatusCode/{StatusCode.ts → StatusCode.tsx} +0 -0
  281. /package/src/components/Typography/{CompactTypography.ts → CompactTypography.tsx} +0 -0
  282. /package/src/components/Typography/{Emphasis.ts → Emphasis.tsx} +0 -0
  283. /package/src/components/Typography/{H1.ts → H1.tsx} +0 -0
  284. /package/src/components/Typography/{H2.ts → H2.tsx} +0 -0
  285. /package/src/components/Typography/{H3.ts → H3.tsx} +0 -0
  286. /package/src/components/Typography/{H4.ts → H4.tsx} +0 -0
  287. /package/src/components/Typography/{SectionHeader.ts → SectionHeader.tsx} +0 -0
  288. /package/src/components/Typography/{Typography.ts → Typography.tsx} +0 -0
  289. /package/src/core/hoc/{typedMemo.ts → typed-memo.ts} +0 -0
  290. /package/src/core/hooks/catalog/{useCatalogEntities.ts → use-catalog-entities.ts} +0 -0
  291. /package/src/core/hooks/catalog/{useCatalogTableHeaderCellActions.ts → use-catalog-table-header-cell-actions.ts} +0 -0
  292. /package/src/core/hooks/catalog/{useCatalogTableViewRow.ts → use-catalog-table-view-row.ts} +0 -0
  293. /package/src/core/utils/{dynamic.tsx → Dynamic.tsx} +0 -0
  294. /package/src/core/utils/{get-file-icon.tsx → GetFileIcon.tsx} +0 -0
@@ -2,8 +2,8 @@ import React, { useState, useEffect } from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
4
  import type { JSX } from 'react';
5
- import type { FeedbackType } from '@redocly/theme/core/types';
6
5
 
6
+ import { FeedbackType } from '@redocly/theme/core/types';
7
7
  import { Button } from '@redocly/theme/components/Button/Button';
8
8
  import { CloseIcon } from '@redocly/theme/icons/CloseIcon/CloseIcon';
9
9
  import { ArrowLeftIcon } from '@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon';
@@ -12,8 +12,9 @@ import { useThemeHooks } from '@redocly/theme/core/hooks';
12
12
 
13
13
  export type SearchAiNegativeFeedbackFormProps = {
14
14
  messageId: string;
15
- onClose: (messageId: string, feedback: FeedbackType | undefined) => void;
15
+ onClose: (messageId: string, feedback: FeedbackType, reason?: string) => void;
16
16
  onSubmit: (reason: string) => void;
17
+ formRef?: React.Ref<HTMLDivElement>;
17
18
  };
18
19
 
19
20
  const NEGATIVE_FEEDBACK_DEFAULT_REASONS = [
@@ -27,6 +28,7 @@ export function SearchAiNegativeFeedbackForm({
27
28
  messageId,
28
29
  onClose,
29
30
  onSubmit,
31
+ formRef,
30
32
  }: SearchAiNegativeFeedbackFormProps): JSX.Element {
31
33
  const { useTranslate } = useThemeHooks();
32
34
  const { translate } = useTranslate();
@@ -54,7 +56,7 @@ export function SearchAiNegativeFeedbackForm({
54
56
  }, [showMoreInput]);
55
57
 
56
58
  return (
57
- <FeedbackFormWrapper data-component-name="Search/SearchAiNegativeFeedbackForm">
59
+ <FeedbackFormWrapper data-component-name="Search/SearchAiNegativeFeedbackForm" ref={formRef}>
58
60
  <FeedbackHeader>
59
61
  {showMoreInput ? (
60
62
  <BackButton
@@ -72,7 +74,7 @@ export function SearchAiNegativeFeedbackForm({
72
74
  variant="text"
73
75
  size="small"
74
76
  icon={<CloseIcon />}
75
- onClick={() => onClose(messageId, undefined)}
77
+ onClick={() => onClose(messageId, FeedbackType.Dislike, undefined)}
76
78
  aria-label="Close feedback form"
77
79
  />
78
80
  </FeedbackHeader>
@@ -85,7 +87,7 @@ export function SearchAiNegativeFeedbackForm({
85
87
  </Button>
86
88
  ))}
87
89
  <Button variant="outlined" size="small" onClick={() => setShowMoreInput(true)}>
88
- More...
90
+ {translate('search.ai.feedback.more', 'More...')}
89
91
  </Button>
90
92
  </FeedbackReasonsWrapper>
91
93
  ) : (
@@ -9,6 +9,7 @@ import {
9
9
  type SearchFilterItem,
10
10
  } from '@redocly/theme/core/types';
11
11
  import { Tag } from '@redocly/theme/components/Tag/Tag';
12
+ import { useThemeHooks } from '@redocly/theme/core/hooks';
12
13
 
13
14
  type SearchGroupsProps = {
14
15
  facets: SearchFacet[];
@@ -26,6 +27,8 @@ export function SearchGroups({
26
27
  onQuickFilterReset,
27
28
  }: SearchGroupsProps): JSX.Element {
28
29
  const groupFacets = facets.filter((facet) => facet.field === groupField);
30
+ const { useTranslate } = useThemeHooks();
31
+ const { translate } = useTranslate();
29
32
 
30
33
  const handleGroupTagClick = (
31
34
  value: string,
@@ -47,7 +50,7 @@ export function SearchGroups({
47
50
  onClick={() => searchFilter.some((item) => item.isQuickFilter) && onQuickFilterReset()}
48
51
  selectable
49
52
  >
50
- All
53
+ {translate('search.groups.all', 'All')}
51
54
  </GroupTag>
52
55
  <Divider />
53
56
  {groupFacets.flatMap((facet) =>
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
4
  import type { JSX } from 'react';
5
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
5
6
  function slicer(str: string, arr: string[]): any[] {
6
7
  const markOpenIndex = str.indexOf('<mark>');
7
8
  const markCloseIndex = str.indexOf('</mark>');
@@ -9,8 +9,9 @@ import { Link } from '@redocly/theme/components/Link/Link';
9
9
  import { Image } from '@redocly/theme/components/Image/Image';
10
10
  import { searchHighlight } from '@redocly/theme/components/Search/SearchHighlight';
11
11
  import { Badge } from '@redocly/theme/components/Badge/Badge';
12
- import { trimText } from '@redocly/theme/core/utils';
12
+ import { trimText, getOperationColor } from '@redocly/theme/core/utils';
13
13
  import { ReturnKeyIcon } from '@redocly/theme/icons/ReturnKeyIcon/ReturnKeyIcon';
14
+ import { useThemeHooks } from '@redocly/theme/core/hooks';
14
15
 
15
16
  type ActiveItem<T> = T & { active?: boolean };
16
17
  export type SearchItemProps = {
@@ -32,6 +33,8 @@ export function SearchItem({
32
33
  innerRef,
33
34
  }: SearchItemProps): JSX.Element {
34
35
  const ref = useRef<HTMLAnchorElement>(null);
36
+ const { useTranslate } = useThemeHooks();
37
+ const { translate } = useTranslate();
35
38
 
36
39
  useEffect(() => {
37
40
  if (item.active) {
@@ -45,6 +48,11 @@ export function SearchItem({
45
48
  highlight.parameters && highlight.parameters.length ? highlight.parameters[0] : null;
46
49
  const shouldShowPath = document.path && document.path?.length > 1;
47
50
 
51
+ const httpColor = getOperationColor({
52
+ isAdditionalOperation: document.isAdditionalOperation,
53
+ httpVerb: document.httpMethod || '',
54
+ });
55
+
48
56
  return (
49
57
  <SearchItemWrapper
50
58
  className={className}
@@ -74,7 +82,7 @@ export function SearchItem({
74
82
  )}
75
83
  {document.httpMethod ? (
76
84
  <SearchItemOperation>
77
- <SearchItemOperationTag color={document.httpMethod}>
85
+ <SearchItemOperationTag color={httpColor}>
78
86
  {document.httpMethod.toUpperCase()}
79
87
  </SearchItemOperationTag>
80
88
  {highlight.httpPath ? searchHighlight(highlight.httpPath) : document.httpPath}
@@ -84,7 +92,11 @@ export function SearchItem({
84
92
  <SearchItemTitle>
85
93
  {highlight.title ? searchHighlight(highlight.title) : document.title}
86
94
  </SearchItemTitle>
87
- {document.deprecated ? <SearchItemBadge deprecated>Deprecated</SearchItemBadge> : null}
95
+ {document.deprecated ? (
96
+ <SearchItemBadge deprecated>
97
+ {translate('search.searchItem.deprecated', 'Deprecated')}
98
+ </SearchItemBadge>
99
+ ) : null}
88
100
  {document.badges
89
101
  ? document.badges.map(({ name, color }) => (
90
102
  <SearchItemBadge color={color || 'var(--color-info-base)'} key={name}>
@@ -1,5 +1,6 @@
1
1
  import { css } from 'styled-components';
2
2
 
3
+ /* eslint-disable theme/no-raw-colors-in-styles */
3
4
  export const search = css`
4
5
  /**
5
6
  * @tokens Search
@@ -261,3 +262,4 @@ export const search = css`
261
262
 
262
263
  // @tokens End
263
264
  `;
265
+ /* eslint-enable theme/no-raw-colors-in-styles */
@@ -2,9 +2,9 @@ import React, { forwardRef } from 'react';
2
2
  import styled, { css } from 'styled-components';
3
3
 
4
4
  import type { ForwardedRef, ReactElement } from 'react';
5
- import type { SegmentedProps } from '@redocly/theme/core/types/segmented';
5
+ import type { SegmentedProps } from '@redocly/theme/core/types';
6
6
 
7
- import { typedMemo } from '@redocly/theme/core/hoc/typedMemo';
7
+ import { typedMemo } from '@redocly/theme/core/hoc/typed-memo';
8
8
 
9
9
  function SegmentedComponent<T>(
10
10
  { options, onChange, value, className = '', size = 'regular' }: SegmentedProps<T>,
@@ -2,14 +2,14 @@ import React, { Fragment, useEffect, useId, useRef, useState } from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
4
  import type { JSX } from 'react';
5
- import type { SelectOption, SelectProps } from '@redocly/theme/core/types/select';
5
+ import type { SelectOption, SelectProps } from '@redocly/theme/core/types';
6
6
 
7
7
  import { CheckmarkIcon } from '@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon';
8
8
  import { SelectInput } from '@redocly/theme/components/Select/SelectInput';
9
9
  import { Dropdown } from '@redocly/theme/components/Dropdown/Dropdown';
10
10
  import { DropdownMenu } from '@redocly/theme/components/Dropdown/DropdownMenu';
11
11
  import { DropdownMenuItem } from '@redocly/theme/components/Dropdown/DropdownMenuItem';
12
- import { useOutsideClick } from '@redocly/theme/core/hooks';
12
+ import { useOutsideClick, useThemeHooks } from '@redocly/theme/core/hooks';
13
13
 
14
14
  export function Select<T>(props: SelectProps<T>): JSX.Element {
15
15
  const {
@@ -37,6 +37,8 @@ export function Select<T>(props: SelectProps<T>): JSX.Element {
37
37
  renderInput,
38
38
  renderDivider,
39
39
  } = props;
40
+ const { useTranslate } = useThemeHooks();
41
+ const { translate } = useTranslate();
40
42
 
41
43
  const getSelectedOptionsFromPropsValue = () => {
42
44
  const values = Array.isArray(value) ? value : [value];
@@ -231,7 +233,9 @@ export function Select<T>(props: SelectProps<T>): JSX.Element {
231
233
  >
232
234
  <SelectDropdownMenu role="listbox" footer={footer}>
233
235
  {filteredOptions.length === 0 ? (
234
- <DropdownMenuItem disabled>No results</DropdownMenuItem>
236
+ <DropdownMenuItem disabled>
237
+ {translate('select.noResults', 'No results')}
238
+ </DropdownMenuItem>
235
239
  ) : (
236
240
  filteredOptions.map((option, index) => {
237
241
  return (
@@ -258,7 +262,7 @@ export function Select<T>(props: SelectProps<T>): JSX.Element {
258
262
  {renderDivider && index !== options.length - 1 ? renderDivider() : null}
259
263
  </Fragment>
260
264
  );
261
- }) || 'No results'
265
+ }) || translate('select.noResults', 'No results')
262
266
  )}
263
267
  </SelectDropdownMenu>
264
268
  </SelectDropdown>
@@ -1,7 +1,7 @@
1
1
  import styled from 'styled-components';
2
2
  import React, { useRef } from 'react';
3
3
 
4
- import type { SelectOption } from '@redocly/theme/core/types/select';
4
+ import type { SelectOption } from '@redocly/theme/core/types';
5
5
 
6
6
  import { Tag } from '@redocly/theme/components/Tag/Tag';
7
7
  import { CloseIcon } from '@redocly/theme/icons/CloseIcon/CloseIcon';
@@ -11,7 +11,9 @@ type SelectInputProps<T> = {
11
11
  id?: string;
12
12
  listboxId?: string;
13
13
  selectedOptions: SelectOption<T>[];
14
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
14
15
  searchValue: any;
16
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
15
17
  stickyValue: any;
16
18
  onlyIcon?: boolean;
17
19
  icon?: React.ReactNode;
@@ -21,10 +23,15 @@ type SelectInputProps<T> = {
21
23
  searchable?: boolean;
22
24
  clearable?: boolean;
23
25
  inputRef?: React.ForwardedRef<HTMLInputElement>;
26
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
24
27
  clearHandler?: (value?: any) => void;
28
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
25
29
  inputBlurHandler?: (e?: any) => void;
30
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
26
31
  inputFocusHandler?: (e?: any) => void;
32
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
27
33
  searchHandler?: (e?: any) => void;
34
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
28
35
  clickHandler?: (e?: any) => void;
29
36
  };
30
37
 
@@ -50,11 +57,13 @@ export function SelectInput<T>(props: SelectInputProps<T>): React.ReactNode {
50
57
  } = props;
51
58
  const inputRef = useRef<HTMLInputElement | null>(null);
52
59
 
60
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
53
61
  const onChangeHandler = (e: any) => {
54
62
  searchHandler?.(e);
55
63
  inputRef.current?.focus();
56
64
  };
57
65
 
66
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
58
67
  const onKeyDownHandler = (e: any) => {
59
68
  if (e.key === 'Backspace' && !searchValue && selectedOptions.length) {
60
69
  clearHandler?.(selectedOptions[selectedOptions.length - 1]);
@@ -3,7 +3,7 @@ import styled, { css } from 'styled-components';
3
3
  import { breakpoints } from '@redocly/theme/core/utils';
4
4
  import { Tooltip } from '@redocly/theme/components/Tooltip/Tooltip';
5
5
 
6
- export const StyledChangeViewButton = styled.span<{ collapsedSidebar?: boolean }>`
6
+ const StyledChangeViewButton = styled.span<{ collapsedSidebar?: boolean }>`
7
7
  display: flex;
8
8
  position: relative;
9
9
  flex-direction: ${({ collapsedSidebar }) => (collapsedSidebar ? 'column' : 'row')};
@@ -16,7 +16,7 @@ export const StyledChangeViewButton = styled.span<{ collapsedSidebar?: boolean }
16
16
  padding: calc(var(--spacing-unit) / 2);
17
17
  `;
18
18
 
19
- export const StyledChangeViewButtonWrap = styled(Tooltip)<{ active?: boolean }>`
19
+ const StyledChangeViewButtonWrap = styled(Tooltip)<{ active?: boolean }>`
20
20
  width: 20px;
21
21
  height: 20px;
22
22
  border-radius: var(--border-radius);
@@ -26,7 +26,7 @@ export const StyledChangeViewButtonWrap = styled(Tooltip)<{ active?: boolean }>`
26
26
  background-color: ${({ active }) => active && 'var(--segmented-buttons-bg-color-inner)'};
27
27
  `;
28
28
 
29
- export const ControlsWrap = styled.span<{
29
+ const ControlsWrap = styled.span<{
30
30
  iconCount?: number;
31
31
  isCollapsed?: boolean;
32
32
  }>`
@@ -59,10 +59,17 @@ export const ControlsWrap = styled.span<{
59
59
  }
60
60
  `;
61
61
 
62
- export const ControlsWrapChangeLayoutButtons = styled.span<{ isCollapsed?: boolean }>`
62
+ const ControlsWrapChangeLayoutButtons = styled.span<{ isCollapsed?: boolean }>`
63
63
  display: flex;
64
64
  bottom: 0;
65
65
  flex-direction: ${({ isCollapsed }) => (isCollapsed ? 'column-reverse' : 'row')};
66
66
  gap: ${({ isCollapsed }) => (isCollapsed ? '10px' : 'var(--spacing-xs)')};
67
67
  align-items: center;
68
68
  `;
69
+
70
+ export {
71
+ StyledChangeViewButton,
72
+ StyledChangeViewButtonWrap,
73
+ ControlsWrapChangeLayoutButtons,
74
+ ControlsWrap,
75
+ };
@@ -12,7 +12,7 @@ type SubjectStatusColor = 'active' | 'draft' | 'deprecated' | 'product';
12
12
  type HttpColor = 'get' | 'post' | 'put' | 'delete' | 'option' | 'patch' | 'head' | 'hook' | 'link';
13
13
  type ActionColor = 'receive' | 'send';
14
14
  type ChannelColor = 'channel';
15
- type HttpStatusColor = 'http-deprecated';
15
+ type HttpStatusColor = 'http-deprecated' | 'http-additional-operation';
16
16
  type StatusColor =
17
17
  | DefaultStatusColor
18
18
  | ActionStatusColor
@@ -120,6 +120,7 @@ export function Tag({
120
120
  return React.cloneElement(element, {
121
121
  ...props,
122
122
  children: truncateText(props.children, maxLen),
123
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
123
124
  } as any);
124
125
  }
125
126
  }
@@ -1,5 +1,6 @@
1
1
  import { css } from 'styled-components';
2
2
 
3
+ /* eslint-disable theme/no-raw-colors-in-styles */
3
4
  export const tagDarkMode = css`
4
5
  --tag-close-button-bg-color-focus: var(--color-warm-grey-6); // @presenter Color
5
6
 
@@ -229,6 +230,12 @@ export const tagDarkMode = css`
229
230
  --tag-bg-color-hover: #373776; // @presenter Color
230
231
  }
231
232
 
233
+ .tag-http-additional-operation {
234
+ --tag-color: #FCAB69; // @presenter Color
235
+ --tag-bg-color: #523926; // @presenter Color
236
+ --tag-bg-color-hover: #694830; // @presenter Color
237
+ }
238
+
232
239
  .tag-receive {
233
240
  --tag-color: #88CF82; // @presenter Color
234
241
  --tag-bg-color: #23421F; // @presenter Color
@@ -276,3 +283,4 @@ export const tagDarkMode = css`
276
283
  --tag-bg-color-hover: transparent;
277
284
  }
278
285
  `;
286
+ /* eslint-enable theme/no-raw-colors-in-styles */
@@ -1,5 +1,6 @@
1
1
  import { css } from 'styled-components';
2
2
 
3
+ /* eslint-disable theme/no-raw-colors-in-styles */
3
4
  export const tag = css`
4
5
  /**
5
6
  * @tokens Tag borders
@@ -310,6 +311,12 @@ export const tag = css`
310
311
  --tag-color: var(--text-color-disabled); // @presenter Color
311
312
  }
312
313
 
314
+ .tag-http-additional-operation {
315
+ --tag-color: #F97316; // @presenter Color
316
+ --tag-bg-color: #faede3; // @presenter Color
317
+ --tag-bg-color-hover: #fae2cf; // @presenter Color
318
+ }
319
+
313
320
  .tag-send {
314
321
  --tag-color: #4144F6; // @presenter Color
315
322
  --tag-bg-color: #ECECFE; // @presenter Color
@@ -393,3 +400,4 @@ export const tag = css`
393
400
 
394
401
  // @tokens End
395
402
  `;
403
+ /* eslint-enable theme/no-raw-colors-in-styles */
@@ -259,7 +259,7 @@ const TooltipWrapper = styled.div`
259
259
  position: relative;
260
260
  display: flex;
261
261
  `;
262
-
262
+ /* eslint-disable theme/no-raw-colors-in-styles */
263
263
  const TooltipBody = styled.span<
264
264
  Pick<Required<TooltipProps>, 'placement' | 'withArrow' | 'arrowPosition'> & { width?: string }
265
265
  >`
@@ -302,3 +302,4 @@ const TooltipBody = styled.span<
302
302
  ${PLACEMENTS[placement]};
303
303
  `}
304
304
  `;
305
+ /* eslint-enable theme/no-raw-colors-in-styles */
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
4
  import type { Version } from '@redocly/config';
5
- import type { SelectProps } from '@redocly/theme/core/types/select';
5
+ import type { SelectProps } from '@redocly/theme/core/types';
6
6
 
7
7
  import { useThemeHooks, useThemeConfig } from '@redocly/theme/core/hooks';
8
8
  import { Select } from '@redocly/theme/components/Select/Select';
@@ -58,6 +58,7 @@ export function VersionPicker(props: { versions?: Version[]; onChange: (v: Versi
58
58
  'aria-label': translate('versionPicker.label', 'Select version'),
59
59
  }}
60
60
  />
61
+ {/* eslint-disable-next-line theme/require-translate */}
61
62
  <SrOnly id="version-picker-description">
62
63
  This is version picker select, using it you can select a version of the API.
63
64
  </SrOnly>
@@ -4,4 +4,5 @@ export * from './code-walkthrough';
4
4
  export * from './search';
5
5
  export * from './catalog';
6
6
  export * from './breadcrumb';
7
+ export * from './request-methods';
7
8
  export * from './mcp';
@@ -0,0 +1,10 @@
1
+ export const REQUEST_METHODS = [
2
+ 'GET',
3
+ 'POST',
4
+ 'PUT',
5
+ 'DELETE',
6
+ 'PATCH',
7
+ 'OPTIONS',
8
+ 'HEAD',
9
+ 'TRACE',
10
+ ];
@@ -1 +1 @@
1
- export * from './typedMemo';
1
+ export * from './typed-memo';
@@ -2,10 +2,10 @@ import { vi } from 'vitest';
2
2
 
3
3
  export const useThemeHooks = vi.fn(() => ({
4
4
  useTranslate: vi.fn(() => ({
5
- translate: vi.fn((key: string, defaultValue: string) =>
5
+ translate: vi.fn((key: string, defaultValue: string | { defaultValue: string }) =>
6
6
  defaultValue
7
7
  ? typeof defaultValue !== 'string'
8
- ? (defaultValue as any).defaultValue
8
+ ? (defaultValue as { defaultValue: string }).defaultValue
9
9
  : defaultValue
10
10
  : key,
11
11
  ),
@@ -3,8 +3,8 @@ export class MockIntersectionObserver {
3
3
  public readonly rootMargin: string;
4
4
  public readonly thresholds: ReadonlyArray<number>;
5
5
 
6
- private viewPort: any;
7
- private entries: any[];
6
+ private viewPort: Element | Document | Window;
7
+ private entries: Array<Partial<IntersectionObserverEntry> & { target: HTMLElement }>;
8
8
  private readonly callback: IntersectionObserverCallback;
9
9
 
10
10
  constructor(callback: IntersectionObserverCallback, options?: IntersectionObserverInit) {
@@ -19,10 +19,11 @@ export class MockIntersectionObserver {
19
19
  }
20
20
 
21
21
  private intersect = () => {
22
- this.entries.map((entry) => {
23
- entry.isIntersecting = this.isInViewPort(entry.target);
24
- });
25
- this.callback(this.entries, this);
22
+ this.entries = this.entries.map((entry) => ({
23
+ ...entry,
24
+ isIntersecting: this.isInViewPort(entry.target),
25
+ }));
26
+ this.callback(this.entries as IntersectionObserverEntry[], this);
26
27
  };
27
28
 
28
29
  isInViewPort(target: HTMLElement): boolean {
@@ -42,7 +43,7 @@ export class MockIntersectionObserver {
42
43
  this.entries = [];
43
44
  }
44
45
 
45
- takeRecords(): any[] {
46
- return this.entries;
46
+ takeRecords(): IntersectionObserverEntry[] {
47
+ return this.entries as IntersectionObserverEntry[];
47
48
  }
48
49
  }
@@ -16,17 +16,17 @@ export function useCatalogEntitySchema({ entity, relatedEntity }: CatalogEntityS
16
16
  parsedSchema = undefined;
17
17
  }
18
18
 
19
- let parsedApiDefinition: any | undefined;
19
+ let parsedApiDefinition: Record<string, unknown> | undefined;
20
20
 
21
21
  try {
22
22
  parsedApiDefinition = relatedEntity?.metadata?.schema
23
- ? JSON.parse(relatedEntity.metadata.schema)
23
+ ? (JSON.parse(relatedEntity.metadata.schema) as Record<string, unknown>)
24
24
  : undefined;
25
25
  } catch (err) {
26
26
  parsedApiDefinition = undefined;
27
27
  }
28
28
 
29
- const definition: any =
29
+ const definition: Record<string, unknown> =
30
30
  !parsedApiDefinition || relatedEntity?.metadata?.specType !== 'openapi'
31
31
  ? {
32
32
  openapi: '3.0.0',
@@ -42,7 +42,7 @@ type EntityGraphData = {
42
42
  key: string;
43
43
  };
44
44
 
45
- // TODO: This isn't final implementation, leaved comments for future reference.
45
+ // Note: This isn't final implementation, leaved comments for future reference.
46
46
  export function useGraph({ entity, relations }: UseGraphProps): UseGraphReturn {
47
47
  const rootNodeId = entity.id;
48
48
 
@@ -18,7 +18,7 @@ export class MockIntersectionObserver {
18
18
  this.disconnect = vi.fn();
19
19
  }
20
20
 
21
- takeRecords(): any[] {
21
+ takeRecords(): IntersectionObserverEntry[] {
22
22
  return [];
23
23
  }
24
24
  }
@@ -0,0 +1,24 @@
1
+ import { vi } from 'vitest';
2
+
3
+ export class MockIntersectionObserver {
4
+ public readonly root: Element | Document | null;
5
+ public readonly rootMargin: string;
6
+ public readonly thresholds: ReadonlyArray<number>;
7
+ observe: (target: HTMLElement) => void;
8
+ unobserve: (target: HTMLElement) => void;
9
+ disconnect: () => void;
10
+
11
+ // @ts-ignore
12
+ constructor(callback: IntersectionObserverCallback, options?: IntersectionObserverInit) {
13
+ this.root = null;
14
+ this.rootMargin = '0px';
15
+ this.thresholds = [1];
16
+ this.observe = vi.fn();
17
+ this.unobserve = vi.fn();
18
+ this.disconnect = vi.fn();
19
+ }
20
+
21
+ takeRecords(): IntersectionObserverEntry[] {
22
+ return [];
23
+ }
24
+ }
@@ -211,6 +211,7 @@ export function useCodeWalkthroughControls(
211
211
  continue;
212
212
  }
213
213
 
214
+ // eslint-disable-next-line no-warning-comments
214
215
  // code-walk-todo: need to check if we have a default fallback
215
216
  const items = Array.isArray(filter?.items) ? filter.items : [];
216
217
 
@@ -299,7 +299,7 @@ type StepsGroup = {
299
299
  freeSpace: number;
300
300
  usedSpace: number;
301
301
  offset: number;
302
- steps: { offset: number; height: number }[];
302
+ steps: { offset: number; height: number; ref?: HTMLElement }[];
303
303
  };
304
304
  /**
305
305
  * This function analyzes the offset and height of each step to determine
@@ -358,7 +358,7 @@ function getGroups(steps: CodeWalkthroughStep[]): StepsGroup[] {
358
358
  offset: stepOffset - currentGroup.offset,
359
359
  height: stepHeight,
360
360
  ref: step.compRef,
361
- } as any);
361
+ });
362
362
  currentGroup.usedSpace += stepHeight + margin;
363
363
  }
364
364
 
@@ -3,7 +3,7 @@ import { useMemo } from 'react';
3
3
  import type { CodeWalkthroughFile } from '@redocly/config';
4
4
 
5
5
  import { findClosestCommonDirectory } from '../../utils/find-closest-common-directory';
6
- import { getFileIconByExt } from '../../utils/get-file-icon';
6
+ import { getFileIconByExt } from '../../utils/GetFileIcon';
7
7
  import { removeLeadingSlash } from '../../utils/urls';
8
8
 
9
9
  export type RenderableFile = CodeWalkthroughFile & {
@@ -37,11 +37,14 @@ export * from './code-walkthrough/use-renderable-files';
37
37
  export * from './use-element-size';
38
38
  export * from './use-time-ago';
39
39
  export * from './use-input-key-commands';
40
- export * from './catalog/useCatalogEntities';
41
- export * from './catalog/useGraph';
40
+ export * from './catalog/use-catalog-entities';
41
+ export * from './catalog/use-graph';
42
42
  export * from './use-active-page-version';
43
43
  export * from './use-page-versions';
44
44
  export * from './use-user-teams';
45
45
  export * from './use-page-actions';
46
46
  export * from './use-mcp-config';
47
47
  export * from './use-connect-mcp-button';
48
+ export * from './catalog/use-catalog-table-view-row';
49
+ export * from './catalog/use-catalog-entity-schema';
50
+ export * from './catalog/use-catalog-table-header-cell-actions';
@@ -199,13 +199,13 @@ function setStyles<T extends Partial<CSSStyleDeclaration>>(
199
199
  }
200
200
  }
201
201
  }
202
-
203
- export function useEvent<T extends (...args: any[]) => any>(callback?: T) {
202
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
203
+ export function useEvent<T extends (...args: any[]) => any>(callback?: T): T {
204
204
  const ref = useRef<T | undefined>(callback);
205
205
 
206
206
  useEffect(() => {
207
207
  ref.current = callback;
208
208
  });
209
209
 
210
- return useCallback(((...args: any) => ref.current?.(...args)) as T, []);
210
+ return useCallback(((...args: Parameters<T>) => ref.current?.(...args)) as T, []);
211
211
  }
@@ -42,6 +42,7 @@ export const useMobileMenuItems = (menuType: MobileMenuType) => {
42
42
 
43
43
  if (menuType === MobileMenuType.PAGE) {
44
44
  if (activeVersion) {
45
+ // eslint-disable-next-line no-warning-comments
45
46
  // TODO: consider to refactor
46
47
  const versionsSection = buildVersionSection(translate, versions, activeVersion);
47
48
  menuItems.push(...versionsSection);