@redocly/theme 0.55.0-next.7 → 0.55.0-next.8

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 (273) hide show
  1. package/lib/components/Breadcrumbs/Breadcrumbs.d.ts +2 -0
  2. package/lib/components/Breadcrumbs/Breadcrumbs.js +2 -1
  3. package/lib/components/Catalog/Catalog.d.ts +11 -0
  4. package/lib/components/Catalog/Catalog.js +138 -0
  5. package/lib/components/Catalog/CatalogActionsRow.d.ts +15 -0
  6. package/lib/components/Catalog/CatalogActionsRow.js +34 -0
  7. package/lib/components/Catalog/CatalogCardView/CatalogCard.d.ts +8 -0
  8. package/lib/components/Catalog/CatalogCardView/CatalogCard.js +179 -0
  9. package/lib/components/Catalog/CatalogCardView/CatalogCardView.d.ts +8 -0
  10. package/lib/components/Catalog/CatalogCardView/CatalogCardView.js +20 -0
  11. package/lib/components/Catalog/CatalogEntities.d.ts +18 -0
  12. package/lib/components/Catalog/CatalogEntities.js +63 -0
  13. package/lib/components/Catalog/CatalogEntitiesEmptyState.d.ts +2 -0
  14. package/lib/components/Catalog/CatalogEntitiesEmptyState.js +38 -0
  15. package/lib/components/Catalog/CatalogEntity/CatalogEntity.d.ts +12 -0
  16. package/lib/components/Catalog/CatalogEntity/CatalogEntity.js +133 -0
  17. package/lib/components/Catalog/CatalogEntity/CatalogEntityInfoBar.d.ts +7 -0
  18. package/lib/components/Catalog/CatalogEntity/CatalogEntityInfoBar.js +49 -0
  19. package/lib/components/Catalog/CatalogEntity/CatalogEntityLinks.d.ts +6 -0
  20. package/lib/components/Catalog/CatalogEntity/CatalogEntityLinks.js +48 -0
  21. package/lib/components/Catalog/CatalogEntity/CatalogEntityMetadata.d.ts +6 -0
  22. package/lib/components/Catalog/CatalogEntity/CatalogEntityMetadata.js +111 -0
  23. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/ApiDescriptionProperty.d.ts +6 -0
  24. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/ApiDescriptionProperty.js +25 -0
  25. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/CatalogEntityProperties.d.ts +6 -0
  26. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/CatalogEntityProperties.js +69 -0
  27. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/CatalogEntityPropertyCard.d.ts +7 -0
  28. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/CatalogEntityPropertyCard.js +48 -0
  29. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.d.ts +6 -0
  30. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.js +19 -0
  31. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.d.ts +6 -0
  32. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.js +20 -0
  33. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.d.ts +6 -0
  34. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.js +20 -0
  35. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.d.ts +6 -0
  36. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.js +23 -0
  37. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.d.ts +6 -0
  38. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.js +21 -0
  39. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.d.ts +6 -0
  40. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.js +24 -0
  41. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.d.ts +6 -0
  42. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.js +21 -0
  43. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityDefaultRelations.d.ts +21 -0
  44. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityDefaultRelations.js +37 -0
  45. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelations.d.ts +10 -0
  46. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelations.js +31 -0
  47. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelationsTable.d.ts +25 -0
  48. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelationsTable.js +27 -0
  49. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.d.ts +22 -0
  50. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.js +60 -0
  51. package/lib/components/Catalog/CatalogEntityIcon.d.ts +5 -0
  52. package/lib/components/Catalog/CatalogEntityIcon.js +38 -0
  53. package/lib/components/Catalog/CatalogEntityTypeIcon.d.ts +5 -0
  54. package/lib/components/Catalog/CatalogEntityTypeIcon.js +42 -0
  55. package/lib/components/Catalog/CatalogHighlight.d.ts +4 -0
  56. package/lib/components/Catalog/CatalogHighlight.js +48 -0
  57. package/lib/components/Catalog/CatalogPageDescription.d.ts +9 -0
  58. package/lib/components/Catalog/CatalogPageDescription.js +52 -0
  59. package/lib/components/Catalog/CatalogSelector.d.ts +12 -0
  60. package/lib/components/Catalog/CatalogSelector.js +48 -0
  61. package/lib/components/Catalog/CatalogSortButton.d.ts +10 -0
  62. package/lib/components/Catalog/CatalogSortButton.js +71 -0
  63. package/lib/components/Catalog/CatalogTableView/CatalogDomainsCell.d.ts +5 -0
  64. package/lib/components/Catalog/CatalogTableView/CatalogDomainsCell.js +19 -0
  65. package/lib/components/Catalog/CatalogTableView/CatalogEntityCell.d.ts +6 -0
  66. package/lib/components/Catalog/CatalogTableView/CatalogEntityCell.js +63 -0
  67. package/lib/components/Catalog/CatalogTableView/CatalogOwnersCell.d.ts +5 -0
  68. package/lib/components/Catalog/CatalogTableView/CatalogOwnersCell.js +19 -0
  69. package/lib/components/Catalog/CatalogTableView/CatalogTableHeaderCell.d.ts +11 -0
  70. package/lib/components/Catalog/CatalogTableView/CatalogTableHeaderCell.js +101 -0
  71. package/lib/components/Catalog/CatalogTableView/CatalogTableView.d.ts +31 -0
  72. package/lib/components/Catalog/CatalogTableView/CatalogTableView.js +106 -0
  73. package/lib/components/Catalog/CatalogTableView/CatalogTableViewRow.d.ts +27 -0
  74. package/lib/components/Catalog/CatalogTableView/CatalogTableViewRow.js +127 -0
  75. package/lib/components/Catalog/CatalogTableView/CatalogTagsCell.d.ts +6 -0
  76. package/lib/components/Catalog/CatalogTableView/CatalogTagsCell.js +20 -0
  77. package/lib/components/Catalog/CatalogTableView/CatalogUserEntityCell.d.ts +7 -0
  78. package/lib/components/Catalog/CatalogTableView/CatalogUserEntityCell.js +66 -0
  79. package/lib/components/Catalog/CatalogTagsWithTooltip.d.ts +9 -0
  80. package/lib/components/Catalog/CatalogTagsWithTooltip.js +46 -0
  81. package/lib/components/Catalog/CatalogViewModeToggle.d.ts +7 -0
  82. package/lib/components/Catalog/CatalogViewModeToggle.js +67 -0
  83. package/lib/components/Catalog/variables.d.ts +1 -0
  84. package/lib/components/Catalog/variables.dark.d.ts +1 -0
  85. package/lib/components/Catalog/variables.dark.js +8 -0
  86. package/lib/components/Catalog/variables.js +354 -0
  87. package/lib/components/CatalogClassic/CatalogClassicHighlight.js +1 -1
  88. package/lib/components/Filter/Filter.d.ts +1 -1
  89. package/lib/components/Filter/Filter.js +2 -2
  90. package/lib/components/Filter/FilterCheckboxes.d.ts +1 -1
  91. package/lib/components/Filter/FilterCheckboxes.js +4 -4
  92. package/lib/components/Filter/FilterContent.d.ts +3 -1
  93. package/lib/components/Filter/FilterContent.js +34 -4
  94. package/lib/components/Filter/FilterInput.js +35 -3
  95. package/lib/components/Filter/FilterSelect.d.ts +1 -1
  96. package/lib/components/Filter/FilterSelect.js +4 -4
  97. package/lib/components/LoadMore/LoadMore.d.ts +8 -0
  98. package/lib/components/LoadMore/LoadMore.js +18 -0
  99. package/lib/components/Markdown/Markdown.js +1 -1
  100. package/lib/components/PageNavigation/NavigationButton.d.ts +13 -0
  101. package/lib/components/PageNavigation/NavigationButton.js +32 -0
  102. package/lib/components/PageNavigation/NextButton.js +10 -29
  103. package/lib/components/PageNavigation/PageNavigation.js +1 -1
  104. package/lib/components/PageNavigation/PreviousButton.js +11 -27
  105. package/lib/components/Search/SearchAiConversationInput.js +2 -1
  106. package/lib/components/Select/Select.js +3 -3
  107. package/lib/components/Sidebar/Sidebar.d.ts +3 -0
  108. package/lib/components/Sidebar/Sidebar.js +3 -2
  109. package/lib/components/Tag/Tag.d.ts +3 -1
  110. package/lib/components/Tag/Tag.js +54 -2
  111. package/lib/components/Tag/variables.js +21 -0
  112. package/lib/components/Tooltip/Tooltip.d.ts +2 -1
  113. package/lib/components/Tooltip/Tooltip.js +26 -19
  114. package/lib/components/Tooltip/variables.js +17 -0
  115. package/lib/core/constants/catalog.d.ts +1 -0
  116. package/lib/core/constants/catalog.js +5 -0
  117. package/lib/core/constants/index.d.ts +1 -0
  118. package/lib/core/constants/index.js +1 -0
  119. package/lib/core/constants/search.d.ts +1 -0
  120. package/lib/core/constants/search.js +2 -1
  121. package/lib/core/hooks/__mocks__/use-theme-hooks.d.ts +1 -0
  122. package/lib/core/hooks/__mocks__/use-theme-hooks.js +1 -0
  123. package/lib/core/hooks/catalog/useCatalogEntities.d.ts +4 -0
  124. package/lib/core/hooks/catalog/useCatalogEntities.js +17 -0
  125. package/lib/core/hooks/catalog/useCatalogTableHeaderCellActions.d.ts +15 -0
  126. package/lib/core/hooks/catalog/useCatalogTableHeaderCellActions.js +23 -0
  127. package/lib/core/hooks/catalog/useCatalogTableViewRow.d.ts +11 -0
  128. package/lib/core/hooks/catalog/useCatalogTableViewRow.js +26 -0
  129. package/lib/core/hooks/index.d.ts +2 -0
  130. package/lib/core/hooks/index.js +2 -0
  131. package/lib/core/hooks/use-user-teams.d.ts +1 -0
  132. package/lib/core/hooks/use-user-teams.js +10 -0
  133. package/lib/core/styles/dark.js +2 -0
  134. package/lib/core/styles/global.js +63 -60
  135. package/lib/core/types/catalog.d.ts +118 -5
  136. package/lib/core/types/filter.d.ts +1 -0
  137. package/lib/core/types/hooks.d.ts +11 -4
  138. package/lib/core/types/index.d.ts +1 -0
  139. package/lib/core/types/index.js +1 -0
  140. package/lib/core/types/l10n.d.ts +1 -1
  141. package/lib/core/types/telemetry.d.ts +32 -0
  142. package/lib/core/types/telemetry.js +3 -0
  143. package/lib/icons/AscSortIcon/AscSortIcon.d.ts +9 -0
  144. package/lib/icons/AscSortIcon/AscSortIcon.js +25 -0
  145. package/lib/icons/CardsIcon/CardsIcon.d.ts +9 -0
  146. package/lib/icons/CardsIcon/CardsIcon.js +25 -0
  147. package/lib/icons/CaretDownIcon/CaretDownIcon.d.ts +9 -0
  148. package/lib/icons/CaretDownIcon/CaretDownIcon.js +22 -0
  149. package/lib/icons/CaretUpIcon/CaretUpIcon.d.ts +9 -0
  150. package/lib/icons/CaretUpIcon/CaretUpIcon.js +22 -0
  151. package/lib/icons/DescSortIcon/DescSortIcon.d.ts +9 -0
  152. package/lib/icons/DescSortIcon/DescSortIcon.js +25 -0
  153. package/lib/icons/EntityTypeIcon/EntityTypeIcon.d.ts +9 -0
  154. package/lib/icons/EntityTypeIcon/EntityTypeIcon.js +26 -0
  155. package/lib/icons/GithubIcon/GithubIcon.d.ts +9 -0
  156. package/lib/icons/GithubIcon/GithubIcon.js +22 -0
  157. package/lib/icons/GraphIcon/GraphIcon.d.ts +9 -0
  158. package/lib/icons/GraphIcon/GraphIcon.js +22 -0
  159. package/lib/icons/PeopleIcon/PeopleIcon.d.ts +9 -0
  160. package/lib/icons/PeopleIcon/PeopleIcon.js +27 -0
  161. package/lib/icons/SlackIcon/SlackIcon.d.ts +9 -0
  162. package/lib/icons/SlackIcon/SlackIcon.js +29 -0
  163. package/lib/icons/SortIcon/SortIcon.d.ts +9 -0
  164. package/lib/icons/SortIcon/SortIcon.js +25 -0
  165. package/lib/icons/TableIcon/TableIcon.d.ts +9 -0
  166. package/lib/icons/TableIcon/TableIcon.js +22 -0
  167. package/lib/icons/TagsIcon/TagsIcon.d.ts +9 -0
  168. package/lib/icons/TagsIcon/TagsIcon.js +24 -0
  169. package/lib/index.d.ts +18 -0
  170. package/lib/index.js +19 -0
  171. package/lib/markdoc/components/Tabs/Tab.d.ts +2 -1
  172. package/lib/markdoc/components/Tabs/Tab.js +10 -2
  173. package/lib/markdoc/components/Tabs/TabList.js +2 -2
  174. package/lib/markdoc/components/Tabs/Tabs.d.ts +3 -1
  175. package/lib/markdoc/components/Tabs/Tabs.js +2 -2
  176. package/package.json +2 -1
  177. package/src/components/Breadcrumbs/Breadcrumbs.tsx +7 -2
  178. package/src/components/Catalog/Catalog.tsx +235 -0
  179. package/src/components/Catalog/CatalogActionsRow.tsx +58 -0
  180. package/src/components/Catalog/CatalogCardView/CatalogCard.tsx +227 -0
  181. package/src/components/Catalog/CatalogCardView/CatalogCardView.tsx +29 -0
  182. package/src/components/Catalog/CatalogEntities.tsx +107 -0
  183. package/src/components/Catalog/CatalogEntitiesEmptyState.tsx +38 -0
  184. package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +207 -0
  185. package/src/components/Catalog/CatalogEntity/CatalogEntityInfoBar.tsx +60 -0
  186. package/src/components/Catalog/CatalogEntity/CatalogEntityLinks.tsx +67 -0
  187. package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +93 -0
  188. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/ApiDescriptionProperty.tsx +35 -0
  189. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/CatalogEntityProperties.tsx +83 -0
  190. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/CatalogEntityPropertyCard.tsx +62 -0
  191. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/ContactProperty.tsx +36 -0
  192. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/DomainsProperty.tsx +38 -0
  193. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/EntityTypeProperty.tsx +33 -0
  194. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/GitProperty.tsx +41 -0
  195. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/OwnersProperty.tsx +42 -0
  196. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.tsx +39 -0
  197. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/UserEmailProperty.tsx +31 -0
  198. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityDefaultRelations.tsx +97 -0
  199. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelations.tsx +80 -0
  200. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelationsTable.tsx +92 -0
  201. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.tsx +127 -0
  202. package/src/components/Catalog/CatalogEntityIcon.tsx +41 -0
  203. package/src/components/Catalog/CatalogEntityTypeIcon.tsx +48 -0
  204. package/src/components/Catalog/CatalogHighlight.tsx +56 -0
  205. package/src/components/Catalog/CatalogPageDescription.tsx +72 -0
  206. package/src/components/Catalog/CatalogSelector.tsx +67 -0
  207. package/src/components/Catalog/CatalogSortButton.tsx +78 -0
  208. package/src/components/Catalog/CatalogTableView/CatalogDomainsCell.tsx +26 -0
  209. package/src/components/Catalog/CatalogTableView/CatalogEntityCell.tsx +77 -0
  210. package/src/components/Catalog/CatalogTableView/CatalogOwnersCell.tsx +26 -0
  211. package/src/components/Catalog/CatalogTableView/CatalogTableHeaderCell.tsx +120 -0
  212. package/src/components/Catalog/CatalogTableView/CatalogTableView.tsx +176 -0
  213. package/src/components/Catalog/CatalogTableView/CatalogTableViewRow.tsx +180 -0
  214. package/src/components/Catalog/CatalogTableView/CatalogTagsCell.tsx +28 -0
  215. package/src/components/Catalog/CatalogTableView/CatalogUserEntityCell.tsx +77 -0
  216. package/src/components/Catalog/CatalogTagsWithTooltip.tsx +83 -0
  217. package/src/components/Catalog/CatalogViewModeToggle.tsx +65 -0
  218. package/src/components/Catalog/variables.dark.ts +5 -0
  219. package/src/components/Catalog/variables.ts +351 -0
  220. package/src/components/CatalogClassic/CatalogClassicHighlight.tsx +1 -1
  221. package/src/components/Filter/Filter.tsx +10 -2
  222. package/src/components/Filter/FilterCheckboxes.tsx +8 -4
  223. package/src/components/Filter/FilterContent.tsx +21 -5
  224. package/src/components/Filter/FilterInput.tsx +16 -4
  225. package/src/components/Filter/FilterSelect.tsx +8 -4
  226. package/src/components/LoadMore/LoadMore.tsx +38 -0
  227. package/src/components/Markdown/Markdown.tsx +1 -1
  228. package/src/components/PageNavigation/NavigationButton.tsx +68 -0
  229. package/src/components/PageNavigation/NextButton.tsx +20 -43
  230. package/src/components/PageNavigation/PageNavigation.tsx +1 -1
  231. package/src/components/PageNavigation/PreviousButton.tsx +20 -43
  232. package/src/components/Search/SearchAiConversationInput.tsx +3 -0
  233. package/src/components/Select/Select.tsx +5 -3
  234. package/src/components/Sidebar/Sidebar.tsx +1 -1
  235. package/src/components/Tag/Tag.tsx +67 -1
  236. package/src/components/Tag/variables.ts +21 -0
  237. package/src/components/Tooltip/Tooltip.tsx +31 -22
  238. package/src/components/Tooltip/variables.ts +17 -0
  239. package/src/core/constants/catalog.ts +1 -0
  240. package/src/core/constants/index.ts +1 -0
  241. package/src/core/constants/search.ts +2 -0
  242. package/src/core/hooks/__mocks__/use-theme-hooks.ts +1 -0
  243. package/src/core/hooks/catalog/useCatalogEntities.ts +16 -0
  244. package/src/core/hooks/catalog/useCatalogTableHeaderCellActions.ts +38 -0
  245. package/src/core/hooks/catalog/useCatalogTableViewRow.ts +40 -0
  246. package/src/core/hooks/index.ts +2 -0
  247. package/src/core/hooks/use-user-teams.ts +8 -0
  248. package/src/core/styles/dark.ts +2 -0
  249. package/src/core/styles/global.ts +3 -0
  250. package/src/core/types/catalog.ts +143 -5
  251. package/src/core/types/filter.ts +1 -0
  252. package/src/core/types/hooks.ts +32 -5
  253. package/src/core/types/index.ts +1 -0
  254. package/src/core/types/l10n.ts +20 -0
  255. package/src/core/types/telemetry.ts +36 -0
  256. package/src/core/utils/load-and-navigate.ts +5 -4
  257. package/src/icons/AscSortIcon/AscSortIcon.tsx +29 -0
  258. package/src/icons/CardsIcon/CardsIcon.tsx +38 -0
  259. package/src/icons/CaretDownIcon/CaretDownIcon.tsx +26 -0
  260. package/src/icons/CaretUpIcon/CaretUpIcon.tsx +26 -0
  261. package/src/icons/DescSortIcon/DescSortIcon.tsx +29 -0
  262. package/src/icons/EntityTypeIcon/EntityTypeIcon.tsx +49 -0
  263. package/src/icons/GithubIcon/GithubIcon.tsx +35 -0
  264. package/src/icons/GraphIcon/GraphIcon.tsx +26 -0
  265. package/src/icons/PeopleIcon/PeopleIcon.tsx +46 -0
  266. package/src/icons/SlackIcon/SlackIcon.tsx +61 -0
  267. package/src/icons/SortIcon/SortIcon.tsx +29 -0
  268. package/src/icons/TableIcon/TableIcon.tsx +26 -0
  269. package/src/icons/TagsIcon/TagsIcon.tsx +41 -0
  270. package/src/index.ts +20 -0
  271. package/src/markdoc/components/Tabs/Tab.tsx +12 -1
  272. package/src/markdoc/components/Tabs/TabList.tsx +2 -1
  273. package/src/markdoc/components/Tabs/Tabs.tsx +8 -3
