@redocly/theme 0.58.0-next.9 → 0.59.0-next.0

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 (84) hide show
  1. package/lib/components/Catalog/CatalogEntity/CatalogEntity.d.ts +5 -1
  2. package/lib/components/Catalog/CatalogEntity/CatalogEntity.js +4 -4
  3. package/lib/components/Catalog/CatalogEntity/CatalogEntityMetadata.js +3 -3
  4. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.js +1 -1
  5. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.js +1 -1
  6. package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.d.ts +5 -1
  7. package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.js +9 -7
  8. package/lib/components/CodeBlock/CodeBlock.d.ts +5 -12
  9. package/lib/components/CodeBlock/CodeBlockControls.d.ts +3 -3
  10. package/lib/components/CodeBlock/CodeBlockControls.js +1 -1
  11. package/lib/components/CodeBlock/CodeBlockDropdown.d.ts +2 -2
  12. package/lib/components/CodeBlock/CodeBlockDropdown.js +4 -13
  13. package/lib/components/CodeBlock/CodeBlockTabs.d.ts +2 -2
  14. package/lib/components/CodeBlock/CodeBlockTabs.js +4 -3
  15. package/lib/components/JsonViewer/JsonViewer.d.ts +1 -1
  16. package/lib/components/JsonViewer/JsonViewer.js +9 -10
  17. package/lib/components/PageActions/PageActions.d.ts +4 -1
  18. package/lib/components/PageActions/PageActions.js +2 -2
  19. package/lib/components/Panel/variables.js +1 -0
  20. package/lib/components/Tag/Tag.d.ts +3 -2
  21. package/lib/components/Tag/Tag.js +21 -5
  22. package/lib/components/Tag/variables.dark.js +135 -0
  23. package/lib/components/Tag/variables.js +120 -58
  24. package/lib/core/constants/catalog.js +4 -0
  25. package/lib/core/contexts/CodeSnippetContext.d.ts +14 -6
  26. package/lib/core/contexts/CodeSnippetContext.js +57 -14
  27. package/lib/core/hooks/use-codeblock-tabs-controls.d.ts +2 -2
  28. package/lib/core/hooks/use-local-state.js +22 -18
  29. package/lib/core/hooks/use-page-actions.d.ts +2 -1
  30. package/lib/core/hooks/use-page-actions.js +48 -6
  31. package/lib/core/hooks/use-tabs.d.ts +11 -6
  32. package/lib/core/hooks/use-tabs.js +117 -207
  33. package/lib/core/openapi/index.d.ts +1 -0
  34. package/lib/core/openapi/index.js +3 -1
  35. package/lib/core/types/l10n.d.ts +1 -1
  36. package/lib/core/types/open-api-server.d.ts +1 -0
  37. package/lib/core/utils/index.d.ts +1 -0
  38. package/lib/core/utils/index.js +1 -0
  39. package/lib/core/utils/tabs.d.ts +1 -0
  40. package/lib/core/utils/tabs.js +8 -0
  41. package/lib/icons/CursorIcon/CursorIcon.d.ts +9 -0
  42. package/lib/icons/CursorIcon/CursorIcon.js +22 -0
  43. package/lib/layouts/DocumentationLayout.js +1 -3
  44. package/lib/markdoc/components/CodeGroup/CodeGroup.js +49 -27
  45. package/lib/markdoc/components/Tabs/Tab.js +1 -1
  46. package/lib/markdoc/components/Tabs/TabList.d.ts +2 -14
  47. package/lib/markdoc/components/Tabs/TabList.js +65 -16
  48. package/lib/markdoc/components/Tabs/Tabs.d.ts +2 -2
  49. package/lib/markdoc/components/Tabs/Tabs.js +11 -87
  50. package/lib/markdoc/tags/tabs.js +5 -0
  51. package/package.json +4 -4
  52. package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +15 -2
  53. package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +3 -3
  54. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.tsx +1 -1
  55. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.tsx +1 -1
  56. package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +27 -18
  57. package/src/components/CodeBlock/CodeBlock.tsx +5 -11
  58. package/src/components/CodeBlock/CodeBlockControls.tsx +4 -7
  59. package/src/components/CodeBlock/CodeBlockDropdown.tsx +11 -20
  60. package/src/components/CodeBlock/CodeBlockTabs.tsx +8 -8
  61. package/src/components/JsonViewer/JsonViewer.tsx +16 -9
  62. package/src/components/PageActions/PageActions.tsx +6 -4
  63. package/src/components/Panel/variables.ts +1 -0
  64. package/src/components/Tag/Tag.tsx +33 -8
  65. package/src/components/Tag/variables.dark.ts +135 -0
  66. package/src/components/Tag/variables.ts +120 -58
  67. package/src/core/constants/catalog.ts +4 -0
  68. package/src/core/contexts/CodeSnippetContext.tsx +54 -18
  69. package/src/core/hooks/use-codeblock-tabs-controls.ts +2 -2
  70. package/src/core/hooks/use-local-state.ts +28 -19
  71. package/src/core/hooks/use-page-actions.ts +63 -6
  72. package/src/core/hooks/use-tabs.ts +160 -238
  73. package/src/core/openapi/index.ts +1 -0
  74. package/src/core/types/l10n.ts +13 -0
  75. package/src/core/types/open-api-server.ts +1 -0
  76. package/src/core/utils/index.ts +1 -0
  77. package/src/core/utils/tabs.ts +4 -0
  78. package/src/icons/CursorIcon/CursorIcon.tsx +35 -0
  79. package/src/layouts/DocumentationLayout.tsx +3 -10
  80. package/src/markdoc/components/CodeGroup/CodeGroup.tsx +81 -52
  81. package/src/markdoc/components/Tabs/Tab.tsx +1 -0
  82. package/src/markdoc/components/Tabs/TabList.tsx +85 -30
  83. package/src/markdoc/components/Tabs/Tabs.tsx +12 -125
  84. package/src/markdoc/tags/tabs.ts +5 -0
