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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/lib/components/Button/Button.js +1 -1
  2. package/lib/components/Catalog/CatalogCard.js +4 -5
  3. package/lib/components/CodeBlock/CodeBlock.js +1 -1
  4. package/lib/components/Dropdown/Dropdown.js +10 -5
  5. package/lib/components/Dropdown/DropdownMenuItem.js +22 -5
  6. package/lib/components/Dropdown/variables.js +5 -1
  7. package/lib/components/Feedback/Comment.js +1 -1
  8. package/lib/components/Feedback/Mood.js +4 -4
  9. package/lib/components/Feedback/Rating.js +1 -1
  10. package/lib/components/Feedback/Scale.js +1 -1
  11. package/lib/components/Feedback/Sentiment.js +3 -3
  12. package/lib/components/Filter/FilterContent.js +1 -1
  13. package/lib/components/LanguagePicker/LanguagePicker.js +5 -2
  14. package/lib/components/LanguagePicker/variables.js +4 -1
  15. package/lib/components/Markdown/Markdown.js +6 -6
  16. package/lib/components/Product/ProductPicker.js +4 -1
  17. package/lib/components/Product/variables.js +4 -1
  18. package/lib/components/Sidebar/Sidebar.js +3 -9
  19. package/lib/components/Tooltip/Tooltip.js +2 -2
  20. package/lib/components/Tooltip/variables.js +4 -0
  21. package/lib/components/Typography/H1.js +1 -1
  22. package/lib/components/Typography/H2.js +1 -1
  23. package/lib/components/Typography/H3.js +1 -1
  24. package/lib/components/Typography/H4.js +1 -1
  25. package/lib/components/UserMenu/UserMenu.js +4 -1
  26. package/lib/components/UserMenu/variables.js +4 -1
  27. package/lib/core/styles/global.js +3 -4
  28. package/lib/core/types/catalog.d.ts +3 -0
  29. package/lib/core/types/hooks.d.ts +3 -1
  30. package/package.json +2 -2
  31. package/src/components/Button/Button.tsx +5 -1
  32. package/src/components/Catalog/CatalogCard.tsx +20 -23
  33. package/src/components/CodeBlock/CodeBlock.tsx +1 -1
  34. package/src/components/Dropdown/Dropdown.tsx +12 -6
  35. package/src/components/Dropdown/DropdownMenuItem.tsx +24 -5
  36. package/src/components/Dropdown/variables.ts +5 -1
  37. package/src/components/Feedback/Comment.tsx +1 -1
  38. package/src/components/Feedback/Mood.tsx +5 -4
  39. package/src/components/Feedback/Rating.tsx +1 -1
  40. package/src/components/Feedback/Scale.tsx +1 -1
  41. package/src/components/Feedback/Sentiment.tsx +4 -3
  42. package/src/components/Filter/FilterContent.tsx +1 -1
  43. package/src/components/LanguagePicker/LanguagePicker.tsx +5 -2
  44. package/src/components/LanguagePicker/variables.ts +4 -1
  45. package/src/components/Markdown/Markdown.tsx +7 -7
  46. package/src/components/Product/ProductPicker.tsx +4 -1
  47. package/src/components/Product/variables.ts +4 -1
  48. package/src/components/Search/SearchDialog.tsx +1 -1
  49. package/src/components/Segmented/Segmented.tsx +2 -1
  50. package/src/components/Sidebar/Sidebar.tsx +3 -10
  51. package/src/components/Tooltip/Tooltip.tsx +2 -2
  52. package/src/components/Tooltip/variables.ts +4 -0
  53. package/src/components/Typography/H1.ts +1 -1
  54. package/src/components/Typography/H2.ts +1 -1
  55. package/src/components/Typography/H3.ts +1 -1
  56. package/src/components/Typography/H4.ts +1 -1
  57. package/src/components/UserMenu/UserMenu.tsx +4 -1
  58. package/src/components/UserMenu/variables.ts +4 -1
  59. package/src/core/styles/global.ts +4 -5
  60. package/src/core/types/catalog.ts +3 -1
  61. package/src/core/types/hooks.ts +3 -1
  62. package/src/core/utils/menu.ts +1 -2
  63. package/src/layouts/ThreePanelLayout.tsx +1 -0
