@redocly/theme 0.60.0-next.0 → 0.60.0-next.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 (281) 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/OpenApiDocs/hooks/AfterOpenApiOperation.js +1 -0
  41. package/lib/components/OpenApiDocs/hooks/AfterOpenApiTitle.js +1 -0
  42. package/lib/components/OpenApiDocs/hooks/BeforeOpenApiOperation.js +1 -0
  43. package/lib/components/OpenApiDocs/hooks/OpenApiFooter.js +3 -2
  44. package/lib/components/OpenApiDocs/hooks/OpenApiHeader.js +3 -2
  45. package/lib/components/Search/FilterFields/SearchFilterFieldSelect.js +2 -1
  46. package/lib/components/Search/SearchAiMessage.js +20 -18
  47. package/lib/components/Search/SearchAiNegativeFeedbackForm.d.ts +5 -3
  48. package/lib/components/Search/SearchAiNegativeFeedbackForm.js +5 -4
  49. package/lib/components/Search/SearchGroups.js +4 -1
  50. package/lib/components/Search/SearchHighlight.js +1 -0
  51. package/lib/components/Search/SearchItem.js +4 -1
  52. package/lib/components/Search/variables.js +2 -0
  53. package/lib/components/Segmented/Segmented.d.ts +1 -1
  54. package/lib/components/Segmented/Segmented.js +2 -2
  55. package/lib/components/Select/Select.d.ts +1 -1
  56. package/lib/components/Select/Select.js +4 -2
  57. package/lib/components/Select/SelectInput.d.ts +1 -1
  58. package/lib/components/Select/SelectInput.js +2 -0
  59. package/lib/components/SidebarActions/styled.d.ts +5 -4
  60. package/lib/components/SidebarActions/styled.js +9 -5
  61. package/lib/components/Tag/variables.dark.js +2 -0
  62. package/lib/components/Tag/variables.js +2 -0
  63. package/lib/components/Tooltip/Tooltip.js +2 -0
  64. package/lib/components/VersionPicker/VersionPicker.d.ts +1 -1
  65. package/lib/core/hoc/index.d.ts +1 -1
  66. package/lib/core/hoc/index.js +1 -1
  67. package/lib/core/hoc/{typedMemo.js → typed-memo.js} +1 -1
  68. package/lib/core/hooks/__tests__/mocks/mock-intersection-observer.d.ts +1 -1
  69. package/lib/core/hooks/__tests__/mocks/mock-intersection-observer.js +1 -3
  70. package/lib/core/hooks/catalog/{useCatalogEntities.js → use-catalog-entities.js} +1 -1
  71. package/lib/core/hooks/catalog/{useCatalogEntitySchema.d.ts → use-catalog-entity-schema.d.ts} +1 -1
  72. package/lib/core/hooks/catalog/{useCatalogEntitySchema.js → use-catalog-entity-schema.js} +1 -1
  73. package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.js → use-catalog-table-header-cell-actions.js} +1 -1
  74. package/lib/core/hooks/catalog/{useCatalogTableViewRow.js → use-catalog-table-view-row.js} +1 -1
  75. package/lib/core/hooks/catalog/{useGraph.js → use-graph.js} +2 -2
  76. package/lib/core/hooks/code-walkthrough/use-code-walkthrough-controls.js +1 -0
  77. package/lib/core/hooks/code-walkthrough/use-code-walkthrough-steps.d.ts +1 -0
  78. package/lib/core/hooks/code-walkthrough/use-renderable-files.js +2 -2
  79. package/lib/core/hooks/index.d.ts +5 -2
  80. package/lib/core/hooks/index.js +5 -2
  81. package/lib/core/hooks/menu/use-collapse.js +1 -0
  82. package/lib/core/hooks/menu/use-mobile-menu-items.js +1 -0
  83. package/lib/core/hooks/use-mcp-config.js +9 -6
  84. package/lib/core/hooks/use-page-actions.js +5 -3
  85. package/lib/core/hooks/use-telemetry-fallback.js +1 -0
  86. package/lib/core/hooks/use-theme-config.js +1 -0
  87. package/lib/core/hooks/use-theme-hooks.js +1 -0
  88. package/lib/core/openapi/index.d.ts +1 -1
  89. package/lib/core/openapi/index.js +2 -2
  90. package/lib/core/templates/Markdown.js +1 -0
  91. package/lib/core/types/hooks.d.ts +6 -0
  92. package/lib/core/types/index.d.ts +20 -19
  93. package/lib/core/types/index.js +0 -19
  94. package/lib/core/types/l10n.d.ts +1 -1
  95. package/lib/core/utils/{dynamic.js → Dynamic.js} +1 -1
  96. package/lib/core/utils/{get-file-icon.js → GetFileIcon.js} +1 -1
  97. package/lib/core/utils/args-typecheck.d.ts +2 -2
  98. package/lib/core/utils/clipboard-service.js +2 -0
  99. package/lib/core/utils/get-user-agent.js +1 -0
  100. package/lib/core/utils/index.d.ts +2 -2
  101. package/lib/core/utils/index.js +2 -2
  102. package/lib/core/utils/js-utils.d.ts +1 -1
  103. package/lib/core/utils/load-and-navigate.js +1 -0
  104. package/lib/core/utils/markdoc.js +1 -0
  105. package/lib/core/utils/parse-style-string.js +1 -0
  106. package/lib/ext/configure.d.ts +2 -2
  107. package/lib/ext/configure.js +12 -6
  108. package/lib/ext/{useConfigureReplay.js → use-configure-replay.js} +5 -4
  109. package/lib/index.d.ts +3 -3
  110. package/lib/index.js +2 -3
  111. package/lib/layouts/ThreePanelLayout.js +4 -4
  112. package/lib/markdoc/components/Cards/variables.dark.js +2 -0
  113. package/lib/markdoc/components/Cards/variables.js +2 -0
  114. package/lib/markdoc/components/CodeWalkthrough/CodePanelHeader.js +1 -0
  115. package/lib/markdoc/tags/code-walkthrough.js +1 -0
  116. package/lib/markdoc/tags/html.js +1 -0
  117. package/package.json +1 -1
  118. package/src/components/Button/Button.tsx +1 -0
  119. package/src/components/Buttons/ConnectMCPButton.tsx +1 -1
  120. package/src/components/Buttons/variables.ts +2 -0
  121. package/src/components/Catalog/CatalogCardView/CatalogCard.tsx +4 -3
  122. package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +4 -0
  123. package/src/components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.tsx +1 -1
  124. package/src/components/Catalog/CatalogEntity/CatalogEntityLinks.tsx +5 -1
  125. package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +1 -0
  126. package/src/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.tsx +5 -1
  127. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.tsx +5 -1
  128. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.tsx +5 -1
  129. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.tsx +5 -1
  130. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/FormatProperty.tsx +5 -1
  131. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.tsx +5 -1
  132. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.tsx +5 -1
  133. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.tsx +5 -1
  134. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.tsx +5 -1
  135. package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +3 -1
  136. package/src/components/Catalog/CatalogFilter/CatalogFilterDateRange.tsx +2 -2
  137. package/src/components/Catalog/CatalogSelector.tsx +2 -2
  138. package/src/components/Catalog/CatalogSortButton.tsx +5 -1
  139. package/src/components/Catalog/CatalogTableView/CatalogTableHeaderCell.tsx +1 -1
  140. package/src/components/Catalog/CatalogTableView/CatalogTableViewRow.tsx +1 -1
  141. package/src/components/Catalog/CatalogTagsWithTooltip.tsx +8 -1
  142. package/src/components/Catalog/variables.dark.ts +1 -1
  143. package/src/components/Catalog/variables.ts +5 -3
  144. package/src/components/CatalogClassic/CatalogClassicInfoBlock.tsx +1 -0
  145. package/src/components/CatalogClassic/variables.ts +1 -1
  146. package/src/components/CodeBlock/CodeBlock.tsx +4 -0
  147. package/src/components/CodeBlock/CodeBlockControls.tsx +1 -0
  148. package/src/components/CodeBlock/CodeBlockTabs.tsx +1 -1
  149. package/src/components/DatePicker/variables.ts +3 -1
  150. package/src/components/Feedback/Mood.tsx +2 -2
  151. package/src/components/Feedback/Rating.tsx +2 -2
  152. package/src/components/Filter/FilterDateRange.tsx +2 -2
  153. package/src/components/Filter/FilterSelect.tsx +1 -0
  154. package/src/components/JsonViewer/{helpers.tsx → Helpers.tsx} +2 -0
  155. package/src/components/JsonViewer/JsonViewer.tsx +2 -1
  156. package/src/components/LastUpdated/LastUpdated.tsx +1 -0
  157. package/src/components/Loaders/Loading.tsx +5 -1
  158. package/src/components/Markdown/Markdown.tsx +2 -2
  159. package/src/components/OpenApiDocs/hooks/AfterOpenApiOperation.tsx +1 -1
  160. package/src/components/OpenApiDocs/hooks/AfterOpenApiTitle.tsx +1 -1
  161. package/src/components/OpenApiDocs/hooks/BeforeOpenApiOperation.tsx +1 -1
  162. package/src/components/OpenApiDocs/hooks/OpenApiFooter.tsx +1 -1
  163. package/src/components/OpenApiDocs/hooks/OpenApiHeader.tsx +1 -1
  164. package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +4 -1
  165. package/src/components/Search/SearchAiMessage.tsx +42 -37
  166. package/src/components/Search/SearchAiNegativeFeedbackForm.tsx +7 -5
  167. package/src/components/Search/SearchGroups.tsx +4 -1
  168. package/src/components/Search/SearchHighlight.tsx +1 -0
  169. package/src/components/Search/SearchItem.tsx +8 -1
  170. package/src/components/Search/variables.ts +2 -0
  171. package/src/components/Segmented/Segmented.tsx +2 -2
  172. package/src/components/Select/Select.tsx +8 -4
  173. package/src/components/Select/SelectInput.tsx +10 -1
  174. package/src/components/SidebarActions/{styled.tsx → styled.ts} +11 -4
  175. package/src/components/Tag/Tag.tsx +1 -0
  176. package/src/components/Tag/variables.dark.ts +2 -0
  177. package/src/components/Tag/variables.ts +2 -0
  178. package/src/components/Tooltip/Tooltip.tsx +2 -1
  179. package/src/components/VersionPicker/VersionPicker.tsx +2 -1
  180. package/src/core/hoc/index.ts +1 -1
  181. package/src/core/hooks/__mocks__/use-theme-hooks.ts +2 -2
  182. package/src/core/hooks/__tests__/mocks/mock-intersection-observer.ts +9 -8
  183. package/src/core/hooks/catalog/{useCatalogEntitySchema.ts → use-catalog-entity-schema.ts} +3 -3
  184. package/src/core/hooks/catalog/{useGraph.ts → use-graph.ts} +1 -1
  185. package/src/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.ts +1 -1
  186. package/src/core/hooks/code-walkthrough/__mocks__/mock-intersection-observer.ts +24 -0
  187. package/src/core/hooks/code-walkthrough/use-code-walkthrough-controls.ts +1 -0
  188. package/src/core/hooks/code-walkthrough/use-code-walkthrough-steps.ts +2 -2
  189. package/src/core/hooks/code-walkthrough/use-renderable-files.ts +1 -1
  190. package/src/core/hooks/index.ts +5 -2
  191. package/src/core/hooks/menu/use-collapse.ts +3 -3
  192. package/src/core/hooks/menu/use-mobile-menu-items.ts +1 -0
  193. package/src/core/hooks/use-mcp-config.ts +11 -5
  194. package/src/core/hooks/use-page-actions.ts +3 -1
  195. package/src/core/hooks/use-telemetry-fallback.ts +1 -0
  196. package/src/core/hooks/use-theme-config.ts +1 -0
  197. package/src/core/hooks/use-theme-hooks.ts +2 -1
  198. package/src/core/openapi/index.ts +1 -1
  199. package/src/core/templates/Markdown.tsx +1 -0
  200. package/src/core/types/catalog.ts +3 -1
  201. package/src/core/types/filter.ts +1 -0
  202. package/src/core/types/hooks.ts +6 -0
  203. package/src/core/types/index.ts +20 -19
  204. package/src/core/types/l10n.ts +24 -1
  205. package/src/core/types/search.ts +1 -1
  206. package/src/core/types/segmented.ts +1 -0
  207. package/src/core/types/select.ts +1 -0
  208. package/src/core/utils/args-typecheck.ts +2 -2
  209. package/src/core/utils/clipboard-service.ts +2 -0
  210. package/src/core/utils/get-user-agent.ts +1 -0
  211. package/src/core/utils/index.ts +2 -2
  212. package/src/core/utils/js-utils.ts +1 -1
  213. package/src/core/utils/load-and-navigate.ts +1 -0
  214. package/src/core/utils/markdoc.ts +1 -0
  215. package/src/core/utils/parse-style-string.ts +1 -0
  216. package/src/ext/configure.ts +15 -8
  217. package/src/ext/{useConfigureReplay.ts → use-configure-replay.ts} +5 -3
  218. package/src/index.ts +3 -3
  219. package/src/layouts/ThreePanelLayout.tsx +1 -1
  220. package/src/markdoc/components/Cards/variables.dark.ts +2 -0
  221. package/src/markdoc/components/Cards/variables.ts +3 -1
  222. package/src/markdoc/components/CodeWalkthrough/CodePanelHeader.tsx +1 -1
  223. package/src/markdoc/tags/code-walkthrough.ts +2 -0
  224. package/src/markdoc/tags/html.ts +1 -0
  225. package/lib/core/hooks/__mocks__/index.d.ts +0 -28
  226. package/lib/core/hooks/__mocks__/index.js +0 -45
  227. package/lib/core/hooks/__mocks__/search/use-recent-searches.d.ts +0 -5
  228. package/lib/core/hooks/__mocks__/search/use-recent-searches.js +0 -13
  229. package/lib/core/hooks/__mocks__/search/use-search-filter.d.ts +0 -8
  230. package/lib/core/hooks/__mocks__/search/use-search-filter.js +0 -15
  231. package/lib/core/hooks/__mocks__/search/use-suggested-pages.d.ts +0 -4
  232. package/lib/core/hooks/__mocks__/search/use-suggested-pages.js +0 -13
  233. package/lib/core/hooks/__mocks__/use-controlled-state.d.ts +0 -1
  234. package/lib/core/hooks/__mocks__/use-controlled-state.js +0 -7
  235. package/lib/core/hooks/__mocks__/use-element-size.d.ts +0 -4
  236. package/lib/core/hooks/__mocks__/use-element-size.js +0 -9
  237. package/lib/core/hooks/__mocks__/use-input-key-commands.d.ts +0 -3
  238. package/lib/core/hooks/__mocks__/use-input-key-commands.js +0 -8
  239. package/lib/core/hooks/__mocks__/use-mobile-menu.d.ts +0 -1
  240. package/lib/core/hooks/__mocks__/use-mobile-menu.js +0 -7
  241. package/lib/core/hooks/__mocks__/use-theme-config.d.ts +0 -8
  242. package/lib/core/hooks/__mocks__/use-theme-config.js +0 -13
  243. package/lib/core/hooks/__mocks__/use-theme-hooks.d.ts +0 -69
  244. package/lib/core/hooks/__mocks__/use-theme-hooks.js +0 -94
  245. package/lib/core/hooks/__mocks__/use-time-ago.d.ts +0 -3
  246. package/lib/core/hooks/__mocks__/use-time-ago.js +0 -8
  247. package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.d.ts +0 -10
  248. package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.js +0 -56
  249. package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.d.ts +0 -1
  250. package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.js +0 -35
  251. /package/lib/components/JsonViewer/{helpers.d.ts → Helpers.d.ts} +0 -0
  252. /package/lib/components/Markdown/styles/{baseTable.d.ts → base-table.d.ts} +0 -0
  253. /package/lib/components/Markdown/styles/{headingAnchor.d.ts → heading-anchor.d.ts} +0 -0
  254. /package/lib/core/hoc/{typedMemo.d.ts → typed-memo.d.ts} +0 -0
  255. /package/lib/core/hooks/catalog/{useCatalogEntities.d.ts → use-catalog-entities.d.ts} +0 -0
  256. /package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.d.ts → use-catalog-table-header-cell-actions.d.ts} +0 -0
  257. /package/lib/core/hooks/catalog/{useCatalogTableViewRow.d.ts → use-catalog-table-view-row.d.ts} +0 -0
  258. /package/lib/core/hooks/catalog/{useGraph.d.ts → use-graph.d.ts} +0 -0
  259. /package/lib/core/utils/{dynamic.d.ts → Dynamic.d.ts} +0 -0
  260. /package/lib/core/utils/{get-file-icon.d.ts → GetFileIcon.d.ts} +0 -0
  261. /package/lib/ext/{useConfigureReplay.d.ts → use-configure-replay.d.ts} +0 -0
  262. /package/src/components/Markdown/styles/{baseTable.ts → base-table.ts} +0 -0
  263. /package/src/components/Markdown/styles/{headingAnchor.ts → heading-anchor.ts} +0 -0
  264. /package/src/components/Panel/{PanelBody.ts → PanelBody.tsx} +0 -0
  265. /package/src/components/Panel/{PanelHeader.ts → PanelHeader.tsx} +0 -0
  266. /package/src/components/Panel/{PanelHeaderTitle.ts → PanelHeaderTitle.tsx} +0 -0
  267. /package/src/components/StatusCode/{StatusCode.ts → StatusCode.tsx} +0 -0
  268. /package/src/components/Typography/{CompactTypography.ts → CompactTypography.tsx} +0 -0
  269. /package/src/components/Typography/{Emphasis.ts → Emphasis.tsx} +0 -0
  270. /package/src/components/Typography/{H1.ts → H1.tsx} +0 -0
  271. /package/src/components/Typography/{H2.ts → H2.tsx} +0 -0
  272. /package/src/components/Typography/{H3.ts → H3.tsx} +0 -0
  273. /package/src/components/Typography/{H4.ts → H4.tsx} +0 -0
  274. /package/src/components/Typography/{SectionHeader.ts → SectionHeader.tsx} +0 -0
  275. /package/src/components/Typography/{Typography.ts → Typography.tsx} +0 -0
  276. /package/src/core/hoc/{typedMemo.ts → typed-memo.ts} +0 -0
  277. /package/src/core/hooks/catalog/{useCatalogEntities.ts → use-catalog-entities.ts} +0 -0
  278. /package/src/core/hooks/catalog/{useCatalogTableHeaderCellActions.ts → use-catalog-table-header-cell-actions.ts} +0 -0
  279. /package/src/core/hooks/catalog/{useCatalogTableViewRow.ts → use-catalog-table-view-row.ts} +0 -0
  280. /package/src/core/utils/{dynamic.tsx → Dynamic.tsx} +0 -0
  281. /package/src/core/utils/{get-file-icon.tsx → GetFileIcon.tsx} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { css } from 'styled-components';