@@ -2,10 +2,7 @@ import React from 'react';
2
2
  import styled from 'styled-components';
3
3
 
4
4
  import type { JSX } from 'react';
5
- import type {
6
- CodeBlockDropdownItems,
7
- CodeBlockTabItems,
8
- } from '@redocly/theme/components/CodeBlock/CodeBlock';
5
+ import type { CodeBlockItems } from '@redocly/theme/components/CodeBlock/CodeBlock';
9
6
 
10
7
  import { CodeBlockTabs } from '@redocly/theme/components/CodeBlock/CodeBlockTabs';
11
8
  import { CopyButton } from '@redocly/theme/components/Buttons/CopyButton';
@@ -24,8 +21,8 @@ export type CodeBlockControlsProps = {
24
21
  className?: string;
25
22
  title?: React.ReactNode | string;
26
23
  controls?: ControlItems | false;
27
- tabs?: CodeBlockTabItems;
28
- dropdown?: CodeBlockDropdownItems;
24
+ tabs?: CodeBlockItems;
25
+ dropdown?: CodeBlockItems;
29
26
  };
30
27
 
31
28
  type ControlItems = {
@@ -87,7 +84,7 @@ export function CodeBlockControls({
87
84
  {tabs && <CodeBlockTabs tabs={tabs} />}
88
85
  <ControlsWrapper>
89
86
  {dropdown && <CodeBlockDropdown {...dropdown} />}
90
- {report && !report?.props?.hide ? (
87
+ {report && !report.hidden && !report?.props?.hide ? (
91
88
  <TooltipWrapper
92
89
  tip={translate('codeSnippet.report.tooltipText', 'Report a problem')}
93
90
  placement="top"
@@ -1,24 +1,23 @@
1
1
  import React, { type JSX } from 'react';
2
- import styled from 'styled-components';
3
2
 
4
- import type { CodeBlockDropdownItems } from '@redocly/theme/components/CodeBlock/CodeBlock';
3
+ import type { CodeBlockItems } from '@redocly/theme/components/CodeBlock/CodeBlock';
5
4
 
6
5
  import { Dropdown } from '@redocly/theme/components/Dropdown/Dropdown';
7
6
  import { DropdownMenu } from '@redocly/theme/components/Dropdown/DropdownMenu';
8
7
  import { DropdownMenuItem } from '@redocly/theme/components/Dropdown/DropdownMenuItem';
9
8
  import { Button } from '@redocly/theme/components/Button/Button';
10
- import { ChevronSortIcon } from '@redocly/theme/icons/ChevronSortIcon/ChevronSortIcon';
11
9
  import { NoneIcon } from '@redocly/theme/icons/NoneIcon/NoneIcon';
12
10
  import { getFileIconByLanguage } from '@redocly/theme/core/utils';
13
11
 
14
- export function CodeBlockDropdown({ items, onChange, value }: CodeBlockDropdownItems): JSX.Element {
15
- const activeItem = items.find((item) => item.name === value) || items[0];
12
+ export function CodeBlockDropdown({ items, onChange, value }: CodeBlockItems): JSX.Element {
13
+ const activeItem = items.find((item) => item.id === value) || items[0];
16
14
  const icon = activeItem?.lang ? getFileIconByLanguage(activeItem?.lang) : null;
17
15
  return (
18
- <StyledDropdown
16
+ <Dropdown
17
+ withArrow
19
18
  alignment="end"
20
19
  trigger={
21
- <Button icon={<ChevronSortIcon />} iconPosition="right" variant="text" size="small">
20
+ <Button iconPosition="right" variant="ghost" size="small">
22
21
  {icon}
23
22
  {activeItem.name}
24
23
  </Button>
@@ -27,11 +26,12 @@ export function CodeBlockDropdown({ items, onChange, value }: CodeBlockDropdownI
27
26
  <DropdownMenu>
28
27
  {items.map((item) => {
29
28
  const icon = getFileIconByLanguage(item.lang || '');
29
+ const isActive = item.id === value;
30
30
  return (
31
31
  <DropdownMenuItem
32
- key={item.lang}
33
- onAction={() => onChange(item.name)}
34
- active={item.name === activeItem.name}
32
+ key={item.id}
33
+ onAction={() => onChange(item.id)}
34
+ active={isActive}
35
35
  prefix={item.lang ? icon : <NoneIcon size="var(--icon-size)" />}
36
36
  >
37
37
  {item.name}
@@ -39,15 +39,6 @@ export function CodeBlockDropdown({ items, onChange, value }: CodeBlockDropdownI
39
39
  );
40
40
  })}
41
41
  </DropdownMenu>
42
- </StyledDropdown>
42
+ </Dropdown>
43
43
  );
44
44
  }
45
-
46
- const StyledDropdown = styled(Dropdown)`
47
- margin-left: auto;
48
- --icon-size: 18px;
49
- --button-color: var(--text-color-secondary);
50
- button.button-size-small {
51
- --button-icon-size: 18px;
52
- }
53
- `;
@@ -2,7 +2,7 @@ import React, { useEffect, useRef } from 'react';
2
2
  import styled, { css } from 'styled-components';
3
3
 
4
4
  import type { JSX } from 'react';
5
- import type { CodeBlockTabItems } from '@redocly/theme/components/CodeBlock/CodeBlock';
5
+ import type { CodeBlockItems } from '@redocly/theme/components/CodeBlock/CodeBlock';
6
6
 
7
7
  import { useCodeBlockTabsControls } from '@redocly/theme/core/hooks';
8
8
  import { Button } from '@redocly/theme/components/Button/Button';
@@ -11,7 +11,7 @@ import { ChevronRightIcon } from '@redocly/theme/icons/ChevronRightIcon/ChevronR
11
11
  import { getFileIconByExt, getFileIconByLanguage } from '@redocly/theme/core/utils/get-file-icon';
12
12
 
13
13
  export type CodeBlockTabsProps = {
14
- tabs: CodeBlockTabItems;
14
+ tabs: CodeBlockItems;
15
15
  };
16
16
 
17
17
  export function CodeBlockTabs({ tabs }: CodeBlockTabsProps): JSX.Element {
@@ -24,7 +24,7 @@ export function CodeBlockTabs({ tabs }: CodeBlockTabsProps): JSX.Element {
24
24
  });
25
25
 
26
26
  useEffect(() => {
27
- const activeTab = tabRefs.current.find((tab) => tab?.dataset.name === tabs.value);
27
+ const activeTab = tabRefs.current.find((tab) => tab?.dataset.id === tabs.value);
28
28
 
29
29
  if (activeTab) {
30
30
  activeTab.scrollIntoView({ block: 'nearest', inline: 'center' });
@@ -35,23 +35,23 @@ export function CodeBlockTabs({ tabs }: CodeBlockTabsProps): JSX.Element {
35
35
  <CodeBlockTabsWrapper ref={containerRef} data-component-name="CodeBlock/CodeBlockTabs">
36
36
  <ShadowWrapper>
37
37
  <Tabs>
38
- {tabs.items.map(({ name, lang }, i) => {
38
+ {tabs.items.map((item, i) => {
39
+ const { name, lang, id } = item;
39
40
  const ext = name.match(/\.([^.]+)$/)?.[1];
40
41
  const fileIcon = lang
41
42
  ? getFileIconByLanguage(lang)
42
43
  : ext
43
44
  ? getFileIconByExt(ext)
44
45
  : null;
45
-
46
46
  return (
47
47
  <Tab
48
48
  ref={(el: HTMLButtonElement | null) => {
49
49
  tabRefs.current[i] = el as HTMLButtonElement;
50
50
  }}
51
51
  data-name={name}
52
- active={name === tabs.value}
53
- key={name + i}
54
- onClick={() => tabs.onChange(name)}
52
+ active={id === tabs.value}
53
+ key={id}
54
+ onClick={() => tabs.onChange(id)}
55
55
  >
56
56
  {fileIcon}
57
57
  {name}
@@ -12,11 +12,11 @@ export type PanelType = 'request' | 'responses' | 'request-samples' | 'response-
12
12
 
13
13
  export type JsonProps = {
14
14
  title?: CodeBlockControlsProps['title'];
15
+ controls?: CodeBlockControlsProps['controls'];
15
16
  data: any;
16
17
  className?: string;
17
18
  expandLevel: number;
18
19
  startLineNumber?: number;
19
- hideHeader?: boolean;
20
20
  onCopyClick?: () => void;
21
21
  onPanelToggle?: (isExpanded: boolean, panelType?: PanelType) => void;
22
22
  };
@@ -28,7 +28,7 @@ function JsonComponent({
28
28
  onCopyClick,
29
29
  onPanelToggle,
30
30
  title,
31
- hideHeader,
31
+ controls = {},
32
32
  }: JsonProps): JSX.Element {
33
33
  const showFoldingButtons =
34
34
  data && Object.values(data).some((value) => typeof value === 'object' && value !== null);
@@ -53,6 +53,8 @@ function JsonComponent({
53
53
 
54
54
  const source = JSON.stringify(data, null, 2);
55
55
 
56
+ const hasHeader = title || controls;
57
+
56
58
  return (
57
59
  <JsonViewerWrap
58
60
  data-testid="json-viewer"
@@ -61,17 +63,22 @@ function JsonComponent({
61
63
  >
62
64
  <CodeBlock
63
65
  header={
64
- hideHeader
65
- ? undefined
66
- : {
66
+ hasHeader
67
+ ? {
67
68
  title,
68
69
  className: 'code-block-header',
69
- controls: {
70
- copy: { data, onClick: onCopyClick, handleOutside: true },
71
- expand: showFoldingButtons ? { onClick: expandAll } : undefined,
72
- collapse: showFoldingButtons ? { onClick: collapseAll } : undefined,
70
+ controls: controls && {
71
+ ...controls,
72
+ copy: { ...controls.copy, data, onClick: onCopyClick, handleOutside: true },
73
+ expand: showFoldingButtons
74
+ ? { ...controls.expand, onClick: expandAll }
75
+ : undefined,
76
+ collapse: showFoldingButtons
77
+ ? { ...controls.collapse, onClick: collapseAll }
78
+ : undefined,
73
79
  },
74
80
  }
81
+ : undefined
75
82
  }
76
83
  source={source}
77
84
  >
@@ -13,20 +13,22 @@ import { Dropdown } from '@redocly/theme/components/Dropdown/Dropdown';
13
13
  import { DropdownMenu } from '@redocly/theme/components/Dropdown/DropdownMenu';
14
14
  import { Spinner } from '@redocly/theme/icons/Spinner/Spinner';
15
15
  import { CheckmarkFilledIcon } from '@redocly/theme/icons/CheckmarkFilledIcon/CheckmarkFilledIcon';
16
- import { usePageActions } from '@redocly/theme/core/hooks';
16
+ import { PageActionType, usePageActions } from '@redocly/theme/core/hooks';
17
17
 
18
18
  type ActionState = 'idle' | 'processing' | 'done';
19
19
 
20
20
  type PageActionProps = {
21
- pageSlug: string;
21
+ pageSlug?: string;
22
+ mcpUrl?: string;
23
+ actions?: PageActionType[];
22
24
  };
23
25
 
24
26
  const ACTION_DONE_DISPLAY_DURATION = 1000;
25
27
 
26
28
  export function PageActions(props: PageActionProps): JSX.Element | null {
27
- const { pageSlug } = props;
29
+ const { pageSlug, mcpUrl } = props;
28
30
 
29
- const actions = usePageActions(pageSlug || '/');
31
+ const actions = usePageActions(pageSlug || '/', mcpUrl, props.actions);
30
32
 
31
33
  const [actionState, setActionState] = useState<ActionState>('idle');
32
34
 
@@ -329,6 +329,7 @@ export const apiReferencePanels = css`
329
329
  .panel-language-list,
330
330
  .panel-overview,
331
331
  .panel-download,
332
+ .panel-mcp-overview,
332
333
  .panel-servers-list,
333
334
  .panel-request-samples,
334
335
  .panel-response-samples,
@@ -26,13 +26,16 @@ type Color =
26
26
  | 'green'
27
27
  | 'blue'
28
28
  | 'grey'
29
- | 'gold'
30
- | 'cyan'
29
+ | 'turquoise'
31
30
  | 'magenta'
32
31
  | 'purple'
33
- | 'lime'
34
- | 'geekblue'
35
- | 'yellow';
32
+ | 'carrot'
33
+ | 'raspberry'
34
+ | 'orange'
35
+ | 'grass'
36
+ | 'persian-green'
37
+ | 'sky'
38
+ | 'blueberry';
36
39
 
37
40
  export type TagProps = {
38
41
  className?: string;
@@ -52,6 +55,7 @@ export type TagProps = {
52
55
  onClose?: (event: React.MouseEvent) => void;
53
56
  maxLength?: number;
54
57
  textTransform?: 'uppercase' | 'lowercase' | 'capitalize' | 'none';
58
+ variant?: 'outline' | 'filled';
55
59
  };
56
60
 
57
61
  export function Tag({
@@ -70,6 +74,7 @@ export function Tag({
70
74
  statusDotColor = 'var(--tag-status-dot-color-default)',
71
75
  maxLength,
72
76
  textTransform,
77
+ variant = 'filled',
73
78
  ...otherProps
74
79
  }: TagProps): JSX.Element {
75
80
  const truncateText = (text: string, maxLen: number): string => {
@@ -146,6 +151,7 @@ export function Tag({
146
151
  onKeyDown={onKeyDown}
147
152
  hasCloseButton={closable}
148
153
  textTransform={textTransform}
154
+ variant={variant}
149
155
  {...otherProps}
150
156
  >
151
157
  {withStatusDot ? <StatusDot color={statusDotColor} /> : icon ? icon : null}
@@ -221,12 +227,31 @@ const TagWrapper = styled.div.attrs(({ className, color, size }: TagProps) => ({
221
227
  `text-transform: ${textTransform ? `${textTransform}` : 'var(--tag-text-transform)'};`}
222
228
 
223
229
  color: var(--tag-color);
224
- background-color: var(--tag-bg-color);
225
- ${({ borderless }) =>
230
+ background-color: ${({ variant }) =>
231
+ variant === 'filled' ? 'var(--tag-bg-color)' : 'transparent'};
232
+ ${({ borderless, variant }) =>
226
233
  borderless
227
234
  ? ''
228
- : 'border: var(--tag-border-width) var(--tag-border-style) var(--tag-border-color);'}
235
+ : `border: var(--tag-border-width) var(--tag-border-style) ${variant === 'filled' ? 'transparent' : 'var(--tag-border-color)'};`}
229
236
  border-radius: var(--tag-border-radius);
237
+
238
+ svg {
239
+ width: var(--tag-icon-width);
240
+ height: var(--tag-icon-height);
241
+ }
242
+
243
+ &:hover {
244
+ background-color: ${({ variant }) =>
245
+ variant === 'filled' ? 'var(--tag-bg-color-hover)' : 'transparent'};
246
+ border-color: ${({ variant }) =>
247
+ variant === 'outline' ? 'var(--tag-border-color-hover)' : 'transparent'};
248
+ }
249
+
250
+ &:focus-visible {
251
+ outline: 1px solid var(--tag-border-color-focused);
252
+ outline-offset: 2px;
253
+ border-radius: var(--tag-border-radius-focused);
254
+ }
230
255
  `;
231
256
 
232
257
  const StatusDot = styled.div<{ color: string }>`
@@ -1,6 +1,9 @@
1
1
  import { css } from 'styled-components';
2
2
 
3
3
  export const tagDarkMode = css`
4
+ --tag-border-color-focused: var(--color-blue-8); // @presenter Color
5
+ --tag-badge-border-color: var(--border-color-secondary);
6
+
4
7
  --tag-operation-color-delete: #fa82a2; // @presenter Color
5
8
  --tag-operation-bg-color-delete: #77214C; // @presenter Color
6
9
 
@@ -39,6 +42,138 @@ export const tagDarkMode = css`
39
42
  .tag-draft,
40
43
  .tag-schema,
41
44
  .tag-default {
45
+ --tag-color: var(--color-warm-grey-8); // @presenter Color
42
46
  --tag-bg-color: var(--color-warm-grey-4); // @presenter Color
47
+ --tag-bg-color-hover: var(--color-warm-grey-5); // @presenter Color
48
+ }
49
+
50
+ .tag-red {
51
+ --tag-color: var(--color-red-7); // @presenter Color
52
+ --tag-bg-color: var(--color-red-1); // @presenter Color
53
+ --tag-border-color: var(--color-red-8); // @presenter Color
54
+ --tag-border-color-hover: var(--color-red-6); // @presenter Color
55
+ }
56
+
57
+ .tag-green {
58
+ --tag-color: var(--color-green-6); // @presenter Color
59
+ --tag-bg-color: var(--color-green-1); // @presenter Color
60
+ --tag-border-color: var(--color-green-3); // @presenter Color
61
+ --tag-border-color-hover: var(--color-green-4); // @presenter Color
62
+ --tag-bg-color-hover: var(--color-green-2); // @presenter Color
63
+ }
64
+
65
+ .tag-blue {
66
+ --tag-color: var(--color-blue-7); // @presenter Color
67
+ --tag-bg-color: var(--color-blue-1); // @presenter Color
68
+ --tag-border-color-hover: var(--color-blue-5); // @presenter Color
69
+ --tag-bg-color-hover: var(--color-blue-2); // @presenter Color
70
+ }
71
+
72
+ .tag-magenta,
73
+ .tag-hook {
74
+ --tag-color: var(--color-magenta-4); // @presenter Color
75
+ --tag-bg-color: var(--color-magenta-1); // @presenter Color
76
+ --tag-bg-color-hover: var(--color-magenta-2); // @presenter Color
77
+ }
78
+
79
+ .tag-purple,
80
+ .tag-head {
81
+ --tag-color: var(--color-purple-7); // @presenter Color
82
+ --tag-bg-color: var(--color-purple-1); // @presenter Color
83
+ --tag-bg-color-hover: var(--color-purple-2); // @presenter Color
84
+ --tag-border-color-hover: var(--color-purple-5); // @presenter Color
85
+ }
86
+
87
+ .tag-carrot {
88
+ --tag-color: var(--color-carrot-6); // @presenter Color
89
+ --tag-bg-color: var(--color-carrot-1); // @presenter Color
90
+ --tag-bg-color-hover: var(--color-carrot-2); // @presenter Color
91
+ --tag-border-color: var(--color-carrot-4); // @presenter Color
92
+ }
93
+
94
+ .tag-raspberry {
95
+ --tag-color: var(--color-raspberry-7); // @presenter Color
96
+ --tag-bg-color: var(--color-raspberry-1); // @presenter Color
97
+ --tag-bg-color-hover: var(--color-raspberry-2); // @presenter Color
98
+ }
99
+
100
+ .tag-orange {
101
+ --tag-color: var(--color-orange-7); // @presenter Color
102
+ --tag-bg-color: var(--color-orange-1); // @presenter Color
103
+ --tag-bg-color-hover: var(--color-orange-2); // @presenter Color
104
+ --tag-border-color: var(--color-orange-3); // @presenter Color
105
+ --tag-border-color-hover: var(--color-orange-5); // @presenter Color
106
+ }
107
+
108
+ .tag-grass {
109
+ --tag-bg-color: var(--color-grass-1); // @presenter Color
110
+ --tag-bg-color-hover: var(--color-grass-2); // @presenter Color
111
+ --tag-color: var(--color-grass-7); // @presenter Color
112
+ --tag-border-color: var(--color-grass-3); // @presenter Color
113
+ --tag-border-color-hover: var(--color-grass-5); // @presenter Color
114
+ }
115
+
116
+ .tag-persian-green {
117
+ --tag-color: var(--color-persian-green-7); // @presenter Color
118
+ --tag-bg-color: var(--color-persian-green-1); // @presenter Color
119
+ --tag-bg-color-hover: var(--color-persian-green-2); // @presenter Color
120
+ --tag-border-color: var(--color-persian-green-3); // @presenter Color
121
+ --tag-border-color-hover: var(--color-persian-green-5); // @presenter Color
122
+ }
123
+
124
+ .tag-turquoise,
125
+ .tag-option {
126
+ --tag-color: var(--color-turquoise-6); // @presenter Color
127
+ --tag-bg-color: var(--color-turquoise-1); // @presenter Color
128
+ --tag-bg-color-hover: var(--color-turquoise-2); // @presenter Color
129
+ --tag-border-color: var(--color-turquoise-4); // @presenter Color
130
+ }
131
+
132
+ .tag-sky {
133
+ --tag-color: var(--color-sky-6); // @presenter Color
134
+ --tag-bg-color: var(--color-sky-1); // @presenter Color
135
+ --tag-border-color: var(--color-sky-4); // @presenter Color
136
+ --tag-bg-color-hover: var(--color-sky-2); // @presenter Color
137
+ }
138
+
139
+ .tag-blueberry {
140
+ --tag-color: var(--color-blueberry-7); // @presenter Color
141
+ --tag-bg-color: var(--color-blueberry-1); // @presenter Color
142
+ --tag-border-color-hover: var(--color-blueberry-5); // @presenter Color
143
+ --tag-bg-color-hover: var(--color-blueberry-2); // @presenter Color
144
+ }
145
+
146
+ .tag-warning,
147
+ .tag-deprecated {
148
+ --tag-color: var(--color-warning-active); // @presenter Color
149
+ --tag-bg-color: var(--color-warning-bg); // @presenter Color
150
+ --tag-bg-color-hover: var(--color-warning-bg-hover); // @presenter Color
151
+ }
152
+
153
+ .tag-processing,
154
+ .tag-info {
155
+ --tag-color: var(--color-info-active); // @presenter Color
156
+ --tag-bg-color: var(--color-info-bg); // @presenter Color
157
+ --tag-bg-color-hover: var(--color-info-bg-hover); // @presenter Color
158
+ }
159
+
160
+ .tag-error,
161
+ .tag-declined {
162
+ --tag-color: var(--color-error-active); // @presenter Color
163
+ --tag-bg-color: var(--color-error-bg); // @presenter Color
164
+ --tag-bg-color-hover: var(--color-error-bg-hover); // @presenter Color
165
+ }
166
+
167
+ .tag-success,
168
+ .tag-approved {
169
+ --tag-color: var(--color-success-active); // @presenter Color
170
+ --tag-bg-color: var(--color-success-bg); // @presenter Color
171
+ --tag-bg-color-hover: var(--color-success-bg-hover); // @presenter Color
172
+ }
173
+
174
+ .tag-link {
175
+ --tag-color: var(--color-info-active); // @presenter Color
176
+ --tag-bg-color: var(--color-info-bg); // @presenter Color
177
+ --tag-bg-color-hover: var(--color-info-bg-hover); // @presenter Color
43
178
  }
44
179
  `;