@redocly/theme 0.82.2-rc.3 → 0.83.0-rc.1

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 (204) hide show
  1. package/lib/components/Badge/Badge.d.ts +8 -5
  2. package/lib/components/Badge/Badge.js +9 -3
  3. package/lib/components/Breadcrumbs/Breadcrumb.d.ts +1 -1
  4. package/lib/components/Breadcrumbs/Breadcrumb.js +2 -2
  5. package/lib/components/Breadcrumbs/Breadcrumbs.d.ts +3 -3
  6. package/lib/components/Breadcrumbs/Breadcrumbs.js +2 -2
  7. package/lib/components/Buttons/CopyButton.d.ts +2 -2
  8. package/lib/components/Buttons/CopyButton.js +3 -3
  9. package/lib/components/Buttons/EditPageButton.d.ts +2 -3
  10. package/lib/components/Buttons/EditPageButton.js +2 -2
  11. package/lib/components/Buttons/EmailButton.d.ts +4 -5
  12. package/lib/components/Buttons/EmailButton.js +2 -2
  13. package/lib/components/Buttons/NewTabButton.d.ts +4 -5
  14. package/lib/components/Buttons/NewTabButton.js +2 -2
  15. package/lib/components/Catalog/Catalog.d.ts +3 -2
  16. package/lib/components/Catalog/Catalog.js +1 -5
  17. package/lib/components/Catalog/CatalogActions.d.ts +1 -2
  18. package/lib/components/Catalog/CatalogCard.d.ts +1 -2
  19. package/lib/components/Catalog/CatalogHighlight.d.ts +1 -2
  20. package/lib/components/Catalog/CatalogInfoBlock.d.ts +1 -2
  21. package/lib/components/CodeBlock/CodeBlockContainer.d.ts +14 -5
  22. package/lib/components/CodeBlock/CodeBlockContainer.js +9 -4
  23. package/lib/components/CodeBlock/CodeBlockControls.js +2 -0
  24. package/lib/components/CodeBlock/CodeBlockTabs.d.ts +1 -2
  25. package/lib/components/CodeBlock/variables.js +2 -2
  26. package/lib/components/ColorModeSwitcher/ColorModeIcon.d.ts +4 -8
  27. package/lib/components/ColorModeSwitcher/ColorModeIcon.js +5 -3
  28. package/lib/components/ColorModeSwitcher/ColorModeSwitcher.d.ts +1 -2
  29. package/lib/components/DatePicker/DatePicker.d.ts +2 -3
  30. package/lib/components/Dropdown/Dropdown.d.ts +3 -3
  31. package/lib/components/Dropdown/Dropdown.js +3 -5
  32. package/lib/components/Dropdown/DropdownMenu.d.ts +1 -2
  33. package/lib/components/Dropdown/DropdownMenuItem.d.ts +1 -2
  34. package/lib/components/Dropdown/DropdownMenuItem.js +8 -8
  35. package/lib/components/Feedback/Comment.d.ts +2 -1
  36. package/lib/components/Feedback/Comment.js +3 -3
  37. package/lib/components/Feedback/ReportDialog.js +1 -1
  38. package/lib/components/Filter/FilterContent.d.ts +1 -3
  39. package/lib/components/Filter/FilterContent.js +3 -3
  40. package/lib/components/Filter/FilterInput.d.ts +1 -2
  41. package/lib/components/Filter/FilterOption.d.ts +8 -4
  42. package/lib/components/Filter/FilterOption.js +7 -4
  43. package/lib/components/Filter/FilterOptionLabel.d.ts +5 -3
  44. package/lib/components/Filter/FilterOptionLabel.js +6 -3
  45. package/lib/components/Filter/FilterOptions.d.ts +5 -3
  46. package/lib/components/Filter/FilterOptions.js +6 -3
  47. package/lib/components/Filter/FilterPopover.d.ts +1 -2
  48. package/lib/components/Filter/FilterSelect.js +1 -4
  49. package/lib/components/Filter/FilterTitle.d.ts +5 -3
  50. package/lib/components/Filter/FilterTitle.js +6 -3
  51. package/lib/components/Filter/variables.js +2 -1
  52. package/lib/components/Footer/Footer.d.ts +1 -2
  53. package/lib/components/Footer/FooterColumn.d.ts +1 -2
  54. package/lib/components/Footer/FooterCopyright.d.ts +1 -2
  55. package/lib/components/Footer/FooterItem.d.ts +1 -2
  56. package/lib/components/Footer/FooterLogo.d.ts +3 -4
  57. package/lib/components/Footer/FooterLogo.js +6 -1
  58. package/lib/components/Image/Image.d.ts +2 -2
  59. package/lib/components/JsonViewer/JsonViewer.d.ts +2 -2
  60. package/lib/components/LanguagePicker/LanguagePicker.d.ts +1 -2
  61. package/lib/components/LastUpdated/LastUpdated.d.ts +1 -1
  62. package/lib/components/Link/Link.d.ts +1 -1
  63. package/lib/components/Loading/Loading.d.ts +2 -2
  64. package/lib/components/Logo/Logo.d.ts +1 -2
  65. package/lib/components/Markdown/Markdown.d.ts +12 -0
  66. package/lib/components/Markdown/Markdown.js +6 -7
  67. package/lib/components/Markdown/variables.js +10 -5
  68. package/lib/components/Menu/Menu.d.ts +1 -2
  69. package/lib/components/Menu/MenuContainer.d.ts +4 -4
  70. package/lib/components/Menu/MenuContainer.js +10 -3
  71. package/lib/components/Menu/MenuItem.js +1 -1
  72. package/lib/components/Menu/MenuMobile.d.ts +1 -2
  73. package/lib/components/Menu/variables.js +2 -0
  74. package/lib/components/Navbar/NavbarItem.d.ts +1 -2
  75. package/lib/components/Navbar/NavbarItem.js +1 -1
  76. package/lib/components/Navbar/NavbarLogo.d.ts +3 -4
  77. package/lib/components/Navbar/NavbarLogo.js +6 -3
  78. package/lib/components/Navbar/NavbarMenu.d.ts +1 -2
  79. package/lib/components/PageNavigation/NextButton.d.ts +1 -2
  80. package/lib/components/PageNavigation/PageNavigation.d.ts +1 -2
  81. package/lib/components/PageNavigation/PreviousButton.d.ts +1 -2
  82. package/lib/components/Panel/Panel.d.ts +1 -2
  83. package/lib/components/Panel/PanelBody.d.ts +2 -3
  84. package/lib/components/Portal/Portal.d.ts +2 -3
  85. package/lib/components/Portal/Portal.js +2 -2
  86. package/lib/components/Product/Product.d.ts +1 -2
  87. package/lib/components/Search/Search.d.ts +1 -2
  88. package/lib/components/Search/SearchDialog.d.ts +1 -2
  89. package/lib/components/Search/SearchInput.d.ts +1 -2
  90. package/lib/components/Search/SearchItem.d.ts +1 -1
  91. package/lib/components/Search/SearchRecent.d.ts +1 -2
  92. package/lib/components/Search/SearchShortcut.d.ts +1 -2
  93. package/lib/components/Search/SearchSuggestedPages.d.ts +1 -2
  94. package/lib/components/Search/SearchTrigger.d.ts +1 -2
  95. package/lib/components/Search/variables.js +2 -2
  96. package/lib/components/Segmented/Segmented.d.ts +1 -1
  97. package/lib/components/Select/Select.d.ts +3 -3
  98. package/lib/components/Sidebar/Sidebar.d.ts +1 -2
  99. package/lib/components/SidebarActions/ChangeViewButton.d.ts +2 -3
  100. package/lib/components/SidebarActions/SidebarActions.d.ts +2 -2
  101. package/lib/components/SidebarLogo/SidebarLogo.d.ts +3 -3
  102. package/lib/components/TableOfContent/TableOfContent.d.ts +1 -2
  103. package/lib/components/Tag/Tag.d.ts +1 -1
  104. package/lib/components/UserMenu/UserAvatar.d.ts +1 -2
  105. package/lib/components/UserMenu/UserInfoMenuItem.d.ts +1 -2
  106. package/lib/components/UserMenu/UserMenu.d.ts +1 -2
  107. package/lib/components/UserMenu/UserMenuMobile.d.ts +1 -2
  108. package/lib/components/VersionPicker/VersionPicker.d.ts +1 -1
  109. package/lib/layouts/DocumentationLayout.js +7 -0
  110. package/lib/layouts/NotFound.js +2 -2
  111. package/lib/layouts/RootLayout.d.ts +2 -3
  112. package/lib/markdoc/components/InlineSvg/InlineSvg.d.ts +2 -1
  113. package/lib/markdoc/components/InlineSvg/InlineSvg.js +2 -2
  114. package/lib/markdoc/components/Tabs/variables.js +5 -5
  115. package/package.json +18 -18
  116. package/src/components/Badge/Badge.tsx +13 -3
  117. package/src/components/Breadcrumbs/Breadcrumb.tsx +2 -2
  118. package/src/components/Breadcrumbs/Breadcrumbs.tsx +2 -2
  119. package/src/components/Buttons/CopyButton.tsx +7 -5
  120. package/src/components/Buttons/EditPageButton.tsx +3 -3
  121. package/src/components/Buttons/EmailButton.tsx +4 -4
  122. package/src/components/Buttons/NewTabButton.tsx +7 -4
  123. package/src/components/Catalog/Catalog.tsx +5 -7
  124. package/src/components/Catalog/CatalogActions.tsx +1 -1
  125. package/src/components/Catalog/CatalogCard.tsx +3 -1
  126. package/src/components/Catalog/CatalogHighlight.tsx +1 -1
  127. package/src/components/Catalog/CatalogInfoBlock.tsx +1 -1
  128. package/src/components/CodeBlock/CodeBlockContainer.tsx +19 -6
  129. package/src/components/CodeBlock/CodeBlockControls.tsx +2 -0
  130. package/src/components/CodeBlock/CodeBlockTabs.tsx +1 -1
  131. package/src/components/CodeBlock/variables.ts +2 -2
  132. package/src/components/ColorModeSwitcher/ColorModeIcon.tsx +8 -4
  133. package/src/components/ColorModeSwitcher/ColorModeSwitcher.tsx +1 -1
  134. package/src/components/DatePicker/DatePicker.tsx +2 -2
  135. package/src/components/Dropdown/Dropdown.tsx +7 -5
  136. package/src/components/Dropdown/DropdownMenu.tsx +1 -1
  137. package/src/components/Dropdown/DropdownMenuItem.tsx +9 -9
  138. package/src/components/Feedback/Comment.tsx +4 -2
  139. package/src/components/Feedback/ReportDialog.tsx +1 -0
  140. package/src/components/Filter/FilterContent.tsx +2 -2
  141. package/src/components/Filter/FilterInput.tsx +1 -1
  142. package/src/components/Filter/FilterOption.tsx +20 -4
  143. package/src/components/Filter/FilterOptionLabel.tsx +10 -3
  144. package/src/components/Filter/FilterOptions.tsx +10 -3
  145. package/src/components/Filter/FilterPopover.tsx +1 -1
  146. package/src/components/Filter/FilterSelect.tsx +1 -4
  147. package/src/components/Filter/FilterTitle.tsx +10 -3
  148. package/src/components/Filter/variables.ts +2 -1
  149. package/src/components/Footer/Footer.tsx +1 -1
  150. package/src/components/Footer/FooterColumn.tsx +1 -1
  151. package/src/components/Footer/FooterCopyright.tsx +1 -1
  152. package/src/components/Footer/FooterItem.tsx +1 -1
  153. package/src/components/Footer/FooterLogo.tsx +8 -1
  154. package/src/components/Image/Image.tsx +1 -1
  155. package/src/components/JsonViewer/JsonViewer.tsx +2 -2
  156. package/src/components/LanguagePicker/LanguagePicker.tsx +1 -1
  157. package/src/components/LastUpdated/LastUpdated.tsx +1 -1
  158. package/src/components/Link/Link.tsx +1 -1
  159. package/src/components/Loading/Loading.tsx +2 -2
  160. package/src/components/Logo/Logo.tsx +1 -1
  161. package/src/components/Markdown/Markdown.tsx +17 -8
  162. package/src/components/Markdown/variables.ts +10 -5
  163. package/src/components/Menu/Menu.tsx +1 -1
  164. package/src/components/Menu/MenuContainer.tsx +9 -5
  165. package/src/components/Menu/MenuItem.tsx +6 -1
  166. package/src/components/Menu/MenuMobile.tsx +1 -1
  167. package/src/components/Menu/variables.ts +2 -0
  168. package/src/components/Navbar/Navbar.tsx +1 -0
  169. package/src/components/Navbar/NavbarItem.tsx +2 -2
  170. package/src/components/Navbar/NavbarLogo.tsx +8 -3
  171. package/src/components/Navbar/NavbarMenu.tsx +1 -1
  172. package/src/components/PageNavigation/NextButton.tsx +1 -1
  173. package/src/components/PageNavigation/PageNavigation.tsx +1 -1
  174. package/src/components/PageNavigation/PreviousButton.tsx +1 -1
  175. package/src/components/Panel/Panel.tsx +1 -1
  176. package/src/components/Panel/PanelBody.ts +2 -2
  177. package/src/components/Portal/Portal.tsx +6 -3
  178. package/src/components/Product/Product.tsx +1 -1
  179. package/src/components/Search/Search.tsx +1 -1
  180. package/src/components/Search/SearchDialog.tsx +1 -1
  181. package/src/components/Search/SearchInput.tsx +1 -1
  182. package/src/components/Search/SearchItem.tsx +1 -1
  183. package/src/components/Search/SearchRecent.tsx +1 -1
  184. package/src/components/Search/SearchShortcut.tsx +1 -1
  185. package/src/components/Search/SearchSuggestedPages.tsx +1 -1
  186. package/src/components/Search/SearchTrigger.tsx +1 -1
  187. package/src/components/Search/variables.ts +2 -2
  188. package/src/components/Segmented/Segmented.tsx +1 -1
  189. package/src/components/Select/Select.tsx +3 -3
  190. package/src/components/Sidebar/Sidebar.tsx +1 -1
  191. package/src/components/SidebarActions/ChangeViewButton.tsx +2 -2
  192. package/src/components/SidebarActions/SidebarActions.tsx +2 -2
  193. package/src/components/SidebarLogo/SidebarLogo.tsx +3 -3
  194. package/src/components/TableOfContent/TableOfContent.tsx +1 -1
  195. package/src/components/Tag/Tag.tsx +1 -1
  196. package/src/components/UserMenu/UserAvatar.tsx +1 -1
  197. package/src/components/UserMenu/UserInfoMenuItem.tsx +1 -1
  198. package/src/components/UserMenu/UserMenu.tsx +1 -1
  199. package/src/components/UserMenu/UserMenuMobile.tsx +1 -1
  200. package/src/layouts/DocumentationLayout.tsx +7 -0
  201. package/src/layouts/NotFound.tsx +3 -3
  202. package/src/layouts/RootLayout.tsx +2 -2
  203. package/src/markdoc/components/InlineSvg/InlineSvg.tsx +8 -1
  204. package/src/markdoc/components/Tabs/variables.ts +5 -5