2
2
 
3
3
  export const catalogDarkMode = css`
4
- --catalog-avatar-bg-color: #3b3c45;
4
+ --catalog-avatar-bg-color: var(--color-warm-grey-4);
5
5
  `;
@@ -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 catalog = css`
4
5
  /* === Catalog === */
5
6
  /**
@@ -284,7 +285,7 @@ export const catalog = css`
284
285
  --catalog-page-badge-line-height: var(--line-height-base);
285
286
 
286
287
  --catalog-page-badge-dot-size: 6px;
287
- --catalog-page-badge-dot-border-color: #ffffff;
288
+ --catalog-page-badge-dot-border-color: var(--color-static-white);
288
289
 
289
290
  /**
290
291
  * @tokens Catalog table
@@ -405,8 +406,8 @@ export const catalog = css`
405
406
  --catalog-entity-relations-node-font-weight-root: 600;
406
407
 
407
408
  --catalog-entity-relations-node-root-bg-color: var(--color-blue-6);
408
- --catalog-entity-relations-node-root-text-color: #ffffff;
409
- --catalog-entity-relations-node-root-icon-color: #ffffff;
409
+ --catalog-entity-relations-node-root-text-color: var(--color-static-white);
410
+ --catalog-entity-relations-node-root-icon-color: var(--color-static-white);
410
411
  // @tokens End
411
412
 
412
413
  /**
@@ -427,3 +428,4 @@ export const catalog = css`
427
428
  --catalog-entity-relations-edge-label-line-height: 1.2;
428
429
  // @tokens End
429
430
  `;
431
+ /* eslint-enable theme/no-raw-colors-in-styles */
@@ -13,6 +13,7 @@ export type CatalogClassicInfoBlockProps = {
13
13
  scorecardLevel?: string;
14
14
  scoreCardSlug?: string;
15
15
  scorecardLevelIdx?: number;
16
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
16
17
  scorecardLevels?: Record<string, any>;
17
18
 
18
19
  [key: string]: unknown;
@@ -100,7 +100,7 @@ export const catalogClassic = css`
100
100
  --catalog-classic-page-badge-line-height: var(--line-height-base);
101
101
 
102
102
  --catalog-classic-page-badge-dot-size: 6px;
103
- --catalog-classic-page-badge-dot-border-color: #ffffff;
103
+ --catalog-classic-page-badge-dot-border-color: var(--color-static-white);
104
104
 
105
105
  // @tokens End
106
106
  `;
@@ -46,8 +46,11 @@ export type CodeBlockItems = {
46
46
  type ExternalSource = {
47
47
  sample: UnstableExternalCodeSample;
48
48
  exampleName?: string;
49
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
49
50
  pathParams?: any;
51
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
50
52
  properties?: any;
53
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
51
54
  operation?: any;
52
55
  };
53
56
 
@@ -128,6 +131,7 @@ export function CodeBlock({
128
131
  }
129
132
  : undefined
130
133
  }
134
+ /* eslint-disable-next-line no-warning-comments */
131
135
  suppressHydrationWarning // TODO: investigate issue
132
136
  data-testid={dataTestId}
133
137
  hideCodeColors={hideCodeColors}
@@ -39,6 +39,7 @@ type ControlProps = {
39
39
  label?: string;
40
40
  tooltipText?: string;
41
41
  onClick?: () => void;
42
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
42
43
  props?: Record<string, any>;
43
44
  };
44
45
 
@@ -8,7 +8,7 @@ import { useCodeBlockTabsControls } from '@redocly/theme/core/hooks';
8
8
  import { Button } from '@redocly/theme/components/Button/Button';
9
9
  import { ChevronLeftIcon } from '@redocly/theme/icons/ChevronLeftIcon/ChevronLeftIcon';
10
10
  import { ChevronRightIcon } from '@redocly/theme/icons/ChevronRightIcon/ChevronRightIcon';
11
- import { getFileIconByExt, getFileIconByLanguage } from '@redocly/theme/core/utils/get-file-icon';
11
+ import { getFileIconByExt, getFileIconByLanguage } from '@redocly/theme/core/utils';
12
12
 
13
13
  export type CodeBlockTabsProps = {
14
14
  tabs: CodeBlockItems;
@@ -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 datePicker = css`
4
5
  --date-picker-nav-color: #000000;
5
6
  --date-picker-tile-bg-color: var(--color-blue-2);
@@ -18,4 +19,5 @@ export const datePicker = css`
18
19
  --date-picker-wrapper-border-color: var(--border-color-primary);
19
20
  --date-picker-wrapper-radius: var(--border-radius-md);
20
21
  --date-picker-wrapper-padding: calc(var(--spacing-xxs) / 2) var(--spacing-xs);
21
- `
22
+ `;
23
+ /* eslint-enable theme/no-raw-colors-in-styles */
@@ -269,10 +269,10 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
269
269
  {displaySubmitBnt && (
270
270
  <ButtonsContainer>
271
271
  <Button onClick={onCancelMoodForm} variant="text" size="small">
272
- Cancel
272
+ {translate('feedback.cancel', 'Cancel')}
273
273
  </Button>
274
274
  <Button type="submit" variant="secondary" size="small">
275
- Submit
275
+ {translate('feedback.submit', 'Submit')}
276
276
  </Button>
277
277
  </ButtonsContainer>
278
278
  )}
@@ -182,10 +182,10 @@ export function Rating({ settings, onSubmit, className }: RatingProps): JSX.Elem
182
182
  {displaySubmitBnt && (
183
183
  <ButtonsContainer>
184
184
  <Button onClick={onCancelRatingForm} variant="text" size="small">
185
- Cancel
185
+ {translate('feedback.cancel', 'Cancel')}
186
186
  </Button>
187
187
  <Button onClick={onSubmitRatingForm} variant="secondary" size="small">
188
- Submit
188
+ {translate('feedback.submit', 'Submit')}
189
189
  </Button>
190
190
  </ButtonsContainer>
191
191
  )}
@@ -25,7 +25,7 @@ export function FilterDateRange({ filter }: FilterProps): JSX.Element {
25
25
  <FilterOptions>
26
26
  <DateRangeWrapper>
27
27
  <DateRangeRow>
28
- <span>From:</span>
28
+ <span>{translate('filter.dateRange.from', 'From:')}</span>
29
29
  <DatePicker
30
30
  closeCalendar={true}
31
31
  format="y-MM-dd"
@@ -45,7 +45,7 @@ export function FilterDateRange({ filter }: FilterProps): JSX.Element {
45
45
  />
46
46
  </DateRangeRow>
47
47
  <DateRangeRow>
48
- <span>To:</span>
48
+ <span>{translate('filter.dateRange.to', 'To:')}</span>
49
49
  <DatePicker
50
50
  closeCalendar={true}
51
51
  dayPlaceholder="DD"
@@ -55,6 +55,7 @@ export function FilterSelect({
55
55
  {translate(filter.titleTranslationKey, filter.title)}
56
56
  </FilterTitle>
57
57
  <StyledSelect
58
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
58
59
  value={(filter.selectedOptions as Set<any>).values().next()?.value || ''}
59
60
  onChange={(value) => filter.selectOption(value)}
60
61
  options={selectOptions}
@@ -7,6 +7,7 @@ import { Button } from '@redocly/theme/components/Button/Button';
7
7
  import { ChevronDownIcon } from '@redocly/theme/icons/ChevronDownIcon/ChevronDownIcon';
8
8
 
9
9
  export function JsonValue(props: {
10
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
10
11
  value: any;
11
12
  level: number;
12
13
  standalone?: boolean; // if true, will render the opening and closing punctuation (when it's an item inside array or top-level)
@@ -103,6 +104,7 @@ export function JsonValue(props: {
103
104
 
104
105
  function JsonKeyValue(props: {
105
106
  name: string;
107
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
106
108
  value: any;
107
109
  level: number;
108
110
  defaultExpandLevel: number;
@@ -6,13 +6,14 @@ import type { CodeBlockControlsProps } from '@redocly/theme/components/CodeBlock
6
6
 
7
7
  import { CodeBlock } from '@redocly/theme/components/CodeBlock/CodeBlock';
8
8
 
9
- import { JsonValue } from './helpers';
9
+ import { JsonValue } from './Helpers';
10
10
 
11
11
  export type PanelType = 'request' | 'responses' | 'request-samples' | 'response-samples';
12
12
 
13
13
  export type JsonProps = {
14
14
  title?: CodeBlockControlsProps['title'];
15
15
  controls?: CodeBlockControlsProps['controls'];
16
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
16
17
  data: any;
17
18
  className?: string;
18
19
  expandLevel: number;
@@ -63,6 +63,7 @@ export function LastUpdated(props: LastUpdatedProps): JSX.Element | null {
63
63
  data-print-datetime={isoDate}
64
64
  data-translation-key={translationKey}
65
65
  >
66
+ {/* eslint-disable-next-line no-warning-comments */}
66
67
  {text} {/* TODO: fix issue with snapshot tests - they should not depend on current date */}
67
68
  <time dateTime={isoDate}>{lastUpdatedString}</time>
68
69
  </LastUpdatedWrapper>
@@ -5,6 +5,7 @@ import type { JSX } from 'react';
5
5
 
6
6
  import { getCssColorVariable } from '@redocly/theme/core/utils';
7
7
  import { Spinner } from '@redocly/theme/icons/Spinner/Spinner';
8
+ import { useThemeHooks } from '@redocly/theme/core/hooks';
8
9
 
9
10
  const LoadingMessage = styled.div<{ color: string }>`
10
11
  font-family: helvetica, sans, sans-serif;
@@ -20,9 +21,12 @@ export type LoadingProps = {
20
21
  };
21
22
 
22
23
  export function Loading({ color }: LoadingProps): JSX.Element {
24
+ const { useTranslate } = useThemeHooks();
25
+ const { translate } = useTranslate();
26
+
23
27
  return (
24
28
  <div style={{ textAlign: 'center' }}>
25
- <LoadingMessage color={color}>Loading ...</LoadingMessage>
29
+ <LoadingMessage color={color}>{translate('loaders.loading', 'Loading...')}</LoadingMessage>
26
30
  <Spinner color={color} />
27
31
  </div>
28
32
  );
@@ -3,9 +3,9 @@ import styled, { css } from 'styled-components';
3
3
  import type { PropsWithChildren } from 'react';
4
4
 
5
5
  import { typography } from '@redocly/theme/core/utils';
6
- import { markdownBaseTableCss } from '@redocly/theme/components/Markdown/styles/baseTable';
6
+ import { markdownBaseTableCss } from '@redocly/theme/components/Markdown/styles/base-table';
7
7
  import { markdownLinksCss } from '@redocly/theme/components/Markdown/styles/links';
8
- import { headingAnchorCss } from '@redocly/theme/components/Markdown/styles/headingAnchor';
8
+ import { headingAnchorCss } from '@redocly/theme/components/Markdown/styles/heading-anchor';
9
9
 
10
10
  export type MarkdownProps = PropsWithChildren<{
11
11
  className?: string;
@@ -5,5 +5,5 @@
5
5
  // export function AfterOpenApiOperation(_props: AfterOpenAPIOperationProps) {
6
6
  // return null;
7
7
  // }
8
-
8
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
9
9
  export const AfterOpenApiOperation: any = null;
@@ -5,5 +5,5 @@
5
5
  // export function AfterOpenApiTitle(_props: AfterOpenApiTitleProps) {
6
6
  // return null;
7
7
  // }
8
-
8
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
9
9
  export const AfterOpenApiTitle: any = null;
@@ -5,5 +5,5 @@
5
5
  // export function BeforeOpenApiOperation(_props: BeforeOpenAPIOperationProps) {
6
6
  // return null;
7
7
  // }
8
-
8
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
9
9
  export const BeforeOpenApiOperation: any = null;
@@ -1,5 +1,5 @@
1
1
  // export function OpenApiFooter() {
2
2
  // return null;
3
3
  // }
4
-
4
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
5
5
  export const OpenApiFooter: any = null;
@@ -1,5 +1,5 @@
1
1
  // export function OpenApiHeader() {
2
2
  // return null;
3
3
  // }
4
-
4
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
5
5
  export const OpenApiHeader: any = null;
@@ -27,6 +27,7 @@ export function SearchFilterFieldSelect({
27
27
  const { useFacetQuery, useTranslate } = useThemeHooks();
28
28
  const { translate } = useTranslate();
29
29
  const { searchFacet, setSearchFacet, setSearchFacetQuery } = useFacetQuery(facet.field);
30
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
30
31
  const [selectOptions, setSelectOptions] = useState<any[]>([]);
31
32
  const isMultiple = facet.type === 'multi-select';
32
33
 
@@ -101,7 +102,9 @@ export function SearchFilterFieldSelect({
101
102
  searchable={true}
102
103
  footer={
103
104
  selectOptions.length === MAX_SELECT_OPTIONS ? (
104
- <FilterSelectFooter>Search to show more items...</FilterSelectFooter>
105
+ <FilterSelectFooter>
106
+ {translate('search.filter.field.footer', 'Search to show more items...')}
107
+ </FilterSelectFooter>
105
108
  ) : null
106
109
  }
107
110
  onSearch={onSearch}
@@ -95,9 +95,9 @@ function SearchAiMessageComponent({
95
95
  />
96
96
  )}
97
97
  <MessageContentWrapper>
98
- <MessageWrapper role={role}>
99
- {role === AiSearchConversationRole.ASSISTANT ? (
100
- <>
98
+ {role === AiSearchConversationRole.ASSISTANT ? (
99
+ <>
100
+ <MessageWrapper role={role}>
101
101
  <ResponseText as="div" children={markDownContent} data-testid="response-text" />
102
102
  {hasResources && (
103
103
  <>
@@ -119,42 +119,47 @@ function SearchAiMessageComponent({
119
119
  ))}
120
120
  </ResourceTagsWrapper>
121
121
  </ResourcesWrapper>
122
- <FeedbackWrapper>
123
- <SearchAiActionButtons
124
- content={content}
125
- feedback={feedback}
126
- onFeedback={handleFeedbackClick}
127
- disabled={feedbackSent}
128
- />
129
- </FeedbackWrapper>
130
122
  </>
131
123
  )}
132
- </>
133
- ) : (
134
- content
135
- )}
136
- {isThinking && content.length === 0 && (
137
- <ThinkingDotsWrapper data-testid="thinking-dots-wrapper">
138
- <ThinkingDot />
139
- <ThinkingDot />
140
- <ThinkingDot />
141
- </ThinkingDotsWrapper>
142
- )}
143
- </MessageWrapper>
144
- {messageId && feedback === FeedbackType.Dislike && !showSuccessMessage && (
145
- <SearchAiNegativeFeedbackForm
146
- messageId={messageId}
147
- onClose={onFeedbackChange}
148
- onSubmit={(reason) => handleFeedbackClick(FeedbackType.Dislike, reason)}
149
- />
150
- )}
151
- {showSuccessMessage && (
152
- <SuccessMessageWrapper data-component-name="Search/SearchAiMessage/Success">
153
- <CheckmarkOutlineIcon size="20px" color="var(--color-success-base)" />
154
- <SuccessMessageText>
155
- {translate('search.ai.feedback.thanks', 'Thank you for your feedback!')}
156
- </SuccessMessageText>
157
- </SuccessMessageWrapper>
124
+ {isThinking && content.length === 0 && (
125
+ <ThinkingDotsWrapper data-testid="thinking-dots-wrapper">
126
+ <ThinkingDot />
127
+ <ThinkingDot />
128
+ <ThinkingDot />
129
+ </ThinkingDotsWrapper>
130
+ )}
131
+ {content.length > 0 && (
132
+ <FeedbackWrapper>
133
+ <SearchAiActionButtons
134
+ content={content}
135
+ feedback={feedback}
136
+ onFeedback={handleFeedbackClick}
137
+ disabled={!!feedback}
138
+ />
139
+ </FeedbackWrapper>
140
+ )}
141
+ </MessageWrapper>
142
+ {messageId && feedback === FeedbackType.Dislike && !showSuccessMessage && (
143
+ <SearchAiNegativeFeedbackForm
144
+ messageId={messageId}
145
+ onClose={(messageId: string, feedback: FeedbackType) => {
146
+ onFeedbackChange(messageId, feedback);
147
+ setFeedbackSent(true);
148
+ }}
149
+ onSubmit={(reason) => handleFeedbackClick(FeedbackType.Dislike, reason)}
150
+ />
151
+ )}
152
+ {showSuccessMessage && (
153
+ <SuccessMessageWrapper data-component-name="Search/SearchAiMessage/Success">
154
+ <CheckmarkOutlineIcon size="20px" color="var(--color-success-base)" />
155
+ <SuccessMessageText>
156
+ {translate('search.ai.feedback.thanks', 'Thank you for your feedback!')}
157
+ </SuccessMessageText>
158
+ </SuccessMessageWrapper>
159
+ )}
160
+ </>
161
+ ) : (
162
+ <MessageWrapper role={role}>{content}</MessageWrapper>
158
163
  )}
159
164
  </MessageContentWrapper>
160
165
  </SearchAiMessageWrapper>
@@ -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>');
@@ -11,6 +11,7 @@ import { searchHighlight } from '@redocly/theme/components/Search/SearchHighligh
11
11
  import { Badge } from '@redocly/theme/components/Badge/Badge';
12
12
  import { trimText } 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) {
@@ -84,7 +87,11 @@ export function SearchItem({
84
87
  <SearchItemTitle>
85
88
  {highlight.title ? searchHighlight(highlight.title) : document.title}
86
89
  </SearchItemTitle>
87
- {document.deprecated ? <SearchItemBadge deprecated>Deprecated</SearchItemBadge> : null}
90
+ {document.deprecated ? (
91
+ <SearchItemBadge deprecated>
92
+ {translate('search.searchItem.deprecated', 'Deprecated')}
93
+ </SearchItemBadge>
94
+ ) : null}
88
95
  {document.badges
89
96
  ? document.badges.map(({ name, color }) => (
90
97
  <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]);