@redocly/theme 0.38.0 → 0.38.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -39,7 +39,7 @@ const BadgeComponent = styled_components_1.default.span `
39
39
  vertical-align: middle;
40
40
  line-height: var(--line-height-base);
41
41
  color: var(--badge-text-color);
42
- background-color: var(--badge-bg-color);
42
+ background-color: ${({ color }) => color || 'var(--badge-bg-color)'};
43
43
  border-radius: var(--badge-border-radius);
44
44
  margin: 0 0 0 0.5em;
45
45
  font-size: var(--font-size-base);
@@ -101,15 +101,15 @@ function Mood({ settings, onSubmit, className }) {
101
101
  React.createElement(StyledFormMandatoryFields, null,
102
102
  React.createElement(Label, { "data-translation-key": "theme.feedback.settings.label" }, label || translate('theme.feedback.settings.label', 'Was this helpful?')),
103
103
  React.createElement(StyledMandatoryFieldContainer, null,
104
- React.createElement(Button_1.Button, { type: "button", variant: score === MOOD_STATES.SATISFIED ? 'primary' : 'secondary', size: "medium", onClick: () => {
105
- setScore(MOOD_STATES.SATISFIED);
106
- }, icon: React.createElement(FaceSatisfiedIcon_1.FaceSatisfiedIcon, null) }),
104
+ React.createElement(Button_1.Button, { type: "button", size: "medium", variant: score === MOOD_STATES.DISSATISFIED ? 'primary' : 'secondary', tone: score === MOOD_STATES.DISSATISFIED ? 'danger' : 'default', onClick: () => {
105
+ setScore(MOOD_STATES.DISSATISFIED);
106
+ }, icon: React.createElement(FaceDissatisfiedIcon_1.FaceDissatisfiedIcon, null) }),
107
107
  React.createElement(Button_1.Button, { type: "button", variant: score === MOOD_STATES.NEUTRAL ? 'primary' : 'secondary', size: "medium", onClick: () => {
108
108
  setScore(MOOD_STATES.NEUTRAL);
109
109
  }, icon: React.createElement(FaceNeutralIcon_1.FaceNeutralIcon, null) }),
110
- React.createElement(Button_1.Button, { type: "button", size: "medium", variant: score === MOOD_STATES.DISSATISFIED ? 'primary' : 'secondary', tone: score === MOOD_STATES.DISSATISFIED ? 'danger' : 'default', onClick: () => {
111
- setScore(MOOD_STATES.DISSATISFIED);
112
- }, icon: React.createElement(FaceDissatisfiedIcon_1.FaceDissatisfiedIcon, null) }))),
110
+ React.createElement(Button_1.Button, { type: "button", variant: score === MOOD_STATES.SATISFIED ? 'primary' : 'secondary', size: "medium", onClick: () => {
111
+ setScore(MOOD_STATES.SATISFIED);
112
+ }, icon: React.createElement(FaceSatisfiedIcon_1.FaceSatisfiedIcon, null) }))),
113
113
  (displayReasons || displayComment) && (React.createElement(StyledFormOptionalFields, null,
114
114
  displayReasons && (React.createElement(Reasons_1.Reasons, { settings: {
115
115
  label: reasonsSettings === null || reasonsSettings === void 0 ? void 0 : reasonsSettings.label,
@@ -54,7 +54,10 @@ function SearchItem({ item, className, product }) {
54
54
  item.pathName ? (0, SearchHighlight_1.highlight)(item.pathName) : null)) : null,
55
55
  react_1.default.createElement(SearchItemTitleWrapper, null,
56
56
  react_1.default.createElement(SearchItemTitle, null, (0, SearchHighlight_1.highlight)(item.title)),
57
- item.deprecated ? react_1.default.createElement(SearchItemBadge, { deprecated: true }, "Deprecated") : null),
57
+ item.deprecated ? react_1.default.createElement(SearchItemBadge, { deprecated: true }, "Deprecated") : null,
58
+ item.badges
59
+ ? item.badges.map(({ name, color }) => (react_1.default.createElement(SearchItemBadge, { color: color || 'var(--color-info-base)', key: name }, name)))
60
+ : null),
58
61
  Array.isArray(item.text) ? (react_1.default.createElement(SearchItemDescription, null, (0, SearchHighlight_1.highlight)(item.text))) : null),
59
62
  itemParam ? (react_1.default.createElement(SearchItemPlace, null,
60
63
  react_1.default.createElement("div", null,
@@ -0,0 +1,6 @@
1
+ export type SwitchProps = {
2
+ value: boolean;
3
+ onChange: (value: boolean) => void;
4
+ disabled?: boolean;
5
+ };
6
+ export declare function Switch({ value, disabled, onChange }: SwitchProps): JSX.Element;
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Switch = void 0;
30
+ const react_1 = __importDefault(require("react"));
31
+ const styled_components_1 = __importStar(require("styled-components"));
32
+ function Switch({ value = false, disabled = false, onChange }) {
33
+ const handleClick = () => {
34
+ if (disabled)
35
+ return;
36
+ onChange(!value);
37
+ };
38
+ return (react_1.default.createElement(SwitchWrapper, { onClick: handleClick, role: "switch", selected: value, disabled: disabled },
39
+ react_1.default.createElement(Knob, { selected: value })));
40
+ }
41
+ exports.Switch = Switch;
42
+ const SwitchWrapper = styled_components_1.default.div `
43
+ width: var(--switch-width);
44
+ height: var(--switch-height);
45
+ border-radius: var(--switch-border-radius);
46
+ background-color: ${({ selected, disabled }) => disabled
47
+ ? 'var(--switch-bg-color-disabled)'
48
+ : selected
49
+ ? 'var(--switch-bg-color-selected)'
50
+ : 'var(--switch-bg-color)'};
51
+ display: flex;
52
+ align-items: center;
53
+ padding: var(--switch-padding);
54
+ cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};
55
+ transition: var(--switch-bg-transition);
56
+
57
+ ${({ disabled }) => !disabled &&
58
+ (0, styled_components_1.css) `
59
+ &:hover {
60
+ background-color: var(--switch-bg-color-hover);
61
+ }
62
+ `}
63
+
64
+ &:active {
65
+ background-color: var(--switch-bg-color-pressed);
66
+ }
67
+ `;
68
+ const Knob = styled_components_1.default.div `
69
+ width: var(--switch-knob-width);
70
+ height: var(--switch-knob-height);
71
+ border-radius: var(--switch-knob-border-radius);
72
+ background-color: ${({ selected }) => selected ? 'var(--switch-knob-bg-color-selected)' : 'var(--switch-knob-bg-color)'};
73
+ transform: ${({ selected }) => selected ? 'translateX(var(--switch-knob-width))' : 'translateX(0)'};
74
+ transition: var(--switch-knob-transition);
75
+ `;
76
+ //# sourceMappingURL=Switch.js.map
@@ -0,0 +1 @@
1
+ export declare const switcher: import("styled-components").FlattenSimpleInterpolation;
@@ -0,0 +1 @@
1
+ export declare const switcherDarkMode: import("styled-components").FlattenSimpleInterpolation;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.switcherDarkMode = void 0;
4
+ const styled_components_1 = require("styled-components");
5
+ exports.switcherDarkMode = (0, styled_components_1.css) `
6
+ --switch-bg-color: var(--color-warm-grey-6); // @presenter Color
7
+ --switch-bg-color-selected: var(--color-warm-grey-6); // @presenter Color
8
+ --switch-bg-color-hover: var(--color-warm-grey-7); // @presenter Color
9
+ --switch-bg-color-pressed: var(--color-warm-grey-7); // @presenter Color
10
+ --switch-bg-color-disabled: var(--color-warm-grey-5); // @presenter Color
11
+ --switch-knob-bg-color: var(--color-warm-grey-8); // @presenter Color
12
+ --switch-knob-bg-color-selected: var(--color-warm-grey-11); // @presenter Color
13
+ --switch-border-radius: var(--border-radius); // @presenter BorderRadius
14
+ --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
15
+ --switch-width: 32px; // @presenter Width
16
+ --switch-height: 18px; // @presenter Height
17
+ --switch-padding: calc(var(--spacing-xxs) / 2); // @presenter Padding
18
+ --switch-bg-transition: background-color 0.3s; // @presenter Transition
19
+ --switch-knob-height: 14px; // @presenter Height
20
+ --switch-knob-width: 14px; // @presenter Width
21
+ --switch-knob-transition: all 0.3s; // @presenter Transition
22
+ `;
23
+ //# sourceMappingURL=variables.dark.js.map
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.switcher = void 0;
4
+ const styled_components_1 = require("styled-components");
5
+ exports.switcher = (0, styled_components_1.css) `
6
+ --switch-bg-color: var(--color-warm-grey-4); // @presenter Color
7
+ --switch-bg-color-selected: var(--color-warm-grey-9); // @presenter Color
8
+ --switch-bg-color-hover: var(--color-warm-grey-5); // @presenter Color
9
+ --switch-bg-color-pressed: var(--color-warm-grey-6); // @presenter Color
10
+ --switch-bg-color-disabled: var(--color-warm-grey-3); // @presenter Color
11
+ --switch-knob-bg-color: var(--color-white); // @presenter Color
12
+ --switch-knob-bg-color-selected: var(--color-white); // @presenter Color
13
+ --switch-border-radius: var(--border-radius); // @presenter BorderRadius
14
+ --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
15
+ --switch-width: 32px; // @presenter Width
16
+ --switch-height: 18px; // @presenter Height
17
+ --switch-padding: calc(var(--spacing-xxs) / 2); // @presenter Padding
18
+ --switch-bg-transition: background-color 0.3s; // @presenter Transition
19
+ --switch-knob-height: 14px; // @presenter Height
20
+ --switch-knob-width: 14px; // @presenter Width
21
+ --switch-knob-transition: transform 0.3s; // @presenter Transition
22
+ `;
23
+ //# sourceMappingURL=variables.js.map
@@ -10,6 +10,7 @@ const variables_dark_5 = require("../../components/Segmented/variables.dark");
10
10
  const variables_dark_6 = require("../../icons/CheckboxIcon/variables.dark");
11
11
  const variables_dark_7 = require("../../components/Tag/variables.dark");
12
12
  const variables_dark_8 = require("../../components/StatusCode/variables.dark");
13
+ const variables_dark_9 = require("../../components/Switch/variables.dark");
13
14
  const replayDarkMode = (0, styled_components_1.css) `