@@ -16,7 +16,7 @@ export type LinkProps = {
16
16
  [key: string]: unknown;
17
17
  };
18
18
 
19
- export function Link(props: React.PropsWithChildren<LinkProps>) {
19
+ export function Link(props: React.PropsWithChildren<LinkProps>): JSX.Element {
20
20
  const context = useContext(ThemeDataContext);
21
21
 
22
22
  if (context) {
@@ -13,9 +13,9 @@ const LoadingMessage = styled.div<{ color: string }>`
13
13
  color: ${({ color }) => getCssColorVariable(color)};
14
14
  `;
15
15
 
16
- export interface LoadingProps {
16
+ export type LoadingProps = {
17
17
  color: string;
18
- }
18
+ };
19
19
 
20
20
  export function Loading({ color }: LoadingProps): JSX.Element {
21
21
  return (
@@ -7,7 +7,7 @@ import { useThemeHooks } from '@redocly/theme/core/hooks';
7
7
  import { Link } from '@redocly/theme/components/Link/Link';
8
8
  import { Image } from '@redocly/theme/components/Image/Image';
9
9
 
10
- type LogoProps = {
10
+ export type LogoProps = {
11
11
  config: LogoConfig;
12
12
  className?: string;
13
13
  };
@@ -1,24 +1,33 @@
1
1
  import styled, { css } from 'styled-components';
2
2
 
3
+ import type { PropsWithChildren } from 'react';
4
+
3
5
  import { typography } from '@redocly/theme/core/utils/theme-helpers';
4
6
  import { markdownBaseTableCss } from '@redocly/theme/components/Markdown/styles/baseTable';
5
7
  import { markdownLinksCss } from '@redocly/theme/components/Markdown/styles/links';
6
8
  import { headingAnchorCss } from '@redocly/theme/components/Markdown/styles/headingAnchor';
7
9
 
10
+ export type MarkdownProps = PropsWithChildren<{
11
+ className?: string;
12
+ compact?: boolean;
13
+ inline?: boolean;
14
+ base?: boolean;
15
+ ref?: (node: HTMLDivElement) => void;
16
+ }>;
17
+
8
18
  export const Markdown = styled.main.attrs<{
9
19
  className?: string;
10
20
  }>(({ className }) => ({
11
21
  'data-component-name': 'Markdown/Markdown',
12
22
  className,
13
- }))<{ compact?: boolean; inline?: boolean; base?: boolean }>`
14
- font-weight: var(--font-weight-regular);
23
+ }))<MarkdownProps>`
24
+ font-size: var(--md-content-font-size);
25
+ font-family: var(--md-content-font-family);
26
+ font-weight: var(--md-content-font-weight);
27
+ line-height: var(--md-content-line-height);
28
+ color: var(--md-content-text-color);
15
29
  padding: 0;
16
30
 
17
- color: var(--text-color-secondary);
18
- font-size: var(--font-size-base);
19
- font-family: var(--font-family-base);
20
- line-height: var(--line-height-base);
21
-
22
31
  ${({ compact }) =>
23
32
  compact &&
24
33
  css`
@@ -34,7 +43,7 @@ export const Markdown = styled.main.attrs<{
34
43
  base &&
35
44
  css`
36
45
  p {
37
- font-size: var(--font-size-base);
46
+ font-size: var(--md-content-font-size);
38
47
  }
39
48
  `}
40
49
 
@@ -7,6 +7,11 @@ export const markdown = css`
7
7
 
8
8
  --md-content-max-width: 910px;
9
9
  --md-content-padding: 25px 0px 25px 0px; // @presenter Spacing
10
+ --md-content-font-size: var(--font-size-base); // @presenter FontSize
11
+ --md-content-font-family: var(--font-family-base); // @presenter FontFamily
12
+ --md-content-line-height: var(--line-height-base); // @presenter LineHeight
13
+ --md-content-font-weight: var(--font-weight-regular); // @presenter FontWeight
14
+ --md-content-text-color: var(--text-color-secondary); // @presenter Color
10
15
 
11
16
  /**
12
17
  * @tokens Markdown Blockquote
@@ -31,7 +36,7 @@ export const markdown = css`
31
36
  * @tokens Markdown Table
32
37
  */
33
38
 
34
- --md-table-font-size: var(--font-size-base); // @presenter FontSize
39
+ --md-table-font-size: var(--md-content-font-size); // @presenter FontSize
35
40
  --md-table-line-height: var(--line-height-md); // @presenter FontSize
36
41
  --md-table-margin-vertical: 20px; // @presenter Spacing
37
42
  --md-table-bg-color: transparent; // @presenter Color
@@ -81,10 +86,10 @@ export const markdown = css`
81
86
 
82
87
  --md-numbered-list-number-display: none;
83
88
  --md-numbered-list-item-style: var(--md-list-item-style);
84
- --md-numbered-list-number-text-color: var(--text-color-secondary); // @presenter Color
85
- --md-numbered-list-number-font-size: var(--font-size-base); // @presenter FontSize
86
- --md-numbered-list-number-font-family: var(--font-size-base); // @presenter FontFamily
87
- --md-numbered-list-number-font-weight: var(--font-weight-regular); // @presenter FontWeight
89
+ --md-numbered-list-number-text-color: var(--md-content-text-color); // @presenter Color
90
+ --md-numbered-list-number-font-size: var(--md-content-font-size); // @presenter FontSize
91
+ --md-numbered-list-number-font-family: var(--md-content-font-family); // @presenter FontFamily
92
+ --md-numbered-list-number-font-weight: var(--md-content-font-weight); // @presenter FontWeight
88
93
  --md-numbered-list-number-bg-color: var(--bg-color-active); // @presenter Color
89
94
  --md-numbered-list-number-border-radius: 10px; // @presenter BorderRadius
90
95
  --md-numbered-list-number-margin-right: 5px; // @presenter Spacing
@@ -7,7 +7,7 @@ import { MenuItem } from '@redocly/theme/components/Menu/MenuItem';
7
7
  import { MenuItemType } from '@redocly/theme/core/constants';
8
8
  import { getMenuItemType } from '@redocly/theme/core/utils';
9
9
 
10
- type MenuListProps = {
10
+ export type MenuListProps = {
11
11
  items: ItemState[];
12
12
  depth?: number;
13
13
  isMobile?: boolean;
@@ -1,13 +1,18 @@
1
+ import React, { type PropsWithChildren } from 'react';
1
2
  import styled, { keyframes } from 'styled-components';
2
3
 
3
4
  import type { MenuItemsAnimation } from '@redocly/theme/core/types';
4
5
 
5
- type MenuContainerProps = {
6
+ export type MenuContainerProps = PropsWithChildren<{
6
7
  growContent?: boolean;
7
8
  className?: string;
8
9
  hidden?: boolean;
9
10
  animation?: MenuItemsAnimation;
10
- };
11
+ }>;
12
+
13
+ export function MenuContainer(props: MenuContainerProps): JSX.Element {
14
+ return <MenuContainerComponent {...props} data-component-name="Menu/MenuContainer" />;
15
+ }
11
16
 
12
17
  const slideInRightAnimation = keyframes`
13
18
  0% {
@@ -27,9 +32,8 @@ const slideInLeftAnimation = keyframes`
27
32
  }
28
33
  `;
29
34
 
30
- export const MenuContainer = styled.div.attrs<MenuContainerProps>(
35
+ const MenuContainerComponent = styled.div.attrs<MenuContainerProps>(
31
36
  ({ growContent, className, animation }) => ({
32
- 'data-component-name': 'Menu/MenuContainer',
33
37
  growContent: growContent === undefined ? true : growContent,
34
38
  className,
35
39
  animation,
@@ -47,7 +51,7 @@ export const MenuContainer = styled.div.attrs<MenuContainerProps>(
47
51
  position: relative;
48
52
  overflow-y: auto;
49
53
  flex-grow: ${({ growContent }) => (growContent ? 1 : 0)};
50
- padding-top: var(--sidebar-offset-top);
54
+ padding-top: var(--menu-container-padding-top);
51
55
  display: ${({ hidden }) => (hidden ? 'none' : 'block')};
52
56
  overscroll-behavior: contain;
53
57
  `;
@@ -98,7 +98,12 @@ export function MenuItem(props: React.PropsWithChildren<MenuItemProps>): JSX.Ele
98
98
  className={generateClassName({ type, item, className })}
99
99
  >
100
100
  {item.link ? (
101
- <MenuItemLink to={item.link} languageInsensitive={item.languageInsensitive}>
101
+ <MenuItemLink
102
+ to={item.link}
103
+ external={item.external}
104
+ target={item.target}
105
+ languageInsensitive={item.languageInsensitive}
106
+ >
102
107
  {label}
103
108
  </MenuItemLink>
104
109
  ) : (
@@ -13,7 +13,7 @@ import { ArrowLeftIcon } from '@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon'
13
13
  import { UserMenuMobile } from '@redocly/theme/components/UserMenu/UserMenuMobile';
14
14
  import { Product } from '@redocly/theme/components/Product/Product';
15
15
 
16
- type MobileMenuProps = {
16
+ export type MobileMenuProps = {
17
17
  className?: string;
18
18
  hideUserProfile?: boolean;
19
19
  };
@@ -173,4 +173,6 @@ export const mobileMenu = css`
173
173
  --menu-mobile-product-name-margin: var(--menu-item-label-margin);
174
174
 
175
175
  // @tokens End
176
+
177
+ --menu-container-padding-top: var(--sidebar-offset-top);
176
178
  `;
@@ -16,6 +16,7 @@ import { ProductPicker } from '@redocly/theme/components/Product/ProductPicker';
16
16
  import { Button } from '@redocly/theme/components/Button/Button';
17
17
  import { MenuIcon } from '@redocly/theme/icons/MenuIcon/MenuIcon';
18
18
  import { CloseIcon } from '@redocly/theme/icons/CloseIcon/CloseIcon';
19
+
19
20
  export type NavbarProps = {
20
21
  className?: string;
21
22
  };
@@ -13,7 +13,7 @@ import { LaunchIcon } from '@redocly/theme/icons/LaunchIcon/LaunchIcon';
13
13
  import { Link } from '@redocly/theme/components/Link/Link';
14
14
  import { Dropdown } from '@redocly/theme/components/Dropdown/Dropdown';
15
15
 
16
- type NavbarItemProps = {
16
+ export type NavbarItemProps = {
17
17
  navItem: ResolvedNavItem;
18
18
  className?: string;
19
19
  };
@@ -84,7 +84,7 @@ export function NavbarItem({ navItem, className }: NavbarItemProps): JSX.Element
84
84
  const NavbarMenuItemDropdown = styled(Dropdown)`
85
85
  --dropdown-menu-item-separator-font-size: var(--navbar-separator-font-size);
86
86
  --dropdown-menu-item-separator-text-color: var(--navbar-separator-text-color);
87
- --dropdown-menu-item-separator-lin-height: var(--navbar-separator-line-height);
87
+ --dropdown-menu-item-separator-line-height: var(--navbar-separator-line-height);
88
88
  `;
89
89
 
90
90
  const NavbarMenuItem = styled.li<LinkProps & { active?: boolean }>`
@@ -1,10 +1,15 @@
1
+ import React from 'react';
1
2
  import styled from 'styled-components';
2
3
 
4
+ import type { LogoProps } from '@redocly/theme/components/Logo/Logo';
5
+
3
6
  import { Logo } from '@redocly/theme/components/Logo/Logo';
4
7
 
5
- export const NavbarLogo = styled(Logo).attrs({
6
- 'data-component-name': 'Navbar/NavbarLogo',
7
- })`
8
+ export function NavbarLogo(props: LogoProps) {
9
+ return <NavbarLogoComponent {...props} data-component-name="Navbar/NavbarLogo" />;
10
+ }
11
+
12
+ const NavbarLogoComponent = styled(Logo)<LogoProps>`
8
13
  --logo-height: var(--navbar-logo-height);
9
14
  --logo-width: var(--navbar-logo-width);
10
15
  --logo-margin: var(--navbar-logo-margin);
@@ -6,7 +6,7 @@ import type { ResolvedConfigLinks, ResolvedNavItem } from '@redocly/config';
6
6
  import { breakpoints, isPrimitive } from '@redocly/theme/core/utils';
7
7
  import { NavbarItem } from '@redocly/theme/components/Navbar/NavbarItem';
8
8
 
9
- type NavbarMenuProps = {
9
+ export type NavbarMenuProps = {
10
10
  menuItems: ResolvedConfigLinks;
11
11
  className?: string;
12
12
  };
@@ -7,7 +7,7 @@ import { useThemeHooks, useThemeConfig } from '@redocly/theme/core/hooks';
7
7
  import { Button } from '@redocly/theme/components/Button/Button';
8
8
  import { ArrowRightIcon } from '@redocly/theme/icons/ArrowRightIcon/ArrowRightIcon';
9
9
 
10
- type NextPageType = {
10
+ export type NextPageType = {
11
11
  nextPage?: ResolvedNavItemWithLink | null;
12
12
  className?: string;
13
13
  };
@@ -7,7 +7,7 @@ import { useThemeConfig } from '@redocly/theme/core/hooks';
7
7
  import { PreviousButton } from '@redocly/theme/components/PageNavigation/PreviousButton';
8
8
  import { NextButton } from '@redocly/theme/components/PageNavigation/NextButton';
9
9
 
10
- type PageNavigationType = {
10
+ export type PageNavigationType = {
11
11
  nextPage?: ResolvedNavItemWithLink | null;
12
12
  prevPage?: ResolvedNavItemWithLink | null;
13
13
  className?: string;
@@ -7,7 +7,7 @@ import { useThemeHooks, useThemeConfig } from '@redocly/theme/core/hooks';
7
7
  import { Button } from '@redocly/theme/components/Button/Button';
8
8
  import { ArrowLeftIcon } from '@redocly/theme/icons/ArrowLeftIcon/ArrowLeftIcon';
9
9
 
10
- type PreviousPageType = {
10
+ export type PreviousPageType = {
11
11
  prevPage?: ResolvedNavItemWithLink | null;
12
12
  className?: string;
13
13
  };
@@ -10,7 +10,7 @@ import { PanelHeaderTitle } from '@redocly/theme/components/Panel/PanelHeaderTit
10
10
  import { ChevronDownIcon } from '@redocly/theme/icons/ChevronDownIcon/ChevronDownIcon';
11
11
  import { ChevronRightIcon } from '@redocly/theme/icons/ChevronRightIcon/ChevronRightIcon';
12
12
 
13
- type PanelProps = {
13
+ export type PanelProps = {
14
14
  expanded?: boolean;
15
15
  isExpandable?: boolean;
16
16
  className?: string;
@@ -13,10 +13,10 @@ const showPanelAnimation = css`
13
13
  animation: ${showPanel} 0.2s;
14
14
  `;
15
15
 
16
- interface PanelBodyProps {
16
+ export type PanelBodyProps = {
17
17
  animate?: boolean;
18
18
  hidden?: boolean;
19
- }
19
+ };
20
20
 
21
21
  export const PanelBody = styled.div.attrs<{ className?: string }>(({ className }) => ({
22
22
  'data-component-name': 'Panel/PanelBody',
@@ -5,11 +5,14 @@ import type { PropsWithChildren } from 'react';
5
5
 
6
6
  import { IS_BROWSER } from '@redocly/theme/core/utils';
7
7
 
8
- type PortalProps = {
8
+ export type PortalProps = {
9
9
  mountId?: string;
10
10
  };
11
11
 
12
- export const Portal = ({ children, mountId = 'root' }: PropsWithChildren<PortalProps>) => {
12
+ export function Portal({
13
+ children,
14
+ mountId = 'root',
15
+ }: PropsWithChildren<PortalProps>): React.ReactPortal | JSX.Element {
13
16
  const mount = IS_BROWSER ? document.getElementById(mountId) || document.body : null;
14
17
 
15
18
  if (!mount) {
@@ -17,4 +20,4 @@ export const Portal = ({ children, mountId = 'root' }: PropsWithChildren<PortalP
17
20
  }
18
21
 
19
22
  return createPortal(children, mount);
20
- };
23
+ }
@@ -3,7 +3,7 @@ import styled from 'styled-components';
3
3
 
4
4
  import type { ProductConfig } from '@redocly/theme/config';
5
5
 
6
- type ProductProps = {
6
+ export type ProductProps = {
7
7
  product: ProductConfig;
8
8
  className?: string;
9
9
  };
@@ -5,7 +5,7 @@ import { SearchTrigger } from '@redocly/theme/components/Search/SearchTrigger';
5
5
  import { SearchDialog } from '@redocly/theme/components/Search/SearchDialog';
6
6
  import { useSearch } from '@redocly/theme/core/hooks';
7
7
 
8
- type SearchProps = {
8
+ export type SearchProps = {
9
9
  className?: string;
10
10
  };
11
11
 
@@ -15,7 +15,7 @@ import { useThemeHooks, useDialogHotKeys } from '@redocly/theme/core/hooks';
15
15
  import { Tag } from '@redocly/theme/components/Tag/Tag';
16
16
  import { CloseIcon } from '@redocly/theme/icons/CloseIcon/CloseIcon';
17
17
 
18
- type SearchDialogProps = {
18
+ export type SearchDialogProps = {
19
19
  onClose: () => void;
20
20
  className?: string;
21
21
  };
@@ -9,7 +9,7 @@ import { CloseIcon } from '@redocly/theme/icons/CloseIcon/CloseIcon';
9
9
  import { Button } from '@redocly/theme/components/Button/Button';
10
10
  import { useThemeHooks } from '@redocly/theme/core/hooks';
11
11
 
12
- type SearchInputProps = {
12
+ export type SearchInputProps = {
13
13
  placeholder?: string;
14
14
  value: string;
15
15
  onChange(value: string): void;
@@ -9,7 +9,7 @@ import { Image } from '@redocly/theme/components/Image/Image';
9
9
  import { highlight } from '@redocly/theme/components/Search/SearchHighlight';
10
10
 
11
11
  type ActiveItem<T> = T & { active?: boolean };
12
- type SearchItemProps = {
12
+ export type SearchItemProps = {
13
13
  item: ActiveItem<SearchDocument>;
14
14
  product?: {
15
15
  name: string;
@@ -7,7 +7,7 @@ import { CloseIcon } from '@redocly/theme/icons/CloseIcon/CloseIcon';
7
7
  import { RecentlyViewedIcon } from '@redocly/theme/icons/RecentlyViewedIcon/RecentlyViewedIcon';
8
8
  import { Button } from '@redocly/theme/components/Button/Button';
9
9
 
10
- type SearchRecentProps = {
10
+ export type SearchRecentProps = {
11
11
  onSelect: (value: string) => void;
12
12
  className?: string;
13
13
  };
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
- type SearchShortcutProps = {
4
+ export type SearchShortcutProps = {
5
5
  combination: string;
6
6
  text: string;
7
7
  className?: string;
@@ -5,7 +5,7 @@ import { useThemeHooks, useSuggestedPages } from '@redocly/theme/core/hooks';
5
5
  import { RecentlyViewedIcon } from '@redocly/theme/icons/RecentlyViewedIcon/RecentlyViewedIcon';
6
6
  import { Link } from '@redocly/theme/components/Link/Link';
7
7
 
8
- type SearchSuggestedPagesProps = {
8
+ export type SearchSuggestedPagesProps = {
9
9
  className?: string;
10
10
  };
11
11
 
@@ -6,7 +6,7 @@ import { Button } from '@redocly/theme/components/Button/Button';
6
6
  import { SearchIcon } from '@redocly/theme/icons/SearchIcon/SearchIcon';
7
7
  import { breakpoints } from '@redocly/theme/core/utils';
8
8
 
9
- type SearchTriggerProps = {
9
+ export type SearchTriggerProps = {
10
10
  onClick: () => void;
11
11
  className?: string;
12
12
  };
@@ -49,7 +49,7 @@ export const search = css`
49
49
  --search-recent-item-line-height: var(--line-height-base); // @presenter LineHeight
50
50
  --search-recent-item-padding: var(--spacing-xs) var(--spacing-lg);
51
51
  --search-recent-item-text-color: var(--search-item-text-color); // @presenter Color
52
- --search-recent-item-text-color-hover: var(--search-item-text-color-active); // @presenter Color
52
+ --search-recent-item-text-color-hover: var(--search-item-text-color-hover); // @presenter Color
53
53
  --search-recent-item-bg-color-hover: var(--search-item-bg-color-hover); // @presenter Color
54
54
  --search-recent-item-title-font-size: var(--font-size-base); // @presenter FontSize
55
55
  --search-recent-item-title-font-weight: var(--font-weight-semibold); // @presenter FontWeight
@@ -64,7 +64,7 @@ export const search = css`
64
64
  --search-suggested-item-line-height: var(--line-height-base); // @presenter LineHeight
65
65
  --search-suggested-item-padding: var(--spacing-xs) var(--spacing-lg);
66
66
  --search-suggested-item-text-color: var(--search-item-text-color); // @presenter Color
67
- --search-suggested-item-text-color-hover: var(--search-item-text-color-active); // @presenter Color
67
+ --search-suggested-item-text-color-hover: var(--search-item-text-color-hover); // @presenter Color
68
68
  --search-suggested-item-bg-color-hover: var(--search-item-bg-color-hover); // @presenter Color
69
69
  --search-suggested-item-title-font-size: var(--font-size-base); // @presenter FontSize
70
70
  --search-suggested-item-title-font-weight: var(--font-weight-semibold); // @presenter FontWeight
@@ -6,7 +6,7 @@ import type { SelectOption } from '@redocly/theme/core/types/select-option';
6
6
 
7
7
  import { typedMemo } from '@redocly/theme/core/hoc/typedMemo';
8
8
 
9
- type SegmentedProps<T> = {
9
+ export type SegmentedProps<T> = {
10
10
  options: SelectOption<T>[];
11
11
  value: T;
12
12
  onChange: ({ label, value }: { label: string; value: T }) => void;
@@ -6,7 +6,7 @@ import { ChevronDownIcon } from '@redocly/theme/icons/ChevronDownIcon/ChevronDow
6
6
  import { ChevronUpIcon } from '@redocly/theme/icons/ChevronUpIcon/ChevronUpIcon';
7
7
  import { CheckmarkIcon } from '@redocly/theme/icons/CheckmarkIcon/CheckmarkIcon';
8
8
 
9
- export interface SelectProps<T = any> {
9
+ export type SelectProps<T = any> = {
10
10
  value: T;
11
11
  options: {
12
12
  element: React.ReactNode | JSX.Element | string;
@@ -25,9 +25,9 @@ export interface SelectProps<T = any> {
25
25
  placeholder?: string;
26
26
  disabled?: boolean;
27
27
  renderInput?: (props: { isOpen: boolean }) => React.ReactElement;
28
- }
28
+ };
29
29
 
30
- export function Select<T>(props: SelectProps<T>) {
30
+ export function Select<T>(props: SelectProps<T>): JSX.Element {
31
31
  const {
32
32
  className,
33
33
  value,
@@ -7,7 +7,7 @@ import { breakpoints } from '@redocly/theme/core/utils';
7
7
  import { useThemeConfig, useMobileMenu } from '@redocly/theme/core/hooks';
8
8
  import { MenuContainer } from '@redocly/theme/components/Menu/MenuContainer';
9
9
 
10
- type SidebarProps = {
10
+ export type SidebarProps = {
11
11
  versions?: React.ReactNode;
12
12
  menu?: React.ReactNode;
13
13
  backLink?: {
@@ -9,11 +9,11 @@ import {
9
9
  } from '@redocly/theme/components/SidebarActions/styled';
10
10
  import { useThemeHooks } from '@redocly/theme/core/hooks';
11
11
 
12
- interface ChangeViewButtonProps {
12
+ export type ChangeViewButtonProps = {
13
13
  layout: LayoutVariant;
14
14
  collapsedSidebar: boolean;
15
15
  onClick: () => void;
16
- }
16
+ };
17
17
 
18
18
  export const ChangeViewButton = ({
19
19
  layout,
@@ -13,7 +13,7 @@ import {
13
13
 
14
14
  export { LayoutVariant };
15
15
 
16
- interface SidebarActionsProps {
16
+ export type SidebarActionsProps = {
17
17
  layout: LayoutVariant;
18
18
  collapsedSidebar: boolean;
19
19
  isOpenapiDocs: boolean;
@@ -22,7 +22,7 @@ interface SidebarActionsProps {
22
22
  onChangeCollapseSidebarClick: () => void;
23
23
  requestAccessButton?: React.ReactElement | null;
24
24
  className?: string;
25
- }
25
+ };
26
26
 
27
27
  export const SidebarActions = ({
28
28
  layout,
@@ -1,14 +1,14 @@
1
1
  import React from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
- export interface LogoProps {
4
+ export type SidebarLogoProps = {
5
5
  imageUrl?: string;
6
6
  href?: string;
7
7
  altText?: string;
8
8
  dataTestId?: string;
9
9
  backgroundColor?: string;
10
10
  className?: string;
11
- }
11
+ };
12
12
 
13
13
  export function SidebarLogo({
14
14
  imageUrl,
@@ -17,7 +17,7 @@ export function SidebarLogo({
17
17
  backgroundColor,
18
18
  dataTestId,
19
19
  className,
20
- }: LogoProps = {}): JSX.Element | null {
20
+ }: SidebarLogoProps = {}): JSX.Element | null {
21
21
  if (!imageUrl) {
22
22
  return null;
23
23
  }
@@ -16,7 +16,7 @@ import {
16
16
  getLeastDepth,
17
17
  } from '@redocly/theme/core/utils';
18
18
 
19
- type TableOfContentProps = {
19
+ export type TableOfContentProps = {
20
20
  headings?: Array<MdHeading | null> | null | undefined;
21
21
  contentWrapper: HTMLDivElement | null;
22
22
  className?: string;
@@ -19,7 +19,7 @@ type Color =
19
19
  | 'geekblue'
20
20
  | 'yellow';
21
21
 
22
- type TagProps = {
22
+ export type TagProps = {
23
23
  className?: string;
24
24
  children?: React.ReactNode;
25
25
  closable?: boolean;
@@ -3,7 +3,7 @@ import styled from 'styled-components';
3
3
 
4
4
  import { UserIcon } from '@redocly/theme/icons/UserIcon/UserIcon';
5
5
 
6
- type UserAvatarProps = {
6
+ export type UserAvatarProps = {
7
7
  picture?: string;
8
8
  className?: string;
9
9
  height?: `var(${string})` | `${number}px`;
@@ -4,7 +4,7 @@ import styled from 'styled-components';
4
4
  import { DropdownMenuItem } from '@redocly/theme/components/Dropdown/DropdownMenuItem';
5
5
  import { UserAvatar } from '@redocly/theme/components/UserMenu/UserAvatar';
6
6
 
7
- type UserInfoMenuItemProps = {
7
+ export type UserInfoMenuItemProps = {
8
8
  name: string;
9
9
  email?: string;
10
10
  picture?: string;
@@ -13,7 +13,7 @@ import { UserInfoMenuItem } from '@redocly/theme/components/UserMenu/UserInfoMen
13
13
  import { Dropdown } from '@redocly/theme/components/Dropdown/Dropdown';
14
14
  import { LogoutMenuItem } from '@redocly/theme/components/UserMenu/LogoutMenuItem';
15
15
 
16
- type UserMenuProps = {
16
+ export type UserMenuProps = {
17
17
  className?: string;
18
18
  };
19
19
 
@@ -6,7 +6,7 @@ import { UserAvatar } from '@redocly/theme/components/UserMenu/UserAvatar';
6
6
  import { LogoutMenuItem } from '@redocly/theme/components/UserMenu/LogoutMenuItem';
7
7
  import { LoginButton } from '@redocly/theme/components/UserMenu/LoginButton';
8
8
 
9
- type UserMenuMobileProps = {
9
+ export type UserMenuMobileProps = {
10
10
  className?: string;
11
11
  };
12
12
 
@@ -63,6 +63,13 @@ const LayoutWrapper = styled.div.attrs(({ className }) => ({
63
63
  `;
64
64
 
65
65
  const ContentWrapper = styled.section<{ withToc: boolean }>`
66
+ --md-content-font-size: var(--font-size-lg);
67
+ --md-content-line-height: var(--line-height-lg);
68
+ --md-table-font-size: var(--md-content-font-size);
69
+ --md-table-line-height: var(--md-content-line-height);
70
+ --md-tabs-content-font-size: var(--md-content-font-size);
71
+ --md-tabs-content-line-height: var(--md-content-line-height);
72
+
66
73
  max-width: var(--md-content-max-width);
67
74
  width: 90%;
68
75
  margin: 0 auto;