@redocly/theme 0.60.0-next.1 → 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 (277) 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 +1 -1
  107. package/lib/index.d.ts +3 -3
  108. package/lib/index.js +2 -3
  109. package/lib/layouts/ThreePanelLayout.js +4 -4
  110. package/lib/markdoc/components/Cards/variables.dark.js +2 -0
  111. package/lib/markdoc/components/Cards/variables.js +2 -0
  112. package/lib/markdoc/components/CodeWalkthrough/CodePanelHeader.js +1 -0
  113. package/lib/markdoc/tags/code-walkthrough.js +1 -0
  114. package/lib/markdoc/tags/html.js +1 -0
  115. package/package.json +1 -1
  116. package/src/components/Button/Button.tsx +1 -0
  117. package/src/components/Buttons/ConnectMCPButton.tsx +1 -1
  118. package/src/components/Buttons/variables.ts +2 -0
  119. package/src/components/Catalog/CatalogCardView/CatalogCard.tsx +4 -3
  120. package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +4 -0
  121. package/src/components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.tsx +1 -1
  122. package/src/components/Catalog/CatalogEntity/CatalogEntityLinks.tsx +5 -1
  123. package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +1 -0
  124. package/src/components/Catalog/CatalogEntity/CatalogEntityMethodAndPath.tsx +5 -1
  125. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.tsx +5 -1
  126. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.tsx +5 -1
  127. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.tsx +5 -1
  128. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/FormatProperty.tsx +5 -1
  129. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.tsx +5 -1
  130. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.tsx +5 -1
  131. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.tsx +5 -1
  132. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.tsx +5 -1
  133. package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +3 -1
  134. package/src/components/Catalog/CatalogFilter/CatalogFilterDateRange.tsx +2 -2
  135. package/src/components/Catalog/CatalogSelector.tsx +2 -2
  136. package/src/components/Catalog/CatalogSortButton.tsx +5 -1
  137. package/src/components/Catalog/CatalogTableView/CatalogTableHeaderCell.tsx +1 -1
  138. package/src/components/Catalog/CatalogTableView/CatalogTableViewRow.tsx +1 -1
  139. package/src/components/Catalog/CatalogTagsWithTooltip.tsx +8 -1
  140. package/src/components/Catalog/variables.dark.ts +1 -1
  141. package/src/components/Catalog/variables.ts +5 -3
  142. package/src/components/CatalogClassic/CatalogClassicInfoBlock.tsx +1 -0
  143. package/src/components/CatalogClassic/variables.ts +1 -1
  144. package/src/components/CodeBlock/CodeBlock.tsx +4 -0
  145. package/src/components/CodeBlock/CodeBlockControls.tsx +1 -0
  146. package/src/components/CodeBlock/CodeBlockTabs.tsx +1 -1
  147. package/src/components/DatePicker/variables.ts +3 -1
  148. package/src/components/Feedback/Mood.tsx +2 -2
  149. package/src/components/Feedback/Rating.tsx +2 -2
  150. package/src/components/Filter/FilterDateRange.tsx +2 -2
  151. package/src/components/Filter/FilterSelect.tsx +1 -0
  152. package/src/components/JsonViewer/{helpers.tsx → Helpers.tsx} +2 -0
  153. package/src/components/JsonViewer/JsonViewer.tsx +2 -1
  154. package/src/components/LastUpdated/LastUpdated.tsx +1 -0
  155. package/src/components/Loaders/Loading.tsx +5 -1
  156. package/src/components/Markdown/Markdown.tsx +2 -2
  157. package/src/components/OpenApiDocs/hooks/AfterOpenApiOperation.tsx +1 -1
  158. package/src/components/OpenApiDocs/hooks/AfterOpenApiTitle.tsx +1 -1
  159. package/src/components/OpenApiDocs/hooks/BeforeOpenApiOperation.tsx +1 -1
  160. package/src/components/OpenApiDocs/hooks/OpenApiFooter.tsx +1 -1
  161. package/src/components/OpenApiDocs/hooks/OpenApiHeader.tsx +1 -1
  162. package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +4 -1
  163. package/src/components/Search/SearchAiMessage.tsx +42 -37
  164. package/src/components/Search/SearchAiNegativeFeedbackForm.tsx +7 -5
  165. package/src/components/Search/SearchGroups.tsx +4 -1
  166. package/src/components/Search/SearchHighlight.tsx +1 -0
  167. package/src/components/Search/SearchItem.tsx +8 -1
  168. package/src/components/Search/variables.ts +2 -0
  169. package/src/components/Segmented/Segmented.tsx +2 -2
  170. package/src/components/Select/Select.tsx +8 -4
  171. package/src/components/Select/SelectInput.tsx +10 -1
  172. package/src/components/SidebarActions/{styled.tsx → styled.ts} +11 -4
  173. package/src/components/Tag/Tag.tsx +1 -0
  174. package/src/components/Tag/variables.dark.ts +2 -0
  175. package/src/components/Tag/variables.ts +2 -0
  176. package/src/components/Tooltip/Tooltip.tsx +2 -1
  177. package/src/components/VersionPicker/VersionPicker.tsx +2 -1
  178. package/src/core/hoc/index.ts +1 -1
  179. package/src/core/hooks/__mocks__/use-theme-hooks.ts +2 -2
  180. package/src/core/hooks/__tests__/mocks/mock-intersection-observer.ts +9 -8
  181. package/src/core/hooks/catalog/{useCatalogEntitySchema.ts → use-catalog-entity-schema.ts} +3 -3
  182. package/src/core/hooks/catalog/{useGraph.ts → use-graph.ts} +1 -1
  183. package/src/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.ts +1 -1
  184. package/src/core/hooks/code-walkthrough/__mocks__/mock-intersection-observer.ts +24 -0
  185. package/src/core/hooks/code-walkthrough/use-code-walkthrough-controls.ts +1 -0
  186. package/src/core/hooks/code-walkthrough/use-code-walkthrough-steps.ts +2 -2
  187. package/src/core/hooks/code-walkthrough/use-renderable-files.ts +1 -1
  188. package/src/core/hooks/index.ts +5 -2
  189. package/src/core/hooks/menu/use-collapse.ts +3 -3
  190. package/src/core/hooks/menu/use-mobile-menu-items.ts +1 -0
  191. package/src/core/hooks/use-mcp-config.ts +11 -5
  192. package/src/core/hooks/use-page-actions.ts +3 -1
  193. package/src/core/hooks/use-telemetry-fallback.ts +1 -0
  194. package/src/core/hooks/use-theme-config.ts +1 -0
  195. package/src/core/hooks/use-theme-hooks.ts +2 -1
  196. package/src/core/openapi/index.ts +1 -1
  197. package/src/core/templates/Markdown.tsx +1 -0
  198. package/src/core/types/catalog.ts +3 -1
  199. package/src/core/types/filter.ts +1 -0
  200. package/src/core/types/hooks.ts +6 -0
  201. package/src/core/types/index.ts +20 -19
  202. package/src/core/types/l10n.ts +24 -1
  203. package/src/core/types/search.ts +1 -1
  204. package/src/core/types/segmented.ts +1 -0
  205. package/src/core/types/select.ts +1 -0
  206. package/src/core/utils/args-typecheck.ts +2 -2
  207. package/src/core/utils/clipboard-service.ts +2 -0
  208. package/src/core/utils/get-user-agent.ts +1 -0
  209. package/src/core/utils/index.ts +2 -2
  210. package/src/core/utils/js-utils.ts +1 -1
  211. package/src/core/utils/load-and-navigate.ts +1 -0
  212. package/src/core/utils/markdoc.ts +1 -0
  213. package/src/core/utils/parse-style-string.ts +1 -0
  214. package/src/ext/configure.ts +2 -1
  215. package/src/index.ts +3 -3
  216. package/src/layouts/ThreePanelLayout.tsx +1 -1
  217. package/src/markdoc/components/Cards/variables.dark.ts +2 -0
  218. package/src/markdoc/components/Cards/variables.ts +3 -1
  219. package/src/markdoc/components/CodeWalkthrough/CodePanelHeader.tsx +1 -1
  220. package/src/markdoc/tags/code-walkthrough.ts +2 -0
  221. package/src/markdoc/tags/html.ts +1 -0
  222. package/lib/core/hooks/__mocks__/index.d.ts +0 -28
  223. package/lib/core/hooks/__mocks__/index.js +0 -45
  224. package/lib/core/hooks/__mocks__/search/use-recent-searches.d.ts +0 -5
  225. package/lib/core/hooks/__mocks__/search/use-recent-searches.js +0 -13
  226. package/lib/core/hooks/__mocks__/search/use-search-filter.d.ts +0 -8
  227. package/lib/core/hooks/__mocks__/search/use-search-filter.js +0 -15
  228. package/lib/core/hooks/__mocks__/search/use-suggested-pages.d.ts +0 -4
  229. package/lib/core/hooks/__mocks__/search/use-suggested-pages.js +0 -13
  230. package/lib/core/hooks/__mocks__/use-controlled-state.d.ts +0 -1
  231. package/lib/core/hooks/__mocks__/use-controlled-state.js +0 -7
  232. package/lib/core/hooks/__mocks__/use-element-size.d.ts +0 -4
  233. package/lib/core/hooks/__mocks__/use-element-size.js +0 -9
  234. package/lib/core/hooks/__mocks__/use-input-key-commands.d.ts +0 -3
  235. package/lib/core/hooks/__mocks__/use-input-key-commands.js +0 -8
  236. package/lib/core/hooks/__mocks__/use-mobile-menu.d.ts +0 -1
  237. package/lib/core/hooks/__mocks__/use-mobile-menu.js +0 -7
  238. package/lib/core/hooks/__mocks__/use-theme-config.d.ts +0 -8
  239. package/lib/core/hooks/__mocks__/use-theme-config.js +0 -13
  240. package/lib/core/hooks/__mocks__/use-theme-hooks.d.ts +0 -69
  241. package/lib/core/hooks/__mocks__/use-theme-hooks.js +0 -94
  242. package/lib/core/hooks/__mocks__/use-time-ago.d.ts +0 -3
  243. package/lib/core/hooks/__mocks__/use-time-ago.js +0 -8
  244. package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.d.ts +0 -10
  245. package/lib/core/hooks/code-walkthrough/__mocks__/MockIntersectionObserver.js +0 -56
  246. package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.d.ts +0 -1
  247. package/lib/core/hooks/menu/__mocks__/use-mobile-menu-items.js +0 -35
  248. /package/lib/components/JsonViewer/{helpers.d.ts → Helpers.d.ts} +0 -0
  249. /package/lib/components/Markdown/styles/{baseTable.d.ts → base-table.d.ts} +0 -0
  250. /package/lib/components/Markdown/styles/{headingAnchor.d.ts → heading-anchor.d.ts} +0 -0
  251. /package/lib/core/hoc/{typedMemo.d.ts → typed-memo.d.ts} +0 -0
  252. /package/lib/core/hooks/catalog/{useCatalogEntities.d.ts → use-catalog-entities.d.ts} +0 -0
  253. /package/lib/core/hooks/catalog/{useCatalogTableHeaderCellActions.d.ts → use-catalog-table-header-cell-actions.d.ts} +0 -0
  254. /package/lib/core/hooks/catalog/{useCatalogTableViewRow.d.ts → use-catalog-table-view-row.d.ts} +0 -0
  255. /package/lib/core/hooks/catalog/{useGraph.d.ts → use-graph.d.ts} +0 -0
  256. /package/lib/core/utils/{dynamic.d.ts → Dynamic.d.ts} +0 -0
  257. /package/lib/core/utils/{get-file-icon.d.ts → GetFileIcon.d.ts} +0 -0
  258. /package/src/components/Markdown/styles/{baseTable.ts → base-table.ts} +0 -0
  259. /package/src/components/Markdown/styles/{headingAnchor.ts → heading-anchor.ts} +0 -0
  260. /package/src/components/Panel/{PanelBody.ts → PanelBody.tsx} +0 -0
  261. /package/src/components/Panel/{PanelHeader.ts → PanelHeader.tsx} +0 -0
  262. /package/src/components/Panel/{PanelHeaderTitle.ts → PanelHeaderTitle.tsx} +0 -0
  263. /package/src/components/StatusCode/{StatusCode.ts → StatusCode.tsx} +0 -0
  264. /package/src/components/Typography/{CompactTypography.ts → CompactTypography.tsx} +0 -0
  265. /package/src/components/Typography/{Emphasis.ts → Emphasis.tsx} +0 -0
  266. /package/src/components/Typography/{H1.ts → H1.tsx} +0 -0
  267. /package/src/components/Typography/{H2.ts → H2.tsx} +0 -0
  268. /package/src/components/Typography/{H3.ts → H3.tsx} +0 -0
  269. /package/src/components/Typography/{H4.ts → H4.tsx} +0 -0
  270. /package/src/components/Typography/{SectionHeader.ts → SectionHeader.tsx} +0 -0
  271. /package/src/components/Typography/{Typography.ts → Typography.tsx} +0 -0
  272. /package/src/core/hoc/{typedMemo.ts → typed-memo.ts} +0 -0
  273. /package/src/core/hooks/catalog/{useCatalogEntities.ts → use-catalog-entities.ts} +0 -0
  274. /package/src/core/hooks/catalog/{useCatalogTableHeaderCellActions.ts → use-catalog-table-header-cell-actions.ts} +0 -0
  275. /package/src/core/hooks/catalog/{useCatalogTableViewRow.ts → use-catalog-table-view-row.ts} +0 -0
  276. /package/src/core/utils/{dynamic.tsx → Dynamic.tsx} +0 -0
  277. /package/src/core/utils/{get-file-icon.tsx → GetFileIcon.tsx} +0 -0
@@ -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]);
@@ -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
+ };
@@ -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
  }