@@ -16,7 +16,6 @@ type CatalogCardProps = { item: CatalogItem };
16
16
  export function CatalogCard({ item }: CatalogCardProps): JSX.Element {
17
17
  const { useTelemetry } = useThemeHooks();
18
18
  const telemetry = useTelemetry();
19
- const hasTags = item.scorecardLevel || item.tags?.length;
20
19
  return (
21
20
  <Link key={item.docsLink || item.link} to={item.docsLink || item.link}>
22
21
  <StyledCard
@@ -34,28 +33,26 @@ export function CatalogCard({ item }: CatalogCardProps): JSX.Element {
34
33
  </CardDescription>
35
34
  </CardContent>
36
35
  <CardFooter>
37
- {hasTags && (
38
- <CardTags>
39
- {((item.tags as string[]) || []).map((tag, index) => (
40
- <CardTag key={tag + index} color={slug(tag)}>
41
- <CatalogHighlight>{capitalize(tag)}</CatalogHighlight>
42
- </CardTag>
43
- ))}
44
- {(item.scorecardLevel && (
45
- <Tag
46
- borderless
47
- withStatusDot
48
- statusDotColor={`var(${getScorecardColorVariable(
49
- item.scorecardLevelIdx || 0,
50
- Object.keys(item.scorecardLevels || {}).length,
51
- )})`}
52
- >
53
- <CatalogHighlight>{item.scorecardLevel}</CatalogHighlight>
54
- </Tag>
55
- )) ||
56
- null}
57
- </CardTags>
58
- )}
36
+ <CardTags>
37
+ {((item.tags as string[]) || []).map((tag, index) => (
38
+ <CardTag key={tag + index} color={slug(tag)}>
39
+ <CatalogHighlight>{capitalize(tag)}</CatalogHighlight>
40
+ </CardTag>
41
+ ))}
42
+ {(item.scorecardLevel && (
43
+ <Tag
44
+ borderless
45
+ withStatusDot
46
+ statusDotColor={`var(${getScorecardColorVariable(
47
+ item.scorecardLevelIdx || 0,
48
+ Object.keys(item.scorecardLevels || {}).length,
49
+ )})`}
50
+ >
51
+ <CatalogHighlight>{item.scorecardLevel}</CatalogHighlight>
52
+ </Tag>
53
+ )) ||
54
+ null}
55
+ </CardTags>
59
56
  <SelectButton size="medium" variant="secondary" icon={<ArrowRightIcon />} />
60
57
  </CardFooter>
61
58
  </StyledCard>
@@ -69,7 +69,7 @@ export function CodeBlock({
69
69
  (source || externalSource?.sample?.get?.(externalSource)) ?? '',
70
70
  );
71
71
 
72
- const highlightedCode = highlightedHtml || children ? null : highlight(sourceCode, lang);
72
+ const highlightedCode = highlightedHtml || (children ? null : highlight(sourceCode, lang));
73
73
 
74
74
  // The same initial value should be returned for ssr and frontend to avoid issues
75
75
  // Because we don't have session storage in ssr and can't get the security details there
@@ -44,15 +44,21 @@ export function Dropdown({
44
44
  setIsOpen(false);
45
45
  };
46
46
 
47
- const handleToggle = () => {
47
+ const handleChildClick = (event: React.UIEvent) => {
48
+ event.stopPropagation();
49
+ event.preventDefault();
50
+ handleClose();
51
+ };
52
+
53
+ const handleToggle = (event: React.UIEvent) => {
54
+ event.stopPropagation();
55
+ event.preventDefault();
48
56
  setIsOpen(!isOpen);
49
57
  };
50
58
 
51
- const handleKeyDown = (event: KeyboardEvent) => {
59
+ const handleKeyDown = (event: React.KeyboardEvent) => {
52
60
  if (event.key === 'Enter' || event.key === ' ') {
53
- handleToggle();
54
- event.stopPropagation();
55
- event.preventDefault();
61
+ handleToggle(event);
56
62
  }
57
63
  };
58
64
 
@@ -85,7 +91,7 @@ export function Dropdown({
85
91
  <ChildrenWrapper
86
92
  placement={placement}
87
93
  alignment={alignment}
88
- onClick={closeOnClick ? handleClose : undefined}
94
+ onClick={closeOnClick ? handleChildClick : undefined}
89
95
  >
90
96
  {children}
91
97
  </ChildrenWrapper>
@@ -53,6 +53,8 @@ export function DropdownMenuItem({
53
53
  }
54
54
  };
55
55
 
56
+ className = className || '' + (active ? ' active' : '');
57
+
56
58
  if (to) {
57
59
  return (
58
60
  <DropdownMenuItemWrapper
@@ -139,8 +141,21 @@ const DropdownMenuItemWrapper = styled.li<{
139
141
  `}
140
142
 
141
143
  background-color: var(--dropdown-menu-item-bg-color);
144
+ color: var(--dropdown-menu-item-color);
145
+
146
+ ${({ active }) =>
147
+ active &&
148
+ css`
149
+ background-color: var(--dropdown-menu-item-bg-color-active);
150
+ color: var(--dropdown-menu-item-color-active);
151
+ svg {
152
+ fill: var(--dropdown-menu-item-color-active);
153
+ }
154
+ `}
155
+
142
156
  &:hover {
143
157
  background-color: var(--dropdown-menu-item-bg-color-hover);
158
+ color: var(--dropdown-menu-item-color-hover);
144
159
  }
145
160
 
146
161
  ${({ disabled }) =>
@@ -148,9 +163,10 @@ const DropdownMenuItemWrapper = styled.li<{
148
163
  css`
149
164
  cursor: default;
150
165
  pointer-events: none;
151
- color: var(--dropdown-menu-color-disabled);
166
+ background-color: var(--dropdown-menu-item-bg-color-disabled);
167
+ color: var(--dropdown-menu-item-color-disabled);
152
168
  svg {
153
- fill: var(--dropdown-menu-color-disabled);
169
+ fill: var(--dropdown-menu-item-color-disabled);
154
170
  }
155
171
  `}
156
172
 
@@ -171,9 +187,12 @@ const DropdownMenuItemWrapper = styled.li<{
171
187
  ${({ dangerous }) =>
172
188
  dangerous &&
173
189
  css`
174
- color: var(--dropdown-menu-item-color-dangerous);
175
- svg {
176
- fill: var(--dropdown-menu-item-color-dangerous);
190
+ &:hover,
191
+ & {
192
+ color: var(--dropdown-menu-item-color-dangerous);
193
+ svg {
194
+ fill: var(--dropdown-menu-item-color-dangerous);
195
+ }
177
196
  }
178
197
  `}
179
198
  `;
@@ -15,7 +15,6 @@ export const dropdown = css`
15
15
  --dropdown-menu-padding: var(--spacing-xxs); // @presenter Spacing
16
16
  --dropdown-menu-border-radius: var(--border-radius-lg); // @presenter BorderRadius
17
17
  --dropdown-menu-box-shadow: var(--bg-raised-shadow); // @presenter Shadow
18
- --dropdown-menu-color-disabled: var(--text-color-disabled); // @presenter Color
19
18
  --dropdown-menu-border-color: var(--border-color-secondary); // @presenter Color
20
19
  --dropdown-menu-bg-color: var(--bg-color-raised); // @presenter Color
21
20
 
@@ -28,11 +27,16 @@ export const dropdown = css`
28
27
  --dropdown-menu-item-bg-color: transparent;
29
28
  --dropdown-menu-item-bg-color-active: var(--bg-color-hover); // @presenter Color
30
29
  --dropdown-menu-item-bg-color-hover: var(--bg-color-hover); // @presenter Color
30
+ --dropdown-menu-item-bg-color-disabled: var(--dropdown-menu-item-bg-color); // @presenter Color
31
31
  --dropdown-menu-item-separator-border-color: var(--border-color-primary); // @presenter Color
32
32
  --dropdown-menu-item-separator-font-size: var(--font-size-sm); // @presenter FontSize
33
33
  --dropdown-menu-item-separator-line-height: var(--line-height-sm); // @presenter LineHeight
34
34
  --dropdown-menu-item-separator-text-color: var(--text-color-disabled); // @presenter Color
35
35
  --dropdown-menu-item-justify-content: flex-start;
36
+ --dropdown-menu-item-color: var(--dropdown-menu-text-color); // @presenter Color
37
+ --dropdown-menu-item-color-hover: var(--dropdown-menu-item-color); // @presenter Color
38
+ --dropdown-menu-item-color-active: var(--dropdown-menu-item-color); // @presenter Color
39
+ --dropdown-menu-item-color-disabled: var(--text-color-disabled); // @presenter Color
36
40
 
37
41
  --dropdown-menu-item-color-dangerous: var(--color-error-base);
38
42
 
@@ -93,7 +93,7 @@ export function Comment({
93
93
  <Button
94
94
  data-translation-key="theme.feedback.settings.comment.send"
95
95
  onClick={send}
96
- variant="primary"
96
+ variant="secondary"
97
97
  size="small"
98
98
  >
99
99
  {translate('theme.feedback.settings.comment.send', 'Send')}
@@ -125,8 +125,9 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
125
125
  <>
126
126
  <Button
127
127
  type="button"
128
- disabled={score === MOOD_STATES.DISSATISFIED}
129
128
  size="medium"
129
+ variant={score === MOOD_STATES.DISSATISFIED ? 'primary' : 'secondary'}
130
+ tone={score === MOOD_STATES.DISSATISFIED ? 'danger' : 'default'}
130
131
  onClick={() => {
131
132
  setScore(MOOD_STATES.DISSATISFIED);
132
133
  }}
@@ -134,7 +135,7 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
134
135
  />
135
136
  <Button
136
137
  type="button"
137
- disabled={score === MOOD_STATES.NEUTRAL}
138
+ variant={score === MOOD_STATES.NEUTRAL ? 'primary' : 'secondary'}
138
139
  size="medium"
139
140
  onClick={() => {
140
141
  setScore(MOOD_STATES.NEUTRAL);
@@ -143,7 +144,7 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
143
144
  />
144
145
  <Button
145
146
  type="button"
146
- disabled={score === MOOD_STATES.SATISFIED}
147
+ variant={score === MOOD_STATES.SATISFIED ? 'primary' : 'secondary'}
147
148
  size="medium"
148
149
  onClick={() => {
149
150
  setScore(MOOD_STATES.SATISFIED);
@@ -180,7 +181,7 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
180
181
  <Button onClick={onCancelMoodForm} variant="text" size="small">
181
182
  Cancel
182
183
  </Button>
183
- <Button onClick={onCancelMoodForm} variant="primary" size="small">
184
+ <Button onClick={onSubmitMoodForm} variant="secondary" size="small">
184
185
  Submit
185
186
  </Button>
186
187
  </ButtonsContainer>
@@ -123,7 +123,7 @@ export function Rating({ settings, onSubmit, className }: RatingProps): JSX.Elem
123
123
  <Button onClick={onCancelRatingForm} variant="text" size="small">
124
124
  Cancel
125
125
  </Button>
126
- <Button onClick={onCancelRatingForm} variant="primary" size="small">
126
+ <Button onClick={onCancelRatingForm} variant="secondary" size="small">
127
127
  Submit
128
128
  </Button>
129
129
  </ButtonsContainer>
@@ -163,7 +163,7 @@ export function Scale({ settings, onSubmit, className }: ScaleProps): JSX.Elemen
163
163
  <Button
164
164
  data-translation-key="theme.feedback.settings.scale.send"
165
165
  onClick={onSubmitScaleForm}
166
- variant="primary"
166
+ variant="secondary"
167
167
  size="small"
168
168
  >
169
169
  {translate('theme.feedback.settings.scale.send', 'Submit')}
@@ -101,7 +101,7 @@ export function Sentiment({ settings, onSubmit, className }: SentimentProps): JS
101
101
  <Button
102
102
  type="button"
103
103
  size="medium"
104
- disabled={score === 1}
104
+ variant={score === 1 ? 'primary' : 'secondary'}
105
105
  onClick={() => {
106
106
  setScore(1);
107
107
  }}
@@ -111,7 +111,8 @@ export function Sentiment({ settings, onSubmit, className }: SentimentProps): JS
111
111
  <Button
112
112
  size="medium"
113
113
  type="button"
114
- disabled={score === -1}
114
+ variant={score === -1 ? 'primary' : 'secondary'}
115
+ tone={score === -1 ? 'danger' : 'default'}
115
116
  onClick={() => {
116
117
  setScore(-1);
117
118
  }}
@@ -147,7 +148,7 @@ export function Sentiment({ settings, onSubmit, className }: SentimentProps): JS
147
148
  <Button onClick={onCancelSentimentForm} variant="text" size="small">
148
149
  Cancel
149
150
  </Button>
150
- <Button onClick={onSubmitSentimentForm} variant="primary" size="small">
151
+ <Button onClick={onSubmitSentimentForm} variant="secondary" size="small">
151
152
  Submit
152
153
  </Button>
153
154
  </ButtonsContainer>
@@ -46,7 +46,7 @@ export function FilterContent({
46
46
  {translate('theme.catalog.filters.title', 'Filters')}
47
47
  </FiltersTitle>
48
48
  {hasActiveFilters ? (
49
- <Button size="medium" variant="ghost" onClick={handleClearAll}>
49
+ <Button size="medium" tone="danger" variant="ghost" onClick={handleClearAll}>
50
50
  {translate('theme.catalog.filters.clearAll', 'Clear filters')}
51
51
  </Button>
52
52
  ) : null}
@@ -67,7 +67,7 @@ const LanguageDropdown = styled(Dropdown).attrs(() => ({
67
67
  }
68
68
 
69
69
  --dropdown-menu-item-justify-content: space-between;
70
-
70
+ --dropdown-menu-item-gap: var(--spacing-xxs);
71
71
  --dropdown-menu-font-size: var(--language-picker-dropdown-font-size);
72
72
  --dropdown-menu-font-weight: var(--language-picker-dropdown-font-weight);
73
73
  --dropdown-menu-line-height: var(--language-picker-dropdown-line-height);
@@ -78,7 +78,6 @@ const LanguageDropdown = styled(Dropdown).attrs(() => ({
78
78
  --dropdown-menu-padding: var(--language-picker-dropdown-padding);
79
79
  --dropdown-menu-border-radius: var(--language-picker-dropdown-border-radius);
80
80
  --dropdown-menu-box-shadow: var(--language-picker-dropdown-box-shadow);
81
- --dropdown-menu-color-disabled: var(--language-picker-dropdown-color-disabled);
82
81
  --dropdown-menu-border-color: var(--language-picker-dropdown-border-color);
83
82
  --dropdown-menu-bg-color: var(--language-picker-dropdown-bg-color);
84
83
  --dropdown-menu-item-padding-horizontal: var(--language-picker-dropdown-item-padding-horizontal);
@@ -92,8 +91,12 @@ const LanguageDropdown = styled(Dropdown).attrs(() => ({
92
91
  --dropdown-menu-item-border-radius: var(--language-picker-dropdown-item-border-radius);
93
92
  --dropdown-menu-item-bg-color-active: var(--language-picker-dropdown-item-bg-color-active);
94
93
  --dropdown-menu-item-bg-color-hover: var(--language-picker-dropdown-item-bg-color-hover);
94
+ --dropdown-menu-item-bg-color-disabled: var(--language-picker-dropdown-item-bg-color-disabled);
95
95
  --dropdown-menu-item-separator-border-color: var(
96
96
  --language-picker-dropdown-item-separator-border-color
97
97
  );
98
98
  --dropdown-menu-item-color-dangerous: var(--language-picker-dropdown-item-color-dangerous);
99
+ --dropdown-menu-item-color-disabled: var(--language-picker-dropdown-item-color-disabled);
100
+ --dropdown-menu-item-color-active: var(--language-picker-dropdown-item-color-active);
101
+ --dropdown-menu-item-color-hover: var(--language-picker-dropdown-item-color-hover);
99
102
  `;
@@ -15,7 +15,6 @@ export const languagePicker = css`
15
15
  --language-picker-dropdown-padding: var(--dropdown-menu-padding ); // @presenter Spacing
16
16
  --language-picker-dropdown-border-radius: var(--dropdown-menu-border-radius); // @presenter BorderRadius
17
17
  --language-picker-dropdown-box-shadow: var(--dropdown-menu-box-shadow); // @presenter Shadow
18
- --language-picker-dropdown-color-disabled: var(--dropdown-menu-color-disabled); // @presenter Color
19
18
  --language-picker-dropdown-border-color: var(--dropdown-menu-border-color); // @presenter Color
20
19
  --language-picker-dropdown-bg-color: var(--dropdown-menu-bg-color); // @presenter Color
21
20
 
@@ -26,8 +25,12 @@ export const languagePicker = css`
26
25
  --language-picker-dropdown-item-border-radius: var(--dropdown-menu-item-border-radius ); // @presenter BorderRadius
27
26
  --language-picker-dropdown-item-bg-color-active: var(--dropdown-menu-item-bg-color-active); // @presenter Color
28
27
  --language-picker-dropdown-item-bg-color-hover: var(--dropdown-menu-item-bg-color-hover); // @presenter Color
28
+ --language-picker-dropdown-item-bg-color-disabled: var(--dropdown-menu-item-bg-color-disabled); // @presenter Color
29
29
  --language-picker-dropdown-item-separator-border-color: var(--dropdown-menu-item-separator-border-color); // @presenter Color
30
30
  --language-picker-dropdown-item-color-dangerous: var(--dropdown-menu-item-color-dangerous);
31
+ --language-picker-dropdown-item-color-disabled: var(--dropdown-menu-item-color-disabled);
32
+ --language-picker-dropdown-item-color-active: var(--dropdown-menu-item-color-active);
33
+ --language-picker-dropdown-item-color-hover: var(--dropdown-menu-item-color-hover);
31
34
  --language-picker-dropdown-item-border-color-focused: var(--dropdown-menu-item-border-color-focused);
32
35
 
33
36
  // @tokens End
@@ -1,6 +1,6 @@
1
1
  import styled, { css } from 'styled-components';
2
- import { typography } from '@redocly/theme/core/utils/theme-helpers';
3
2
 
3
+ import { typography } from '@redocly/theme/core/utils/theme-helpers';
4
4
  import { markdownBaseTableCss } from '@redocly/theme/components/Markdown/styles/baseTable';
5
5
  import { markdownLinksCss } from '@redocly/theme/components/Markdown/styles/links';
6
6
  import { headingAnchorCss } from '@redocly/theme/components/Markdown/styles/headingAnchor';
@@ -103,37 +103,37 @@ export const Markdown = styled.main.attrs<{
103
103
  }
104
104
 
105
105
  h1.md {
106
- ${typography('h1', 'h')};
106
+ ${typography('h1')};
107
107
  margin: var(--h1-margin-top) 0 var(--h1-margin-bottom) 0;
108
108
  ${headingAnchorCss()};
109
109
  }
110
110
 
111
111
  h2.md {
112
- ${typography('h2', 'h')};
112
+ ${typography('h2')};
113
113
  margin: var(--h2-margin-top) 0 var(--h2-margin-bottom) 0;
114
114
  ${headingAnchorCss()};
115
115
  }
116
116
 
117
117
  h3.md {
118
- ${typography('h3', 'h')};
118
+ ${typography('h3')};
119
119
  margin: var(--h3-margin-top) 0 var(--h3-margin-bottom) 0;
120
120
  ${headingAnchorCss()};
121
121
  }
122
122
 
123
123
  h4.md {
124
- ${typography('h4', 'h')};
124
+ ${typography('h4')};
125
125
  margin: var(--h4-margin-top) 0 var(--h4-margin-bottom) 0;
126
126
  ${headingAnchorCss()};
127
127
  }
128
128
 
129
129
  h5.md {
130
- ${typography('h5', 'h')};
130
+ ${typography('h5')};
131
131
  margin: var(--h5-margin-top) 0 var(--h5-margin-bottom) 0;
132
132
  ${headingAnchorCss()};
133
133
  }
134
134
 
135
135
  h6.md {
136
- ${typography('h6', 'h')};
136
+ ${typography('h6')};
137
137
  margin: var(--h6-margin-top) 0 var(--h6-margin-bottom) 0;
138
138
  ${headingAnchorCss()};
139
139
  }
@@ -66,7 +66,6 @@ const ProductDropdown = styled(Dropdown).attrs(() => ({
66
66
  --dropdown-menu-padding: var(--product-picker-dropdown-padding);
67
67
  --dropdown-menu-border-radius: var(--product-picker-dropdown-border-radius);
68
68
  --dropdown-menu-box-shadow: var(--product-picker-dropdown-box-shadow);
69
- --dropdown-menu-color-disabled: var(--product-picker-dropdown-color-disabled);
70
69
  --dropdown-menu-border-color: var(--product-picker-dropdow--border-color);
71
70
  --dropdown-menu-bg-color: var(--product-picker-dropdown-bg-color);
72
71
  --dropdown-menu-item-padding-horizontal: var(--product-picker-dropdown-item-padding-horizontal);
@@ -80,8 +79,12 @@ const ProductDropdown = styled(Dropdown).attrs(() => ({
80
79
  --dropdown-menu-item-border-radius: var(--product-picker-dropdown-item-border-radius);
81
80
  --dropdown-menu-item-bg-color-active: var(--product-picker-dropdown-item-bg-color-active);
82
81
  --dropdown-menu-item-bg-color-hover: var(--product-picker-dropdown-item-bg-color-hover);
82
+ --dropdown-menu-item-bg-color-disabled: var(--product-picker-dropdown-item-bg-color-disabled);
83
83
  --dropdown-menu-item-separator-border-color: var(
84
84
  --product-picker-dropdown-item-separator-border-color
85
85
  );
86
86
  --dropdown-menu-item-color-dangerous: var(--product-picker-dropdown-item-color-dangerous);
87
+ --dropdown-menu-item-color-disabled: var(--product-picker-dropdown-item-color-disabled);
88
+ --dropdown-menu-item-color-active: var(--product-picker-dropdown-item-color-active);
89
+ --dropdown-menu-item-color-hover: var(--product-picker-dropdown-item-color-hover);
87
90
  `;
@@ -18,7 +18,6 @@ export const productPicker = css`
18
18
  --product-picker-dropdown-padding: var(--dropdown-menu-padding ); // @presenter Spacing
19
19
  --product-picker-dropdown-border-radius: var(--dropdown-menu-border-radius); // @presenter BorderRadius
20
20
  --product-picker-dropdown-box-shadow: var(--dropdown-menu-box-shadow); // @presenter Shadow
21
- --product-picker-dropdown-color-disabled: var(--dropdown-menu-color-disabled); // @presenter Color
22
21
  --product-picker-dropdown-border-color: var(--dropdown-menu-border-color); // @presenter Color
23
22
  --product-picker-dropdown-bg-color: var(--dropdown-menu-bg-color); // @presenter Color
24
23
 
@@ -29,8 +28,12 @@ export const productPicker = css`
29
28
  --product-picker-dropdown-item-border-radius: var(--dropdown-menu-item-border-radius ); // @presenter BorderRadius
30
29
  --product-picker-dropdown-item-bg-color-active: var(--dropdown-menu-item-bg-color-active); // @presenter Color
31
30
  --product-picker-dropdown-item-bg-color-hover: var(--dropdown-menu-item-bg-color-hover); // @presenter Color
31
+ --product-picker-dropdown-item-bg-color-disabled: var(--dropdown-menu-item-bg-color-disabled); // @presenter Color
32
32
  --product-picker-dropdown-item-separator-border-color: var(--dropdown-menu-item-separator-border-color); // @presenter Color
33
33
  --product-picker-dropdown-item-color-dangerous: var(--dropdown-menu-item-color-dangerous);
34
+ --product-picker-dropdown-item-color-disabled: var(--dropdown-menu-item-color-disabled);
35
+ --product-picker-dropdown-item-color-active: var(--dropdown-menu-item-color-active);
36
+ --product-picker-dropdown-item-color-hover: var(--dropdown-menu-item-color-hover);
34
37
  --product-picker-dropdown-item-border-color-focused: var(--dropdown-menu-item-border-color-focused);
35
38
 
36
39
  `;
@@ -1,8 +1,8 @@
1
1
  import React, { useRef, useState } from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
- import type { SearchDocument } from '@redocly/theme/core/types';
5
4
  import type { MouseEvent } from 'react';
5
+ import type { SearchDocument } from '@redocly/theme/core/types';
6
6
 
7
7
  import { SearchInput } from '@redocly/theme/components/Search/SearchInput';
8
8
  import { SearchShortcut } from '@redocly/theme/components/Search/SearchShortcut';
@@ -1,10 +1,11 @@
1
1
  import React from 'react';
2
2
  import styled, { css } from 'styled-components';
3
- import { typedMemo } from '@redocly/theme/core/hoc/typedMemo';
4
3
 
5
4
  import type { ReactElement } from 'react';
6
5
  import type { SelectOption } from '@redocly/theme/core/types/select-option';
7
6
 
7
+ import { typedMemo } from '@redocly/theme/core/hoc/typedMemo';
8
+
8
9
  type SegmentedProps<T> = {
9
10
  options: SelectOption<T>[];
10
11
  value: T;
@@ -50,7 +50,6 @@ export function Sidebar({
50
50
  return (
51
51
  <SidebarContent
52
52
  data-component-name="Sidebar/Sidebar"
53
- animate={true}
54
53
  opened={isOpen}
55
54
  className={className}
56
55
  collapsed={mappedCollapsed}
@@ -73,7 +72,7 @@ export function Sidebar({
73
72
  );
74
73
  }
75
74
 
76
- const SidebarContent = styled.aside<{ opened?: boolean; animate?: boolean; collapsed?: boolean }>`
75
+ const SidebarContent = styled.aside<{ opened?: boolean; collapsed?: boolean }>`
77
76
  border-right: 1px solid var(--sidebar-border-color);
78
77
  position: fixed;
79
78
  left: 0;
@@ -91,14 +90,8 @@ const SidebarContent = styled.aside<{ opened?: boolean; animate?: boolean; colla
91
90
  top: var(--navbar-height);
92
91
  height: calc(100vh - var(--navbar-height));
93
92
  overflow-x: hidden;
94
- ${({ opened, animate }) => `
95
- opacity: ${opened ? '1' : '0'};
96
- pointer-events: ${opened ? 'auto' : 'none'};
97
-
98
- & > * {
99
- transform: ${opened ? 'translate(0, 0)' : 'translate(0, 40px)'};
100
- transition: ${animate ? 'transform 0.65s ease, opacity 0.25s ease;' : 'none'};
101
- }
93
+ ${({ opened }) => `
94
+ display: ${opened ? 'flex' : 'none'}
102
95
  `};
103
96
 
104
97
  @media screen and (min-width: ${breakpoints.medium}) {
@@ -168,8 +168,8 @@ const TooltipBody = styled.span<
168
168
  position: absolute;
169
169
  text-align: center;
170
170
 
171
- padding: 10px 20px;
172
- max-width: 250px;
171
+ padding: var(--tooltip-padding);
172
+ max-width: var(--tooltip-max-width);
173
173
  white-space: normal;
174
174
  overflow-wrap: break-word;
175
175
 
@@ -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-padding-vertical: var(--spacing-xs);
12
+ --tooltip-padding-horizontal: var(--spacing-sm);
13
+ --tooltip-padding: var(--tooltip-padding-vertical) var(--tooltip-padding-horizontal);
14
+ --tooltip-max-width: 250px;
11
15
 
12
16
  .tooltip-copy-button {
13
17
  --tooltip-text-color: var(--text-color-secondary);
@@ -9,5 +9,5 @@ export const H1 = styled.h1.attrs<{ className?: string }>(({ className }) => ({
9
9
  color: var(--h1-text-color);
10
10
  margin: var(--h1-margin-top) 0 var(--h1-margin-bottom);
11
11
 
12
- ${typography('h1', 'h')};
12
+ ${typography('h1')};
13
13
  `;
@@ -9,5 +9,5 @@ export const H2 = styled.h2.attrs<{ className?: string }>(({ className }) => ({
9
9
  color: var(--h2-text-color);
10
10
  margin: var(--h2-margin-top) 0 var(--h2-margin-bottom);
11
11
 
12
- ${typography('h2', 'h')};
12
+ ${typography('h2')};
13
13
  `;
@@ -9,5 +9,5 @@ export const H3 = styled.h3.attrs<{ className?: string }>(({ className }) => ({
9
9
  color: var(--h3-text-color);
10
10
  margin: var(--h3-margin-top) 0 var(--h3-margin-bottom);
11
11
 
12
- ${typography('h3', 'h')};
12
+ ${typography('h3')};
13
13
  `;
@@ -9,5 +9,5 @@ export const H4 = styled.h4.attrs<{ className?: string }>(({ className }) => ({
9
9
  color: var(--h4-text-color);
10
10
  margin: var(--h4-margin-top) 0 var(--h4-margin-bottom);
11
11
 
12
- ${typography('h4', 'h')};
12
+ ${typography('h4')};
13
13
  `;
@@ -111,7 +111,6 @@ const StyledDropdown = styled(Dropdown).attrs(() => ({
111
111
  --dropdown-menu-padding: var(--user-menu-dropdown-padding);
112
112
  --dropdown-menu-border-radius: var(--user-menu-dropdown-border-radius);
113
113
  --dropdown-menu-box-shadow: var(--user-menu-dropdown-box-shadow);
114
- --dropdown-menu-color-disabled: var(--user-menu-dropdown-color-disabled);
115
114
  --dropdown-menu-border-color: var(--user-menu-dropdown-border-color);
116
115
  --dropdown-menu-bg-color: var(--user-menu-dropdown-bg-color);
117
116
  --dropdown-menu-item-padding-horizontal: var(--user-menu-dropdown-item-padding-horizontal);
@@ -123,8 +122,12 @@ const StyledDropdown = styled(Dropdown).attrs(() => ({
123
122
  --dropdown-menu-item-border-radius: var(--user-menu-dropdown-item-border-radius);
124
123
  --dropdown-menu-item-bg-color-active: var(--user-menu-dropdown-item-bg-color-active);
125
124
  --dropdown-menu-item-bg-color-hover: var(--user-menu-dropdown-item-bg-color-hover);
125
+ --dropdown-menu-item-bg-color-disabled: var(--user-menu-dropdown-item-bg-color-disabled);
126
126
  --dropdown-menu-item-separator-border-color: var(
127
127
  --user-menu-dropdown-item-separator-border-color
128
128
  );
129
129
  --dropdown-menu-item-color-dangerous: var(--user-menu-dropdown-item-color-dangerous);
130
+ --dropdown-menu-item-color-disabled: var(--user-menu-dropdown-item-color-disabled);
131
+ --dropdown-menu-item-color-active: var(--user-menu-dropdown-item-color-active);
132
+ --dropdown-menu-item-color-hover: var(--user-menu-dropdown-item-color-hover);
130
133
  `;
@@ -42,7 +42,6 @@ export const userMenu = css`
42
42
  --user-menu-dropdown-padding: var(--dropdown-menu-padding ); // @presenter Spacing
43
43
  --user-menu-dropdown-border-radius: var(--dropdown-menu-border-radius); // @presenter BorderRadius
44
44
  --user-menu-dropdown-box-shadow: var(--dropdown-menu-box-shadow); // @presenter Shadow
45
- --user-menu-dropdown-color-disabled: var(--dropdown-menu-color-disabled); // @presenter Color
46
45
  --user-menu-dropdown-border-color: var(--dropdown-menu-border-color); // @presenter Color
47
46
  --user-menu-dropdown-bg-color: var(--dropdown-menu-bg-color); // @presenter Color
48
47
 
@@ -53,8 +52,12 @@ export const userMenu = css`
53
52
  --user-menu-dropdown-item-border-radius: var(--dropdown-menu-item-border-radius ); // @presenter BorderRadius
54
53
  --user-menu-dropdown-item-bg-color-active: var(--dropdown-menu-item-bg-color-active); // @presenter Color
55
54
  --user-menu-dropdown-item-bg-color-hover: var(--dropdown-menu-item-bg-color-hover); // @presenter Color
55
+ --user-menu-dropdown-item-bg-color-disabled: var(--dropdown-menu-item-bg-color-disabled); // @presenter Color
56
56
  --user-menu-dropdown-item-separator-border-color: var(--dropdown-menu-item-separator-border-color); // @presenter Color
57
57
  --user-menu-dropdown-item-color-dangerous: var(--dropdown-menu-item-color-dangerous);
58
+ --user-menu-dropdown-item-color-disabled: var(--dropdown-menu-item-color-disabled);
59
+ --user-menu-dropdown-item-color-active: var(--dropdown-menu-item-color-active);
60
+ --user-menu-dropdown-item-color-hover: var(--dropdown-menu-item-color-hover);
58
61
  --user-menu-dropdown-item-border-color-focused: var(--dropdown-menu-item-border-color-focused);
59
62
 
60
63
  // @tokens End
@@ -1,6 +1,6 @@
1
1
  import { createGlobalStyle, css } from 'styled-components';
2
- import { darkMode } from '@redocly/theme/core/styles/dark';
3
2
 
3
+ import { darkMode } from '@redocly/theme/core/styles/dark';
4
4
  import { languagePicker } from '@redocly/theme/components/LanguagePicker/variables';
5
5
  import { scorecard } from '@redocly/theme/components/Scorecard/variables';
6
6
  import { feedback } from '@redocly/theme/components/Feedback/variables';
@@ -987,10 +987,9 @@ const error = css`
987
987
  --detailed-error-overlay-opacity: 0.9;
988
988
  --detailed-error-overlay-z-index: var(--z-index-raised);
989
989
 
990
- --detailed-error-modal-width: 70%;
991
- --detailed-error-modal-height: calc(100vh - 100px - var(--navbar-height));
992
- --detailed-error-modal-top: calc(50px + var(--navbar-height));
993
- --detailed-error-modal-left: 15%;
990
+ --detailed-error-modal-width: calc(100% - var(--spacing-lg) * 2);
991
+ --detailed-error-modal-height: calc(100vh - var(--navbar-height) - var(--spacing-lg) * 2);
992
+ --detailed-error-modal-top: calc(var(--spacing-lg) + var(--navbar-height));
994
993
  --detailed-error-modal-border-radius: var(--border-radius-md);
995
994
  --detailed-error-modal-bg-color: var(--bg-color-raised);
996
995
  --detailed-error-modal-color: var(--text-color-primary);
@@ -34,6 +34,8 @@ export type CatalogItem = {
34
34
  scorecardLevels?: Record<string, { uniqueErrors: number; uniqueWarnings: number }>;
35
35
  scoreCardSlug?: string;
36
36
  tags?: unknown[];
37
-
37
+ versions?: CatalogItem[];
38
+ version?: string;
39
+ versionFolderId?: string;
38
40
  [k: string]: unknown;
39
41
  };