@@ -1,11 +1,10 @@
1
1
  import * as React from 'react';
2
- import styled from 'styled-components';
3
2
 
4
3
  import type { JSX } from 'react';
5
4
  import type { ResolvedNavItemWithLink } from '@redocly/config';
6
5
 
7
- import { useThemeHooks, useThemeConfig } from '@redocly/theme/core/hooks';
8
- import { Button } from '@redocly/theme/components/Button/Button';
6
+ import { NavigationButton } from '@redocly/theme/components/PageNavigation/NavigationButton';
7
+ import { useThemeConfig, useThemeHooks } from '@redocly/theme/core/hooks';
9
8
  import { ArrowRightIcon } from '@redocly/theme/icons/ArrowRightIcon/ArrowRightIcon';
10
9
 
11
10
  export type NextPageType = {
@@ -15,52 +14,30 @@ export type NextPageType = {
15
14
 
16
15
  export function NextButton({ nextPage, className }: NextPageType): JSX.Element {
17
16
  const { navigation } = useThemeConfig();
18
- const { useTranslate } = useThemeHooks();
17
+ const { useTranslate, usePageProps } = useThemeHooks();
18
+ const { frontmatter } = usePageProps();
19
19
  const { translate } = useTranslate();
20
20
 
21
- if (!nextPage || navigation?.nextButton?.hide) {
22
- return <div>&nbsp;</div>;
23
- }
24
-
25
- const nextPageText = nextPage.label || nextPage.routeSlug || '';
26
21
  const translationKey = 'page.nextButton';
27
22
  const label =
23
+ frontmatter?.navigation?.nextButton?.label || nextPage?.label || nextPage?.routeSlug || '';
24
+ const link = frontmatter?.navigation?.nextButton?.link || nextPage?.link;
25
+ const text =
28
26
  navigation?.nextButton?.text || translate(translationKey, { defaultValue: 'Next page' });
29
27
 
28
+ if (navigation?.nextButton?.hide || !link || !label) {
29
+ return <div>&nbsp;</div>;
30
+ }
31
+
30
32
  return (
31
- <NextButtonWrapper
32
- data-component-name="PageNavigation/NextButton"
33
- data-translation-key={translationKey}
34
- >
35
- <NextPageLabel>{label}</NextPageLabel>
36
- <NextPageButton
37
- size="large"
38
- to={nextPage.link}
39
- extraClass={className}
40
- variant="link"
41
- icon={<ArrowRightIcon />}
42
- iconPosition="right"
43
- >
44
- {nextPageText}
45
- </NextPageButton>
46
- </NextButtonWrapper>
33
+ <NavigationButton
34
+ label={label}
35
+ link={link}
36
+ text={text}
37
+ translationKey={translationKey}
38
+ position="right"
39
+ className={className}
40
+ icon={<ArrowRightIcon />}
41
+ />
47
42
  );
48
43
  }
49
-
50
- const NextButtonWrapper = styled.div`
51
- display: flex;
52
- flex-direction: column;
53
- text-align: right;
54
- `;
55
-
56
- const NextPageButton = styled(Button)`
57
- text-wrap: wrap;
58
- padding-left: 0;
59
- padding-right: 0;
60
- `;
61
-
62
- const NextPageLabel = styled.span`
63
- font-size: var(--font-size-sm);
64
- line-height: var(--line-height-sm);
65
- font-weight: var(--font-weight-regular);
66
- `;
@@ -5,8 +5,8 @@ import type { JSX } from 'react';
5
5
  import type { ResolvedNavItemWithLink } from '@redocly/config';
6
6
 
7
7
  import { useThemeConfig } from '@redocly/theme/core/hooks';
8
- import { PreviousButton } from '@redocly/theme/components/PageNavigation/PreviousButton';
9
8
  import { NextButton } from '@redocly/theme/components/PageNavigation/NextButton';
9
+ import { PreviousButton } from '@redocly/theme/components/PageNavigation/PreviousButton';
10
10
 
11
11
  export type PageNavigationType = {
12
12
  nextPage?: ResolvedNavItemWithLink | null;
@@ -1,11 +1,10 @@
1
1
  import React from 'react';
2
- import styled from 'styled-components';
3
2
 
4
3
  import type { JSX } from 'react';
5
4
  import type { ResolvedNavItemWithLink } from '@redocly/config';
6
5
 
7
- import { useThemeHooks, useThemeConfig } from '@redocly/theme/core/hooks';
8
- import { Button } from '@redocly/theme/components/Button/Button';
6
+ import { NavigationButton } from '@redocly/theme/components/PageNavigation/NavigationButton';
7
+ import { useThemeConfig, useThemeHooks } from '@redocly/theme/core/hooks';
9
8
  import { ArrowLeftIcon } from '@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon';
10
9
 
11
10
  export type PreviousPageType = {
@@ -15,53 +14,31 @@ export type PreviousPageType = {
15
14
 
16
15
  export function PreviousButton({ prevPage, className }: PreviousPageType): JSX.Element {
17
16
  const { navigation } = useThemeConfig();
18
- const { useTranslate } = useThemeHooks();
17
+ const { useTranslate, usePageProps } = useThemeHooks();
18
+ const { frontmatter } = usePageProps();
19
19
  const { translate } = useTranslate();
20
20
 
21
- if (!prevPage || navigation?.previousButton?.hide) {
22
- return <div>&nbsp;</div>;
23
- }
24
-
25
- const prevPageText = prevPage.label || prevPage.routeSlug || '';
26
21
  const translationKey = 'page.previousButton';
27
22
  const label =
23
+ frontmatter?.navigation?.previousButton?.label || prevPage?.label || prevPage?.routeSlug || '';
24
+ const link = frontmatter?.navigation?.previousButton?.link || prevPage?.link;
25
+ const text =
28
26
  navigation?.previousButton?.text ||
29
27
  translate(translationKey, { defaultValue: 'Previous page' });
30
28
 
29
+ if (navigation?.previousButton?.hide || !link || !label) {
30
+ return <div>&nbsp;</div>;
31
+ }
32
+
31
33
  return (
32
- <PreviousButtonWrapper
33
- data-component-name="PageNavigation/PreviousButton"
34
- data-translation-key={translationKey}
35
- >
36
- <PreviousPageLabel>{label}</PreviousPageLabel>
37
- <PreviousPageButton
38
- size="large"
39
- to={prevPage.link}
40
- extraClass={className}
41
- variant="link"
42
- icon={<ArrowLeftIcon />}
43
- iconPosition="left"
44
- >
45
- {prevPageText}
46
- </PreviousPageButton>
47
- </PreviousButtonWrapper>
34
+ <NavigationButton
35
+ label={label}
36
+ link={link}
37
+ text={text}
38
+ translationKey={translationKey}
39
+ position="left"
40
+ className={className}
41
+ icon={<ArrowLeftIcon />}
42
+ />
48
43
  );
49
44
  }
50
-
51
- const PreviousButtonWrapper = styled.div`
52
- display: flex;
53
- flex-direction: column;
54
- text-align: left;
55
- `;
56
-
57
- const PreviousPageButton = styled(Button)`
58
- text-wrap: wrap;
59
- padding-left: 0;
60
- padding-right: 0;
61
- `;
62
-
63
- const PreviousPageLabel = styled.span`
64
- font-size: var(--font-size-sm);
65
- line-height: var(--line-height-sm);
66
- font-weight: var(--font-weight-regular);
67
- `;
@@ -3,6 +3,7 @@ import styled from 'styled-components';
3
3
 
4
4
  import type { JSX } from 'react';
5
5
 
6
+ import { AI_SEARCH_MAX_MESSAGE_LENGTH } from '@redocly/theme/core/constants';
6
7
  import { Button } from '@redocly/theme/components/Button/Button';
7
8
  import { SendIcon } from '@redocly/theme/icons/SendIcon/SendIcon';
8
9
  import { useThemeHooks } from '@redocly/theme/core/hooks';
@@ -62,7 +63,9 @@ export function SearchAiConversationInput({
62
63
  onKeyUp={handleOnKeyUp}
63
64
  value={query}
64
65
  disabled={isGeneratingResponse}
66
+ maxLength={AI_SEARCH_MAX_MESSAGE_LENGTH}
65
67
  />
68
+
66
69
  <SendButton
67
70
  disabled={isDisabled}
68
71
  size="small"
@@ -43,9 +43,10 @@ export function Select<T>(props: SelectProps<T>): JSX.Element {
43
43
  return values
44
44
  .map((value) => {
45
45
  const selectedOption = options.find((option) => option.value === value);
46
- return selectedOption || typeof value === 'string'
47
- ? ({ value } as SelectOption<T>)
48
- : (value as SelectOption<T>);
46
+ return (
47
+ selectedOption ||
48
+ (typeof value === 'string' ? ({ value } as SelectOption<T>) : (value as SelectOption<T>))
49
+ );
49
50
  })
50
51
  .filter((option) => !!option);
51
52
  };
@@ -298,4 +299,5 @@ const SelectDropdown = styled(Dropdown)`
298
299
 
299
300
  const SelectDropdownMenu = styled(DropdownMenu)`
300
301
  width: 100%;
302
+ margin-top: var(--spacing-unit);
301
303
  `;
@@ -121,7 +121,7 @@ const SidebarContent = styled.aside<{ opened?: boolean; collapsed?: boolean }>`
121
121
  }
122
122
  `;
123
123
 
124
- const SidebarHeader = styled.div<{ collapsed?: boolean }>`
124
+ export const SidebarHeader = styled.div<{ collapsed?: boolean }>`
125
125
  margin: var(--sidebar-offset-top) var(--sidebar-margin-horizontal) 0
126
126
  var(--sidebar-margin-horizontal);
127
127
  padding: 0 0 var(--sidebar-header-padding-bottom) 0;
@@ -46,9 +46,11 @@ export type TagProps = {
46
46
  icon?: React.ReactNode;
47
47
  active?: boolean;
48
48
  tabIndex?: number;
49
+ style?: React.CSSProperties;
49
50
  onClick?: (event: React.MouseEvent) => void;
50
51
  onKeyDown?: (event: React.KeyboardEvent) => void;
51
52
  onClose?: (event: React.MouseEvent) => void;
53
+ maxLength?: number;
52
54
  };
53
55
 
54
56
  export function Tag({
@@ -65,8 +67,72 @@ export function Tag({
65
67
  borderless,
66
68
  withStatusDot,
67
69
  statusDotColor = 'var(--tag-status-dot-color-default)',
70
+ maxLength,
68
71
  ...otherProps
69
72
  }: TagProps): JSX.Element {
73
+ const truncateText = (text: string, maxLen: number): string => {
74
+ if (text.length <= maxLen) return text;
75
+ return text.slice(0, maxLen) + '...';
76
+ };
77
+
78
+ const extractTextFromElement = (element: React.ReactNode): string => {
79
+ if (typeof element === 'string') {
80
+ return element;
81
+ }
82
+ if (typeof element === 'number') {
83
+ return element.toString();
84
+ }
85
+ if (React.isValidElement(element)) {
86
+ const props = element.props as { children?: React.ReactNode };
87
+ if (typeof props.children === 'string') {
88
+ return props.children;
89
+ }
90
+ }
91
+ return '';
92
+ };
93
+
94
+ const truncateJSXElement = (element: React.ReactNode, maxLen: number): React.ReactNode => {
95
+ if (typeof element === 'string') {
96
+ return truncateText(element, maxLen);
97
+ }
98
+ if (typeof element === 'number') {
99
+ const numStr = element.toString();
100
+ return numStr.length > maxLen ? truncateText(numStr, maxLen) : element;
101
+ }
102
+ if (React.isValidElement(element)) {
103
+ const textContent = extractTextFromElement(element);
104
+ if (textContent.length <= maxLen) {
105
+ return element;
106
+ }
107
+
108
+ const props = element.props as { children?: React.ReactNode };
109
+
110
+ if (typeof props.children === 'string') {
111
+ return React.cloneElement(element, {
112
+ ...props,
113
+ children: truncateText(props.children, maxLen),
114
+ } as any);
115
+ }
116
+ }
117
+ return element;
118
+ };
119
+
120
+ const renderChildren = (): React.ReactNode => {
121
+ if (!maxLength) {
122
+ return children;
123
+ }
124
+
125
+ if (typeof children === 'string') {
126
+ return truncateText(children, maxLength);
127
+ }
128
+
129
+ if (React.isValidElement(children)) {
130
+ return truncateJSXElement(children, maxLength);
131
+ }
132
+
133
+ return children;
134
+ };
135
+
70
136
  return (
71
137
  <TagWrapper
72
138
  tabIndex={tabIndex}
@@ -80,7 +146,7 @@ export function Tag({
80
146
  {...otherProps}
81
147
  >
82
148
  {withStatusDot ? <StatusDot color={statusDotColor} /> : icon ? icon : null}
83
- <ContentWrapper>{children}</ContentWrapper>
149
+ <ContentWrapper>{renderChildren()}</ContentWrapper>
84
150
  {closable && (
85
151
  <CloseButton
86
152
  onClick={(event) => {
@@ -160,6 +160,27 @@ export const tag = css`
160
160
  --tag-close-button-bg-color-hover: var(--color-warm-grey-3); // @presenter Color
161
161
  }
162
162
 
163
+ .tag-grass {
164
+ --tag-color: var(--color-grass-8); // @presenter Color
165
+ --tag-bg-color: transparent; // @presenter Color
166
+ --tag-border-color: var(--color-grass-4); // @presenter Color
167
+ --tag-close-button-bg-color-hover: var(--color-grass-1); // @presenter Color
168
+ }
169
+
170
+ .tag-purple {
171
+ --tag-color: var(--color-purple-7); // @presenter Color
172
+ --tag-bg-color: transparent; // @presenter Color
173
+ --tag-border-color: var(--color-purple-4); // @presenter Color
174
+ --tag-close-button-bg-color-hover: var(--color-purple-1); // @presenter Color
175
+ }
176
+
177
+ .tag-sky {
178
+ --tag-color: var(--color-sky-9); // @presenter Color
179
+ --tag-bg-color: transparent; // @presenter Color
180
+ --tag-border-color: var(--color-sky-5); // @presenter Color
181
+ --tag-close-button-bg-color-hover: var(--color-sky-2); // @presenter Color
182
+ }
183
+
163
184
  /**
164
185
  * @tokens Tag http
165
186
  */
@@ -13,6 +13,7 @@ export type TooltipProps = {
13
13
  className?: string;
14
14
  width?: string;
15
15
  dataTestId?: string;
16
+ disabled?: boolean;
16
17
  };
17
18
 
18
19
  export function TooltipComponent({
@@ -24,6 +25,7 @@ export function TooltipComponent({
24
25
  className = 'default',
25
26
  width,
26
27
  dataTestId,
28
+ disabled = false,
27
29
  }: PropsWithChildren<TooltipProps>): JSX.Element {
28
30
  const ref = useRef<HTMLDivElement | null>(null);
29
31
  const { isOpened, handleOpen, handleClose } = useControl(isOpen);
@@ -33,20 +35,21 @@ export function TooltipComponent({
33
35
  const isControlled = isOpen !== undefined;
34
36
 
35
37
  useEffect(() => {
36
- if (isControlled) {
38
+ if (isControlled && !disabled) {
37
39
  if (isOpen) {
38
40
  handleOpen();
39
41
  } else {
40
42
  handleClose();
41
43
  }
42
44
  }
43
- }, [isOpen, isControlled, handleOpen, handleClose]);
45
+ }, [isOpen, isControlled, handleOpen, handleClose, disabled]);
44
46
 
45
- const controllers = !isControlled && {
46
- onMouseEnter: handleOpen,
47
- onMouseLeave: handleClose,
48
- onClick: handleClose,
49
- };
47
+ const controllers = !isControlled &&
48
+ !disabled && {
49
+ onMouseEnter: handleOpen,
50
+ onMouseLeave: handleClose,
51
+ onClick: handleClose,
52
+ };
50
53
 
51
54
  return (
52
55
  <TooltipWrapper
@@ -56,7 +59,7 @@ export function TooltipComponent({
56
59
  data-component-name="Tooltip/Tooltip"
57
60
  >
58
61
  {children}
59
- {isOpened && (
62
+ {isOpened && !disabled && (
60
63
  <TooltipBody
61
64
  data-testid={dataTestId || (typeof tip === 'string' ? tip : '')}
62
65
  placement={placement}
@@ -83,10 +86,11 @@ const PLACEMENTS = {
83
86
  withArrow &&
84
87
  css`
85
88
  &::after {
86
- border-left: 5px solid transparent;
87
- border-right: 5px solid transparent;
88
- border-top-width: 6px;
89
+ border-left: 6px solid transparent;
90
+ border-right: 6px solid transparent;
91
+ border-top-width: 8px;
89
92
  border-top-style: solid;
93
+ border-radius: 2px 2px 0 0;
90
94
  bottom: 0;
91
95
  left: 50%;
92
96
  transform: translate(-50%, 99%);
@@ -103,10 +107,11 @@ const PLACEMENTS = {
103
107
  withArrow &&
104
108
  css`
105
109
  &::after {
106
- border-left: 5px solid transparent;
107
- border-right: 5px solid transparent;
108
- border-bottom-width: 6px;
110
+ border-left: 6px solid transparent;
111
+ border-right: 6px solid transparent;
112
+ border-bottom-width: 8px;
109
113
  border-bottom-style: solid;
114
+ border-radius: 0 0 2px 2px;
110
115
  top: 0;
111
116
  left: 50%;
112
117
  transform: translate(-50%, -99%);
@@ -123,10 +128,11 @@ const PLACEMENTS = {
123
128
  withArrow &&
124
129
  css`
125
130
  &::after {
126
- border-top: 5px solid transparent;
127
- border-bottom: 5px solid transparent;
128
- border-left-width: 6px;
131
+ border-top: 6px solid transparent;
132
+ border-bottom: 6px solid transparent;
133
+ border-left-width: 8px;
129
134
  border-left-style: solid;
135
+ border-radius: 2px 0 0 2px;
130
136
  top: 50%;
131
137
  right: 0;
132
138
  transform: translate(99%, -50%);
@@ -143,10 +149,11 @@ const PLACEMENTS = {
143
149
  withArrow &&
144
150
  css`
145
151
  &::after {
146
- border-top: 5px solid transparent;
147
- border-bottom: 5px solid transparent;
148
- border-right-width: 6px;
152
+ border-top: 6px solid transparent;
153
+ border-bottom: 6px solid transparent;
154
+ border-right-width: 8px;
149
155
  border-right-style: solid;
156
+ border-radius: 0 2px 2px 0;
150
157
  top: 50%;
151
158
  left: 0;
152
159
  transform: translate(-99%, -50%);
@@ -173,7 +180,7 @@ const TooltipBody = styled.span<
173
180
  white-space: normal;
174
181
  overflow-wrap: break-word;
175
182
 
176
- border-radius: var(--border-radius);
183
+ border-radius: var(--border-radius-md);
177
184
  transition: opacity 0.3s ease-out;
178
185
 
179
186
  font-size: 13px;
@@ -187,11 +194,13 @@ const TooltipBody = styled.span<
187
194
  display: inline-block;
188
195
  width: 0;
189
196
  height: 0;
190
- border-color: var(--tooltip-bg-color);
197
+ border-color: var(--tooltip-arrow-color, var(--tooltip-bg-color));
191
198
  }
192
199
 
193
200
  background: var(--tooltip-bg-color);
194
201
  color: var(--tooltip-text-color);
202
+ border: var(--tooltip-border-width, 0) var(--tooltip-border-style, solid)
203
+ var(--tooltip-border-color, transparent);
195
204
  box-shadow: rgb(0 0 0 / 25%) 0 2px 4px;
196
205
 
197
206
  width: ${({ width }) => width || '120px'};
@@ -8,6 +8,10 @@ export const tooltip = css`
8
8
 
9
9
  --tooltip-text-color: var(--text-color-secondary);
10
10
  --tooltip-bg-color: var(--bg-color-raised);
11
+ --tooltip-arrow-color: var(--tooltip-bg-color);
12
+ --tooltip-border-width: 0;
13
+ --tooltip-border-style: solid;
14
+ --tooltip-border-color: transparent;
11
15
  --tooltip-padding-vertical: var(--spacing-xs);
12
16
  --tooltip-padding-horizontal: var(--spacing-sm);
13
17
  --tooltip-padding: var(--tooltip-padding-vertical) var(--tooltip-padding-horizontal);
@@ -16,6 +20,19 @@ export const tooltip = css`
16
20
  .tooltip-copy-button {
17
21
  --tooltip-text-color: var(--text-color-secondary);
18
22
  --tooltip-bg-color: var(--bg-color-raised);
23
+ --tooltip-arrow-color: var(--tooltip-bg-color);
24
+ }
25
+
26
+ .tooltip-catalog {
27
+ --tooltip-text-color: var(--text-color-primary);
28
+ --tooltip-bg-color: var(--layer-color);
29
+ --tooltip-arrow-color: var(--border-color-secondary);
30
+ --tooltip-border-width: 2px;
31
+ --tooltip-border-color: var(--border-color-secondary);
32
+ --tooltip-padding-vertical: var(--spacing-xs);
33
+ --tooltip-padding-horizontal: var(--spacing-sm);
34
+ --tooltip-padding: var(--tooltip-padding-vertical) var(--tooltip-padding-horizontal);
35
+ --tooltip-max-width: 300px;
19
36
  }
20
37
 
21
38
  // @tokens End
@@ -0,0 +1 @@
1
+ export const CATALOG_TAG_MAX_LENGTH = 15;
@@ -2,3 +2,4 @@ export * from '@redocly/theme/core/constants/common';
2
2
  export * from '@redocly/theme/core/constants/environments';
3
3
  export * from '@redocly/theme/core/constants/code-walkthrough';
4
4
  export * from '@redocly/theme/core/constants/search';
5
+ export * from '@redocly/theme/core/constants/catalog';
@@ -38,4 +38,6 @@ export const AI_SEARCH_ERROR_CONFIG: Record<AiSearchError, AiSearchErrorConfig>
38
38
  [AiSearchError.ErrorProcessingResponse]: defaultErrorConfig,
39
39
  } as const;
40
40
 
41
+ export const AI_SEARCH_MAX_MESSAGE_LENGTH = 45000;
42
+
41
43
  export const SEARCH_DEBOUNCE_TIME_MS = 300;
@@ -85,4 +85,5 @@ export const useThemeHooks = jest.fn(() => ({
85
85
  submitFeedback: jest.fn(),
86
86
  })),
87
87
  useLoadAndNavigate: jest.fn(),
88
+ usePageProps: jest.fn().mockReturnValue({}),
88
89
  }));
@@ -0,0 +1,16 @@
1
+ import type { UseCatalogEntitiesProps } from '@redocly/theme';
2
+
3
+ export function useCatalogEntities({ entitiesTypes, excludedEntities }: UseCatalogEntitiesProps) {
4
+ const initialTypesWithoutAll = entitiesTypes.filter((type) => type !== 'all');
5
+ const initialTypesFilter = entitiesTypes.length ? `type:${initialTypesWithoutAll.join(',')}` : '';
6
+ const initialExcludedEntitiesFilter = excludedEntities?.length
7
+ ? `-key:${excludedEntities.map((entity) => entity.key).join(',')}`
8
+ : '';
9
+ const initialFilter = initialTypesFilter
10
+ ? `${initialTypesFilter} AND ${initialExcludedEntitiesFilter}`
11
+ : initialExcludedEntitiesFilter;
12
+
13
+ return {
14
+ initialFilter,
15
+ };
16
+ }
@@ -0,0 +1,38 @@
1
+ import {
2
+ BaseEntity,
3
+ CatalogColumn,
4
+ } from '@redocly/theme/components/Catalog/CatalogTableView/CatalogTableView';
5
+
6
+ import { SortOption } from '../../types';
7
+
8
+ type CatalogTableHeaderCellActionsProps<T extends BaseEntity> = {
9
+ column: CatalogColumn<T>;
10
+ handleSortClick: (sortKey: string, direction: 'asc' | 'desc') => void;
11
+ setSortOption: (sortOption: SortOption | null) => void;
12
+ isColumnSorted: (sortKey: string, direction: 'asc' | 'desc') => boolean;
13
+ };
14
+
15
+ export function useCatalogTableHeaderCellActions<T extends BaseEntity>({
16
+ column,
17
+ handleSortClick,
18
+ setSortOption,
19
+ isColumnSorted,
20
+ }: CatalogTableHeaderCellActionsProps<T>) {
21
+ const sortKey = column.sortKey;
22
+ const isUpActive = sortKey ? isColumnSorted(sortKey, 'desc') : false;
23
+ const isDownActive = sortKey ? isColumnSorted(sortKey, 'asc') : false;
24
+
25
+ const handleCellClick = (): void => {
26
+ if (!column.sortable || !sortKey) return;
27
+
28
+ if (isDownActive) {
29
+ handleSortClick(sortKey, 'desc');
30
+ } else if (isUpActive) {
31
+ setSortOption(null);
32
+ } else {
33
+ handleSortClick(sortKey, 'asc');
34
+ }
35
+ };
36
+
37
+ return { handleCellClick, sortKey, isUpActive, isDownActive };
38
+ }
@@ -0,0 +1,40 @@
1
+ import { CatalogEntityConfig, EntitiesCatalogConfig } from '@redocly/config';
2
+
3
+ import { getPathPrefix } from '../../utils';
4
+
5
+ type CatalogTableViewRowProps = {
6
+ entityKey: string;
7
+ entityType: string;
8
+ catalogConfig: CatalogEntityConfig;
9
+ entitiesCatalogConfig?: EntitiesCatalogConfig;
10
+ };
11
+
12
+ export function useCatalogTableViewRow({
13
+ entityKey,
14
+ entityType,
15
+ catalogConfig,
16
+ entitiesCatalogConfig,
17
+ }: CatalogTableViewRowProps) {
18
+ const getCatalogSpecificConfigByEntityTypeIncluded = () => {
19
+ if (!entitiesCatalogConfig) {
20
+ return;
21
+ }
22
+
23
+ return Object.values(entitiesCatalogConfig.catalogs ?? {}).find((catalog) => {
24
+ return catalog.includes?.some((include) => include.type === entityType);
25
+ });
26
+ };
27
+
28
+ const getEntityDetailsLink = () => {
29
+ const pathPrefix = getPathPrefix();
30
+ const catalogSpecificConfig = getCatalogSpecificConfigByEntityTypeIncluded();
31
+
32
+ if (!catalogSpecificConfig || !entitiesCatalogConfig) {
33
+ return `${pathPrefix}/catalogs/${catalogConfig.slug}/entities/${entityKey}`;
34
+ }
35
+
36
+ return `${pathPrefix}/catalogs/${catalogSpecificConfig.slug}/entities/${entityKey}`;
37
+ };
38
+
39
+ return { getEntityDetailsLink };
40
+ }
@@ -36,5 +36,7 @@ export * from '@redocly/theme/core/hooks/code-walkthrough/use-renderable-files';
36
36
  export * from '@redocly/theme/core/hooks/use-element-size';
37
37
  export * from '@redocly/theme/core/hooks/use-time-ago';
38
38
  export * from '@redocly/theme/core/hooks/use-input-key-commands';
39
+ export * from '@redocly/theme/core/hooks/catalog/useCatalogEntities';
39
40
  export * from '@redocly/theme/core/hooks/use-active-page-version';
40
41
  export * from '@redocly/theme/core/hooks/use-page-versions';
42
+ export * from '@redocly/theme/core/hooks/use-user-teams';
@@ -0,0 +1,8 @@
1
+ import { useThemeHooks } from '@redocly/theme/core/hooks';
2
+
3
+ export function useUserTeams() {
4
+ const { useUserTeams } = useThemeHooks();
5
+ const userTeams = useUserTeams();
6
+
7
+ return userTeams;
8
+ }