14
15
  /**
15
16
  * @tokens Replay Colors
@@ -299,6 +300,8 @@ exports.darkMode = (0, styled_components_1.css) `
299
300
  ${variables_dark_2.mermaidDarkMode}
300
301
  ${variables_dark_1.scorecardDarkMode}
301
302
  ${replayDarkMode}
303
+ ${variables_dark_9.switcherDarkMode}
304
+
302
305
 
303
306
  /**
304
307
  * @tokens Dark Theme Scrollbar Config
@@ -36,6 +36,7 @@ const variables_30 = require("../../components/UserMenu/variables");
36
36
  const variables_31 = require("../../components/Tags/variables");
37
37
  const variables_32 = require("../../components/VersionPicker/variables");
38
38
  const variables_33 = require("../../components/DatePicker/variables");
39
+ const variables_34 = require("../../components/Switch/variables");
39
40
  const themeColors = (0, styled_components_1.css) `
40
41
  /* === Palette === */
41
42
  /**
@@ -1177,6 +1178,7 @@ exports.styles = (0, styled_components_1.css) `
1177
1178
  ${icon}
1178
1179
  ${tree}
1179
1180
  ${variables_29.segmented}
1181
+ ${variables_34.switcher}
1180
1182
  ${variables_14.checkbox}
1181
1183
  ${variables_3.feedback}
1182
1184
  ${variables_2.scorecard}
@@ -1,4 +1,4 @@
1
- import type { REDOCLY_ROUTE_RBAC } from '@redocly/config';
1
+ import type { ItemBadge, REDOCLY_ROUTE_RBAC } from '@redocly/config';
2
2
  import type { ProductConfig } from '../../config';
3
3
  export type OperationParameter = {
4
4
  name: string | string[];
@@ -28,4 +28,5 @@ export type SearchDocument = {
28
28
  slug?: string;
29
29
  fsPath?: string;
30
30
  };
31
+ badges?: ItemBadge[];
31
32
  };
package/lib/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export * from './components/JsonViewer/JsonViewer';
5
5
  export * from './components/Tag/Tag';
6
6
  export * from './components/TableOfContent/TableOfContent';
7
7
  export * from './components/ColorModeSwitcher/ColorModeSwitcher';
8
+ export * from './components/Switch/Switch';
8
9
  export * from './components/Select/Select';
9
10
  export * from './components/Badge/Badge';
10
11
  export * from './components/Dropdown/Dropdown';
package/lib/index.js CHANGED
@@ -35,6 +35,7 @@ __exportStar(require("./components/JsonViewer/JsonViewer"), exports);
35
35
  __exportStar(require("./components/Tag/Tag"), exports);
36
36
  __exportStar(require("./components/TableOfContent/TableOfContent"), exports);
37
37
  __exportStar(require("./components/ColorModeSwitcher/ColorModeSwitcher"), exports);
38
+ __exportStar(require("./components/Switch/Switch"), exports);
38
39
  __exportStar(require("./components/Select/Select"), exports);
39
40
  __exportStar(require("./components/Badge/Badge"), exports);
40
41
  __exportStar(require("./components/Dropdown/Dropdown"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/theme",
3
- "version": "0.38.0",
3
+ "version": "0.38.2",
4
4
  "description": "Shared UI components lib",
5
5
  "keywords": [
6
6
  "theme",
@@ -18,7 +18,7 @@ const BadgeComponent = styled.span<BadgeProps>`
18
18
  vertical-align: middle;
19
19
  line-height: var(--line-height-base);
20
20
  color: var(--badge-text-color);
21
- background-color: var(--badge-bg-color);
21
+ background-color: ${({ color }) => color || 'var(--badge-bg-color)'};
22
22
  border-radius: var(--badge-border-radius);
23
23
  margin: 0 0 0 0.5em;
24
24
  font-size: var(--font-size-base);
@@ -124,12 +124,13 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
124
124
  <StyledMandatoryFieldContainer>
125
125
  <Button
126
126
  type="button"
127
- variant={score === MOOD_STATES.SATISFIED ? 'primary' : 'secondary'}
128
127
  size="medium"
128
+ variant={score === MOOD_STATES.DISSATISFIED ? 'primary' : 'secondary'}
129
+ tone={score === MOOD_STATES.DISSATISFIED ? 'danger' : 'default'}
129
130
  onClick={() => {
130
- setScore(MOOD_STATES.SATISFIED);
131
+ setScore(MOOD_STATES.DISSATISFIED);
131
132
  }}
132
- icon={<FaceSatisfiedIcon />}
133
+ icon={<FaceDissatisfiedIcon />}
133
134
  />
134
135
  <Button
135
136
  type="button"
@@ -142,13 +143,12 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
142
143
  />
143
144
  <Button
144
145
  type="button"
146
+ variant={score === MOOD_STATES.SATISFIED ? 'primary' : 'secondary'}
145
147
  size="medium"
146
- variant={score === MOOD_STATES.DISSATISFIED ? 'primary' : 'secondary'}
147
- tone={score === MOOD_STATES.DISSATISFIED ? 'danger' : 'default'}
148
148
  onClick={() => {
149
- setScore(MOOD_STATES.DISSATISFIED);
149
+ setScore(MOOD_STATES.SATISFIED);
150
150
  }}
151
- icon={<FaceDissatisfiedIcon />}
151
+ icon={<FaceSatisfiedIcon />}
152
152
  />
153
153
  </StyledMandatoryFieldContainer>
154
154
  </StyledFormMandatoryFields>
@@ -56,6 +56,13 @@ export function SearchItem({ item, className, product }: SearchItemProps): JSX.E
56
56
  <SearchItemTitleWrapper>
57
57
  <SearchItemTitle>{highlight(item.title)}</SearchItemTitle>
58
58
  {item.deprecated ? <SearchItemBadge deprecated>Deprecated</SearchItemBadge> : null}
59
+ {item.badges
60
+ ? item.badges.map(({ name, color }) => (
61
+ <SearchItemBadge color={color || 'var(--color-info-base)'} key={name}>
62
+ {name}
63
+ </SearchItemBadge>
64
+ ))
65
+ : null}
59
66
  </SearchItemTitleWrapper>
60
67
  {Array.isArray(item.text) ? (
61
68
  <SearchItemDescription>{highlight(item.text)}</SearchItemDescription>
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import styled, { css } from 'styled-components';
3
+
4
+ export type SwitchProps = {
5
+ value: boolean;
6
+ onChange: (value: boolean) => void;
7
+ disabled?: boolean;
8
+ };
9
+
10
+ export function Switch({ value = false, disabled = false, onChange }: SwitchProps): JSX.Element {
11
+ const handleClick = () => {
12
+ if (disabled) return;
13
+ onChange(!value);
14
+ };
15
+
16
+ return (
17
+ <SwitchWrapper onClick={handleClick} role="switch" selected={value} disabled={disabled}>
18
+ <Knob selected={value} />
19
+ </SwitchWrapper>
20
+ );
21
+ }
22
+
23
+ const SwitchWrapper = styled.div<{ selected: boolean; disabled: boolean }>`
24
+ width: var(--switch-width);
25
+ height: var(--switch-height);
26
+ border-radius: var(--switch-border-radius);
27
+ background-color: ${({ selected, disabled }) =>
28
+ disabled
29
+ ? 'var(--switch-bg-color-disabled)'
30
+ : selected
31
+ ? 'var(--switch-bg-color-selected)'
32
+ : 'var(--switch-bg-color)'};
33
+ display: flex;
34
+ align-items: center;
35
+ padding: var(--switch-padding);
36
+ cursor: ${({ disabled }) => (disabled ? 'not-allowed' : 'pointer')};
37
+ transition: var(--switch-bg-transition);
38
+
39
+ ${({ disabled }) =>
40
+ !disabled &&
41
+ css`
42
+ &:hover {
43
+ background-color: var(--switch-bg-color-hover);
44
+ }
45
+ `}
46
+
47
+ &:active {
48
+ background-color: var(--switch-bg-color-pressed);
49
+ }
50
+ `;
51
+
52
+ const Knob = styled.div<{ selected: boolean }>`
53
+ width: var(--switch-knob-width);
54
+ height: var(--switch-knob-height);
55
+ border-radius: var(--switch-knob-border-radius);
56
+ background-color: ${({ selected }) =>
57
+ selected ? 'var(--switch-knob-bg-color-selected)' : 'var(--switch-knob-bg-color)'};
58
+ transform: ${({ selected }) =>
59
+ selected ? 'translateX(var(--switch-knob-width))' : 'translateX(0)'};
60
+ transition: var(--switch-knob-transition);
61
+ `;
@@ -0,0 +1,20 @@
1
+ import { css } from 'styled-components';
2
+
3
+ export const switcherDarkMode = css`
4
+ --switch-bg-color: var(--color-warm-grey-6); // @presenter Color
5
+ --switch-bg-color-selected: var(--color-warm-grey-6); // @presenter Color
6
+ --switch-bg-color-hover: var(--color-warm-grey-7); // @presenter Color
7
+ --switch-bg-color-pressed: var(--color-warm-grey-7); // @presenter Color
8
+ --switch-bg-color-disabled: var(--color-warm-grey-5); // @presenter Color
9
+ --switch-knob-bg-color: var(--color-warm-grey-8); // @presenter Color
10
+ --switch-knob-bg-color-selected: var(--color-warm-grey-11); // @presenter Color
11
+ --switch-border-radius: var(--border-radius); // @presenter BorderRadius
12
+ --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
13
+ --switch-width: 32px; // @presenter Width
14
+ --switch-height: 18px; // @presenter Height
15
+ --switch-padding: calc(var(--spacing-xxs) / 2); // @presenter Padding
16
+ --switch-bg-transition: background-color 0.3s; // @presenter Transition
17
+ --switch-knob-height: 14px; // @presenter Height
18
+ --switch-knob-width: 14px; // @presenter Width
19
+ --switch-knob-transition: all 0.3s; // @presenter Transition
20
+ `;
@@ -0,0 +1,20 @@
1
+ import { css } from 'styled-components';
2
+
3
+ export const switcher = css`
4
+ --switch-bg-color: var(--color-warm-grey-4); // @presenter Color
5
+ --switch-bg-color-selected: var(--color-warm-grey-9); // @presenter Color
6
+ --switch-bg-color-hover: var(--color-warm-grey-5); // @presenter Color
7
+ --switch-bg-color-pressed: var(--color-warm-grey-6); // @presenter Color
8
+ --switch-bg-color-disabled: var(--color-warm-grey-3); // @presenter Color
9
+ --switch-knob-bg-color: var(--color-white); // @presenter Color
10
+ --switch-knob-bg-color-selected: var(--color-white); // @presenter Color
11
+ --switch-border-radius: var(--border-radius); // @presenter BorderRadius
12
+ --switch-knob-border-radius: calc(var(--border-radius) / 2); // @presenter BorderRadius
13
+ --switch-width: 32px; // @presenter Width
14
+ --switch-height: 18px; // @presenter Height
15
+ --switch-padding: calc(var(--spacing-xxs) / 2); // @presenter Padding
16
+ --switch-bg-transition: background-color 0.3s; // @presenter Transition
17
+ --switch-knob-height: 14px; // @presenter Height
18
+ --switch-knob-width: 14px; // @presenter Width
19
+ --switch-knob-transition: transform 0.3s; // @presenter Transition
20
+ `;
@@ -8,6 +8,7 @@ import { segmentedButtonsDarkMode } from '@redocly/theme/components/Segmented/va
8
8
  import { checkboxDarkMode } from '@redocly/theme/icons/CheckboxIcon/variables.dark';
9
9
  import { tagDarkMode } from '@redocly/theme/components/Tag/variables.dark';
10
10
  import { statusCodeDarkMode } from '@redocly/theme/components/StatusCode/variables.dark';
11
+ import { switcherDarkMode } from '@redocly/theme/components/Switch/variables.dark';
11
12
 
12
13
  const replayDarkMode = css`
13
14
  /**
@@ -299,6 +300,8 @@ export const darkMode = css`
299
300
  ${mermaidDarkMode}
300
301
  ${scorecardDarkMode}
301
302
  ${replayDarkMode}
303
+ ${switcherDarkMode}
304
+
302
305
 
303
306
  /**
304
307
  * @tokens Dark Theme Scrollbar Config
@@ -34,6 +34,7 @@ import { userMenu } from '@redocly/theme/components/UserMenu/variables';
34
34
  import { httpTag } from '@redocly/theme/components/Tags/variables';
35
35
  import { versionPicker } from '@redocly/theme/components/VersionPicker/variables';
36
36
  import { datePicker } from '@redocly/theme/components/DatePicker/variables'
37
+ import { switcher } from '@redocly/theme/components/Switch/variables';
37
38
 
38
39
 
39
40
  const themeColors = css`
@@ -1200,6 +1201,7 @@ export const styles = css`
1200
1201
  ${icon}
1201
1202
  ${tree}
1202
1203
  ${segmented}
1204
+ ${switcher}
1203
1205
  ${checkbox}
1204
1206
  ${feedback}
1205
1207
  ${scorecard}
@@ -1,4 +1,4 @@
1
- import type { REDOCLY_ROUTE_RBAC } from '@redocly/config';
1
+ import type { ItemBadge, REDOCLY_ROUTE_RBAC } from '@redocly/config';
2
2
  import type { ProductConfig } from '@redocly/theme/config';
3
3
 
4
4
  export type OperationParameter = {
@@ -25,4 +25,5 @@ export type SearchDocument = {
25
25
  product?: ProductConfig;
26
26
  'redocly::teams-rbac'?: { [x: string]: string };
27
27
  [REDOCLY_ROUTE_RBAC]?: { slug?: string; fsPath?: string };
28
+ badges?: ItemBadge[];
28
29
  };
package/src/index.ts CHANGED
@@ -7,6 +7,7 @@ export * from '@redocly/theme/components/JsonViewer/JsonViewer';
7
7
  export * from '@redocly/theme/components/Tag/Tag';
8
8
  export * from '@redocly/theme/components/TableOfContent/TableOfContent';
9
9
  export * from '@redocly/theme/components/ColorModeSwitcher/ColorModeSwitcher';
10
+ export * from '@redocly/theme/components/Switch/Switch';
10
11
  export * from '@redocly/theme/components/Select/Select';
11
12
  export * from '@redocly/theme/components/Badge/Badge';
12
13
  export * from '@redocly/theme/components/Dropdown/Dropdown';