@redocly/theme 0.59.0-next.4 → 0.59.0-rc.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.
Files changed (75) hide show
  1. package/LICENSE +1 -7
  2. package/lib/components/Buttons/AIAssistantButton.js +1 -5
  3. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.js +1 -1
  4. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.js +1 -1
  5. package/lib/components/Catalog/CatalogTagsWithTooltip.js +1 -1
  6. package/lib/components/Dropdown/Dropdown.d.ts +2 -16
  7. package/lib/components/Dropdown/Dropdown.js +5 -5
  8. package/lib/components/Menu/MenuItem.js +1 -1
  9. package/lib/components/Navbar/NavbarItem.js +3 -3
  10. package/lib/components/OpenApiDocs/hooks/AdditionalOverviewInfo.d.ts +1 -0
  11. package/lib/components/OpenApiDocs/hooks/AdditionalOverviewInfo.js +11 -0
  12. package/lib/components/OpenApiDocs/hooks/AfterOpenApiDescription.d.ts +1 -0
  13. package/lib/components/OpenApiDocs/hooks/AfterOpenApiDescription.js +5 -0
  14. package/lib/components/Search/FilterFields/SearchFilterFieldTags.js +2 -1
  15. package/lib/components/Search/SearchAiConversationInput.d.ts +1 -2
  16. package/lib/components/Search/SearchAiConversationInput.js +3 -11
  17. package/lib/components/Search/SearchDialog.js +3 -15
  18. package/lib/components/Search/SearchGroups.js +2 -2
  19. package/lib/components/Search/variables.js +1 -5
  20. package/lib/components/Select/SelectInput.js +1 -1
  21. package/lib/components/Select/variables.js +2 -2
  22. package/lib/components/Tag/Tag.d.ts +1 -2
  23. package/lib/components/Tag/Tag.js +17 -66
  24. package/lib/components/Tag/variables.dark.js +36 -135
  25. package/lib/components/Tag/variables.js +61 -78
  26. package/lib/core/constants/search.d.ts +4 -5
  27. package/lib/core/constants/search.js +5 -4
  28. package/lib/core/hooks/use-page-actions.d.ts +1 -1
  29. package/lib/core/hooks/use-page-actions.js +24 -1
  30. package/lib/core/hooks/use-tabs.d.ts +2 -3
  31. package/lib/core/hooks/use-tabs.js +57 -115
  32. package/lib/core/hooks/use-telemetry-fallback.d.ts +0 -1
  33. package/lib/core/hooks/use-telemetry-fallback.js +0 -1
  34. package/lib/core/types/hooks.d.ts +2 -2
  35. package/lib/ext/process-scorecard.d.ts +5 -0
  36. package/lib/ext/process-scorecard.js +11 -0
  37. package/lib/icons/AiStarsIcon/AiStarsIcon.js +2 -11
  38. package/lib/icons/RedoclyIcon/RedoclyIcon.js +7 -4
  39. package/lib/index.d.ts +2 -0
  40. package/lib/index.js +2 -0
  41. package/lib/markdoc/components/Tabs/TabList.d.ts +1 -3
  42. package/lib/markdoc/components/Tabs/TabList.js +47 -197
  43. package/lib/markdoc/components/Tabs/Tabs.d.ts +1 -2
  44. package/lib/markdoc/components/Tabs/Tabs.js +12 -57
  45. package/package.json +5 -5
  46. package/src/components/Buttons/AIAssistantButton.tsx +1 -5
  47. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.tsx +1 -1
  48. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.tsx +1 -1
  49. package/src/components/Catalog/CatalogTagsWithTooltip.tsx +5 -1
  50. package/src/components/Dropdown/Dropdown.tsx +79 -84
  51. package/src/components/Menu/MenuItem.tsx +0 -1
  52. package/src/components/Navbar/NavbarItem.tsx +5 -6
  53. package/src/components/OpenApiDocs/hooks/AdditionalOverviewInfo.tsx +9 -0
  54. package/src/components/OpenApiDocs/hooks/AfterOpenApiDescription.tsx +1 -0
  55. package/src/components/Search/FilterFields/SearchFilterFieldTags.tsx +3 -3
  56. package/src/components/Search/SearchAiConversationInput.tsx +2 -12
  57. package/src/components/Search/SearchDialog.tsx +3 -15
  58. package/src/components/Search/SearchGroups.tsx +0 -2
  59. package/src/components/Search/variables.ts +1 -5
  60. package/src/components/Select/SelectInput.tsx +0 -1
  61. package/src/components/Select/variables.ts +2 -2
  62. package/src/components/Tag/Tag.tsx +19 -35
  63. package/src/components/Tag/variables.dark.ts +36 -135
  64. package/src/components/Tag/variables.ts +61 -78
  65. package/src/core/constants/search.ts +4 -8
  66. package/src/core/hooks/use-page-actions.ts +33 -2
  67. package/src/core/hooks/use-tabs.ts +86 -168
  68. package/src/core/hooks/use-telemetry-fallback.ts +0 -1
  69. package/src/core/types/hooks.ts +1 -5
  70. package/src/ext/process-scorecard.ts +13 -0
  71. package/src/icons/AiStarsIcon/AiStarsIcon.tsx +2 -11
  72. package/src/icons/RedoclyIcon/RedoclyIcon.tsx +22 -4
  73. package/src/index.ts +2 -0
  74. package/src/markdoc/components/Tabs/TabList.tsx +105 -312
  75. package/src/markdoc/components/Tabs/Tabs.tsx +11 -136
@@ -1,11 +1,43 @@
1
1
  import { css } from 'styled-components';
2
2
 
3
3
  export const tagDarkMode = css`
4
- --tag-close-button-bg-color-focus: var(--color-warm-grey-6); // @presenter Color
5
-
6
4
  --tag-border-color-focused: var(--color-blue-8); // @presenter Color
7
5
  --tag-badge-border-color: var(--border-color-secondary);
8
6
 
7
+ --tag-operation-color-delete: #fa82a2; // @presenter Color
8
+ --tag-operation-bg-color-delete: #77214C; // @presenter Color
9
+
10
+ --tag-operation-color-get: #68cc97; // @presenter Color
11
+ --tag-operation-bg-color-get: #1F4D2D; // @presenter Color
12
+
13
+ --tag-operation-color-post: #90b0f0; // @presenter Color
14
+ --tag-operation-bg-color-post: #233061; // @presenter Color
15
+
16
+ --tag-operation-color-put: #e0a663; // @presenter Color
17
+ --tag-operation-bg-color-put: #612729; // @presenter Color
18
+
19
+ --tag-operation-color-patch: #e0c363; // @presenter Color
20
+ --tag-operation-bg-color-patch: #5C3721; // @presenter Color
21
+
22
+ --tag-operation-color-head: #e6e1fe; // @presenter Color
23
+ --tag-operation-bg-color-head: #5b4ccc; // @presenter Color
24
+
25
+ --tag-operation-color-options: #1a1c21; // @presenter Color
26
+ --tag-operation-bg-color-options: #2a2b33; // @presenter Color
27
+
28
+ --tag-action-color-receive: #88CF82; // @presenter Color
29
+ --tag-action-color-sub: #88CF82; // @presenter Color
30
+ --tag-action-color-cons: #88CF82; // @presenter Color
31
+
32
+ --tag-action-color-send: #7779F8; // @presenter Color
33
+ --tag-action-color-pub: #7779F8; // @presenter Color
34
+ --tag-action-color-publish: #7779F8; // @presenter Color
35
+
36
+ --tag-action-color-channel: #F5AD5B; // @presenter Color
37
+ --tag-action-color-topic: #F5AD5B; // @presenter Color
38
+ --tag-action-color-queue: #F7A7CF; // @presenter Color
39
+ --tag-action-color-exchange: #C79CF2; // @presenter Color
40
+
9
41
  .tag-grey,
10
42
  .tag-draft,
11
43
  .tag-schema,
@@ -13,7 +45,6 @@ export const tagDarkMode = css`
13
45
  --tag-color: var(--color-warm-grey-8); // @presenter Color
14
46
  --tag-bg-color: var(--color-warm-grey-4); // @presenter Color
15
47
  --tag-bg-color-hover: var(--color-warm-grey-5); // @presenter Color
16
- --tag-close-button-bg-color-hover: var(--color-warm-grey-5); // @presenter Color
17
48
  }
18
49
 
19
50
  .tag-red {
@@ -21,7 +52,6 @@ export const tagDarkMode = css`
21
52
  --tag-bg-color: var(--color-red-1); // @presenter Color
22
53
  --tag-border-color: var(--color-red-8); // @presenter Color
23
54
  --tag-border-color-hover: var(--color-red-6); // @presenter Color
24
- --tag-close-button-bg-color-hover: var(--color-red-2); // @presenter Color
25
55
  }
26
56
 
27
57
  .tag-green {
@@ -30,7 +60,6 @@ export const tagDarkMode = css`
30
60
  --tag-border-color: var(--color-green-3); // @presenter Color
31
61
  --tag-border-color-hover: var(--color-green-5); // @presenter Color
32
62
  --tag-bg-color-hover: var(--color-green-2); // @presenter Color
33
- --tag-close-button-bg-color-hover: var(--color-green-2); // @presenter Color
34
63
  }
35
64
 
36
65
  .tag-blue {
@@ -38,7 +67,6 @@ export const tagDarkMode = css`
38
67
  --tag-bg-color: var(--color-blue-1); // @presenter Color
39
68
  --tag-border-color-hover: var(--color-blue-5); // @presenter Color
40
69
  --tag-bg-color-hover: var(--color-blue-2); // @presenter Color
41
- --tag-close-button-bg-color-hover: var(--color-blue-2); // @presenter Color
42
70
  }
43
71
 
44
72
  .tag-magenta,
@@ -46,15 +74,14 @@ export const tagDarkMode = css`
46
74
  --tag-color: var(--color-magenta-4); // @presenter Color
47
75
  --tag-bg-color: var(--color-magenta-1); // @presenter Color
48
76
  --tag-bg-color-hover: var(--color-magenta-2); // @presenter Color
49
- --tag-close-button-bg-color-hover: var(--color-magenta-2); // @presenter Color
50
77
  }
51
78
 
52
- .tag-purple {
79
+ .tag-purple,
80
+ .tag-head {
53
81
  --tag-color: var(--color-purple-7); // @presenter Color
54
82
  --tag-bg-color: var(--color-purple-1); // @presenter Color
55
83
  --tag-bg-color-hover: var(--color-purple-2); // @presenter Color
56
84
  --tag-border-color-hover: var(--color-purple-5); // @presenter Color
57
- --tag-close-button-bg-color-hover: var(--color-purple-2); // @presenter Color
58
85
  }
59
86
 
60
87
  .tag-carrot {
@@ -62,14 +89,12 @@ export const tagDarkMode = css`
62
89
  --tag-bg-color: var(--color-carrot-1); // @presenter Color
63
90
  --tag-bg-color-hover: var(--color-carrot-2); // @presenter Color
64
91
  --tag-border-color: var(--color-carrot-4); // @presenter Color
65
- --tag-close-button-bg-color-hover: var(--color-carrot-2); // @presenter Color
66
92
  }
67
93
 
68
94
  .tag-raspberry {
69
95
  --tag-color: var(--color-raspberry-7); // @presenter Color
70
96
  --tag-bg-color: var(--color-raspberry-1); // @presenter Color
71
97
  --tag-bg-color-hover: var(--color-raspberry-2); // @presenter Color
72
- --tag-close-button-bg-color-hover: var(--color-raspberry-2); // @presenter Color
73
98
  }
74
99
 
75
100
  .tag-orange {
@@ -78,7 +103,6 @@ export const tagDarkMode = css`
78
103
  --tag-bg-color-hover: var(--color-orange-2); // @presenter Color
79
104
  --tag-border-color: var(--color-orange-3); // @presenter Color
80
105
  --tag-border-color-hover: var(--color-orange-5); // @presenter Color
81
- --tag-close-button-bg-color-hover: var(--color-orange-2); // @presenter Color
82
106
  }
83
107
 
84
108
  .tag-grass {
@@ -87,7 +111,6 @@ export const tagDarkMode = css`
87
111
  --tag-color: var(--color-grass-7); // @presenter Color
88
112
  --tag-border-color: var(--color-grass-3); // @presenter Color
89
113
  --tag-border-color-hover: var(--color-grass-5); // @presenter Color
90
- --tag-close-button-bg-color-hover: var(--color-grass-2); // @presenter Color
91
114
  }
92
115
 
93
116
  .tag-persian-green {
@@ -96,7 +119,6 @@ export const tagDarkMode = css`
96
119
  --tag-bg-color-hover: var(--color-persian-green-2); // @presenter Color
97
120
  --tag-border-color: var(--color-persian-green-3); // @presenter Color
98
121
  --tag-border-color-hover: var(--color-persian-green-5); // @presenter Color
99
- --tag-close-button-bg-color-hover: var(--color-persian-green-2); // @presenter Color
100
122
  }
101
123
 
102
124
  .tag-turquoise,
@@ -105,7 +127,6 @@ export const tagDarkMode = css`
105
127
  --tag-bg-color: var(--color-turquoise-1); // @presenter Color
106
128
  --tag-bg-color-hover: var(--color-turquoise-2); // @presenter Color
107
129
  --tag-border-color: var(--color-turquoise-4); // @presenter Color
108
- --tag-close-button-bg-color-hover: var(--color-turquoise-2); // @presenter Color
109
130
  }
110
131
 
111
132
  .tag-sky {
@@ -113,7 +134,6 @@ export const tagDarkMode = css`
113
134
  --tag-bg-color: var(--color-sky-1); // @presenter Color
114
135
  --tag-border-color: var(--color-sky-4); // @presenter Color
115
136
  --tag-bg-color-hover: var(--color-sky-2); // @presenter Color
116
- --tag-close-button-bg-color-hover: var(--color-sky-2); // @presenter Color
117
137
  }
118
138
 
119
139
  .tag-blueberry {
@@ -121,7 +141,6 @@ export const tagDarkMode = css`
121
141
  --tag-bg-color: var(--color-blueberry-1); // @presenter Color
122
142
  --tag-border-color-hover: var(--color-blueberry-5); // @presenter Color
123
143
  --tag-bg-color-hover: var(--color-blueberry-2); // @presenter Color
124
- --tag-close-button-bg-color-hover: var(--color-blueberry-2); // @presenter Color
125
144
  }
126
145
 
127
146
  .tag-warning,
@@ -129,7 +148,6 @@ export const tagDarkMode = css`
129
148
  --tag-color: var(--color-warning-active); // @presenter Color
130
149
  --tag-bg-color: var(--color-warning-bg); // @presenter Color
131
150
  --tag-bg-color-hover: var(--color-warning-bg-hover); // @presenter Color
132
- --tag-close-button-bg-color-hover: var(--color-warning-hover); // @presenter Color
133
151
  }
134
152
 
135
153
  .tag-processing,
@@ -137,7 +155,6 @@ export const tagDarkMode = css`
137
155
  --tag-color: var(--color-info-active); // @presenter Color
138
156
  --tag-bg-color: var(--color-info-bg); // @presenter Color
139
157
  --tag-bg-color-hover: var(--color-info-bg-hover); // @presenter Color
140
- --tag-close-button-bg-color-hover: var(--color-info-hover); // @presenter Color
141
158
  }
142
159
 
143
160
  .tag-error,
@@ -145,7 +162,6 @@ export const tagDarkMode = css`
145
162
  --tag-color: var(--color-error-active); // @presenter Color
146
163
  --tag-bg-color: var(--color-error-bg); // @presenter Color
147
164
  --tag-bg-color-hover: var(--color-error-bg-hover); // @presenter Color
148
- --tag-close-button-bg-color-hover: var(--color-error-hover); // @presenter Color
149
165
  }
150
166
 
151
167
  .tag-success,
@@ -153,126 +169,11 @@ export const tagDarkMode = css`
153
169
  --tag-color: var(--color-success-active); // @presenter Color
154
170
  --tag-bg-color: var(--color-success-bg); // @presenter Color
155
171
  --tag-bg-color-hover: var(--color-success-bg-hover); // @presenter Color
156
- --tag-close-button-bg-color-hover: var(--color-success-bg-hover); // @presenter Color
157
172
  }
158
173
 
159
174
  .tag-link {
160
175
  --tag-color: var(--color-info-active); // @presenter Color
161
176
  --tag-bg-color: var(--color-info-bg); // @presenter Color
162
177
  --tag-bg-color-hover: var(--color-info-bg-hover); // @presenter Color
163
- --tag-close-button-bg-color-hover: var(--color-info-hover); // @presenter Color
164
- }
165
-
166
- .tag-delete {
167
- --tag-color: #fa82a2; // @presenter Color
168
- --tag-bg-color: #47252E; // @presenter Color
169
- --tag-bg-color-hover: #653441; // @presenter Color
170
- }
171
-
172
- .tag-get {
173
- --tag-color: #68cc97; // @presenter Color
174
- --tag-bg-color: #1F3D2D; // @presenter Color
175
- --tag-bg-color-hover: #34654B; // @presenter Color
176
- }
177
-
178
- .tag-post {
179
- --tag-color: #90b0f0; // @presenter Color
180
- --tag-bg-color: #2B3447; // @presenter Color
181
- --tag-bg-color-hover: #3A465F; // @presenter Color
182
- }
183
-
184
- .tag-put {
185
- --tag-color: #e0a663; // @presenter Color
186
- --tag-bg-color: #3D2D1B; // @presenter Color
187
- --tag-bg-color-hover: #674C2D; // @presenter Color
188
- }
189
-
190
- .tag-patch {
191
- --tag-color: #e0c363; // @presenter Color
192
- --tag-bg-color: #3D351B; // @presenter Color
193
- --tag-bg-color-hover: #67592D; // @presenter Color
194
- }
195
-
196
- .tag-head {
197
- --tag-color: var(--color-purple-7); // @presenter Color
198
- --tag-bg-color: #312B5A; // @presenter Color
199
- --tag-bg-color-hover: #413875; // @presenter Color
200
- }
201
-
202
- .tag-channel {
203
- --tag-color: #F5AD5B; // @presenter Color
204
- --tag-bg-color: #4A3721; // @presenter Color
205
- --tag-bg-color-hover: #64492B; // @presenter Color
206
- }
207
-
208
- .tag-topic {
209
- --tag-color: #F5AD5B; // @presenter Color
210
- --tag-bg-color: #4A3721; // @presenter Color
211
- --tag-bg-color-hover: #64492B; // @presenter Color
212
- }
213
-
214
- .tag-send {
215
- --tag-color: #7779F8; // @presenter Color
216
- --tag-bg-color: #272754; // @presenter Color
217
- --tag-bg-color-hover: #373776; // @presenter Color
218
- }
219
-
220
- .tag-pub {
221
- --tag-color: #7779F8; // @presenter Color
222
- --tag-bg-color: #272754; // @presenter Color
223
- --tag-bg-color-hover: #373776; // @presenter Color
224
- }
225
-
226
- .tag-publish {
227
- --tag-color: #7779F8; // @presenter Color
228
- --tag-bg-color: #272754; // @presenter Color
229
- --tag-bg-color-hover: #373776; // @presenter Color
230
- }
231
-
232
- .tag-receive {
233
- --tag-color: #88CF82; // @presenter Color
234
- --tag-bg-color: #23421F; // @presenter Color
235
- --tag-bg-color-hover: #305A2A; // @presenter Color
236
- }
237
-
238
- .tag-sub {
239
- --tag-color: #88CF82; // @presenter Color
240
- --tag-bg-color: #23421F; // @presenter Color
241
- --tag-bg-color-hover: #305A2A; // @presenter Color
242
- }
243
-
244
- .tag-cons {
245
- --tag-color: #88CF82; // @presenter Color
246
- --tag-bg-color: #23421F; // @presenter Color
247
- --tag-bg-color-hover: #305A2A; // @presenter Color
248
- }
249
-
250
- .tag-exchange {
251
- --tag-color: #C79CF2; // @presenter Color
252
- --tag-bg-color: #472669; // @presenter Color
253
- --tag-bg-color-hover: #5C3187; // @presenter Color
254
- }
255
-
256
- // shorten alias for exchange tag:
257
- .tag-exch {
258
- --tag-color: #C79CF2; // @presenter Color
259
- --tag-bg-color: #472669; // @presenter Color
260
- --tag-bg-color-hover: #5C3187; // @presenter Color
261
- }
262
-
263
- .tag-queue {
264
- --tag-color: #F7A7CF; // @presenter Color
265
- --tag-bg-color: #622242; // @presenter Color
266
- --tag-bg-color-hover: #882F5C; // @presenter Color
267
- }
268
-
269
- .tag-variant-filled {
270
- --tag-border-color: transparent;
271
- --tag-border-color-hover: transparent;
272
- }
273
-
274
- .tag-variant-outline {
275
- --tag-bg-color: transparent;
276
- --tag-bg-color-hover: transparent;
277
178
  }
278
179
  `;
@@ -16,7 +16,6 @@ export const tag = css`
16
16
  --tag-badge-border-width: 2px;
17
17
  --tag-badge-border-color: var(--border-color-secondary); // @presenter Color
18
18
  --tag-border-color-focused: var(--color-blue-4); // @presenter Color
19
- --tag-close-button-bg-color-focus: var(--color-warm-grey-4); // @presenter Color
20
19
 
21
20
  /**
22
21
  * @tokens Tag spacing
@@ -63,7 +62,6 @@ export const tag = css`
63
62
  --tag-icon-width: 14px; // @presenter Spacing
64
63
  --tag-icon-height: 14px; // @presenter Spacing
65
64
 
66
-
67
65
  /**
68
66
  * @tokens Tag colors
69
67
  */
@@ -159,7 +157,8 @@ export const tag = css`
159
157
  --tag-border-color-hover: var(--color-info-border-hover); // @presenter Color
160
158
  }
161
159
 
162
- .tag-purple {
160
+ .tag-purple,
161
+ .tag-head {
163
162
  --tag-color: var(--color-purple-7); // @presenter Color
164
163
  --tag-bg-color: var(--color-purple-1); // @presenter Color
165
164
  --tag-border-color: var(--color-purple-4); // @presenter Color
@@ -270,125 +269,109 @@ export const tag = css`
270
269
  * @tokens Operation tag colors
271
270
  */
272
271
 
273
- .tag-head {
274
- --tag-color: #6355CA; // @presenter Color
275
- --tag-bg-color: #ECEBFA; // @presenter Color
276
- --tag-bg-color-hover: #E0DEF7; // @presenter Color
277
- }
272
+ --tag-operation-color-delete: #e70b46; // @presenter Color
273
+ --tag-operation-bg-color-delete: #fee2e9; // @presenter Color
274
+
275
+ --tag-operation-color-get: #25b869; // @presenter Color
276
+ --tag-operation-bg-color-get: #e5faef; // @presenter Color
277
+
278
+ --tag-operation-color-post: #1e65f5; // @presenter Color
279
+ --tag-operation-bg-color-post: #e2ebfe; // @presenter Color
280
+
281
+ --tag-operation-color-put: #f5901d; // @presenter Color
282
+ --tag-operation-bg-color-put: #fef1e2; // @presenter Color
283
+
284
+ --tag-operation-color-patch: #f5c31d; // @presenter Color
285
+ --tag-operation-bg-color-patch: #fdf6dd; // @presenter Color
286
+
287
+ --tag-operation-color-head: #5b4ccc; // @presenter Color
288
+ --tag-operation-bg-color-head: #e6e1fe; // @presenter Color
289
+
290
+ --tag-operation-color-options: #1a1c21; // @presenter Color
291
+ --tag-operation-bg-color-options: #ededf2; // @presenter Color
292
+
293
+ --tag-operation-color-deprecated: var(--text-color-disabled); // @presenter Color
294
+
295
+ --tag-action-color-receive: #4db144; // @presenter Color
296
+ --tag-action-color-sub: #4db144; // @presenter Color
297
+ --tag-action-color-cons: #4db144; // @presenter Color
298
+
299
+ --tag-action-color-send: #4144f6; // @presenter Color
300
+ --tag-action-color-pub: #4144f6; // @presenter Color
301
+ --tag-action-color-publish: #4144f6; // @presenter Color
302
+
303
+ --tag-action-color-channel: #F0870E; // @presenter Color
304
+ --tag-action-color-topic: #F0870E; // @presenter Color
305
+ --tag-action-color-queue: #D72E81; // @presenter Color
306
+ --tag-action-color-exchange: #9B51E0; // @presenter Color
278
307
 
279
308
  .tag-delete {
280
- --tag-color: #e70b46; // @presenter Color
281
- --tag-bg-color: #fee2e9; // @presenter Color
282
- --tag-bg-color-hover: #fdd3dd; // @presenter Color
309
+ --tag-color: var(--tag-operation-color-delete); // @presenter Color
283
310
  }
284
311
 
285
312
  .tag-get {
286
- --tag-color: #25b869; // @presenter Color
287
- --tag-bg-color: #e5faef; // @presenter Color
288
- --tag-bg-color-hover: #D4F7E5; // @presenter Color
313
+ --tag-color: var(--tag-operation-color-get); // @presenter Color
289
314
  }
290
315
 
291
316
  .tag-post {
292
- --tag-color: #1e65f5; // @presenter Color
293
- --tag-bg-color: #e2ebfe; // @presenter Color
294
- --tag-bg-color-hover: #CEDDFD; // @presenter Color
317
+ --tag-color: var(--tag-operation-color-post); // @presenter Color
295
318
  }
296
319
 
297
320
  .tag-put {
298
- --tag-color: #f5901d; // @presenter Color
299
- --tag-bg-color: #fef1e2; // @presenter Color
300
- --tag-bg-color-hover: #FDE2C4; // @presenter Color
321
+ --tag-color: var(--tag-operation-color-put); // @presenter Color
301
322
  }
302
-
323
+
303
324
  .tag-patch {
304
- --tag-color: #f5c31d; // @presenter Color
305
- --tag-bg-color: #fdf6dd; // @presenter Color
306
- --tag-bg-color-hover: #FCF0C5; // @presenter Color
325
+ --tag-color: var(--tag-operation-color-patch); // @presenter Color
307
326
  }
308
327
 
309
328
  .tag-http-deprecated {
310
- --tag-color: var(--text-color-disabled); // @presenter Color
329
+ --tag-color: var(--tag-operation-color-deprecated) // @presenter Color
330
+ }
331
+
332
+ .tag-receive {
333
+ --tag-color: var(--tag-action-color-receive); // @presenter Color
311
334
  }
312
335
 
313
336
  .tag-send {
314
- --tag-color: #4144F6; // @presenter Color
315
- --tag-bg-color: #ECECFE; // @presenter Color
316
- --tag-bg-color-hover: #CFCFFC; // @presenter Color
337
+ --tag-color: var(--tag-action-color-send); // @presenter Color
317
338
  }
318
339
 
319
340
  .tag-pub {
320
- --tag-color: #4144F6; // @presenter Color
321
- --tag-bg-color: #ECECFE; // @presenter Color
322
- --tag-bg-color-hover: #CFCFFC; // @presenter Color
323
- }
324
-
325
- .tag-publish {
326
- --tag-color: #4144F6; // @presenter Color
327
- --tag-bg-color: #ECECFE; // @presenter Color
328
- --tag-bg-color-hover: #CFCFFC; // @presenter Color
329
- }
330
-
331
- .tag-receive {
332
- --tag-color: #4db144; // @presenter Color
333
- --tag-bg-color: #E5FDE2; // @presenter Color
334
- --tag-bg-color-hover: #D4FCCF; // @presenter Color
341
+ --tag-color: var(--tag-action-color-pub); // @presenter Color
335
342
  }
336
343
 
337
344
  .tag-sub {
338
- --tag-color: #4db144; // @presenter Color
339
- --tag-bg-color: #E5FDE2; // @presenter Color
340
- --tag-bg-color-hover: #D4FCCF; // @presenter Color
345
+ --tag-color: var(--tag-action-color-sub); // @presenter Color
341
346
  }
342
347
 
343
348
  .tag-cons {
344
- --tag-color: #4db144; // @presenter Color
345
- --tag-bg-color: #E5FDE2; // @presenter Color
346
- --tag-bg-color-hover: #D4FCCF; // @presenter Color
349
+ --tag-color: var(--tag-action-color-cons); // @presenter Color
350
+ }
351
+
352
+ .tag-publish {
353
+ --tag-color: var(--tag-action-color-publish); // @presenter Color
347
354
  }
348
355
 
349
356
  .tag-channel {
350
- --tag-color: #F0870E; // @presenter Color
351
- --tag-bg-color: #FDF1E2; // @presenter Color
352
- --tag-bg-color-hover: #FBE1C1; // @presenter Color
357
+ --tag-color: var(--tag-action-color-channel); // @presenter Color
353
358
  }
354
359
 
355
360
  .tag-topic {
356
- --tag-color: #F0870E; // @presenter Color
357
- --tag-bg-color: #FDF1E2; // @presenter Color
358
- --tag-bg-color-hover: #FBE1C1; // @presenter Color
361
+ --tag-color: var(--tag-action-color-channel); // @presenter Color
359
362
  }
360
363
 
361
364
  .tag-queue {
362
- --tag-color: #D72E81; // @presenter Color
363
- --tag-bg-color: #FAE5F0; // @presenter Color
364
- --tag-bg-color-hover: #F7D4E6; // @presenter Color
365
+ --tag-color: var(--tag-action-color-queue); // @presenter Color
365
366
  }
366
367
 
367
368
  .tag-exchange {
368
- --tag-color: #9B51E0; // @presenter Color
369
- --tag-bg-color: #F0E5FA; // @presenter Color
370
- --tag-bg-color-hover: #E6D4F7; // @presenter Color
369
+ --tag-color: var(--tag-action-color-exchange); // @presenter Color
371
370
  }
372
371
 
373
372
  // shorten alias for exchange tag:
374
373
  .tag-exch {
375
- --tag-color: #9B51E0; // @presenter Color
376
- --tag-bg-color: #F0E5FA; // @presenter Color
377
- --tag-bg-color-hover: #E6D4F7; // @presenter Color
378
- }
379
-
380
- /**
381
- * @tokens Tag variants
382
- */
383
-
384
- .tag-variant-filled {
385
- --tag-border-color: transparent;
386
- --tag-border-color-hover: transparent;
387
- }
388
-
389
- .tag-variant-outline {
390
- --tag-bg-color: transparent;
391
- --tag-bg-color-hover: transparent;
374
+ --tag-color: var(--tag-action-color-exchange); // @presenter Color
392
375
  }
393
376
 
394
377
  // @tokens End
@@ -7,14 +7,10 @@ export enum AiSearchError {
7
7
  EmptyResponse = 'empty_response',
8
8
  ErrorProcessingResponse = 'error_processing_response',
9
9
  }
10
-
11
- export const AiSearchConversationRole = {
12
- USER: 'user',
13
- ASSISTANT: 'assistant',
14
- } as const;
15
-
16
- export type AiSearchConversationRole =
17
- (typeof AiSearchConversationRole)[keyof typeof AiSearchConversationRole];
10
+ export const enum AiSearchConversationRole {
11
+ USER = 'user',
12
+ ASSISTANT = 'assistant',
13
+ }
18
14
 
19
15
  const defaultErrorConfig: AiSearchErrorConfig = {
20
16
  headerKey: 'search.ai.error.header',
@@ -18,7 +18,14 @@ const DEFAULT_ENABLED_ACTIONS = ['copy', 'view', 'chatgpt', 'claude'] as const;
18
18
  const CURSOR_URL =
19
19
  'cursor://anysphere.cursor-deeplink/mcp/install?name=$NAME&config=$BASE64_ENCODED_CONFIG';
20
20
 
21
- export type PageActionType = 'copy' | 'view' | 'chatgpt' | 'claude' | 'mcp-cursor';
21
+ export type PageActionType =
22
+ | 'copy'
23
+ | 'view'
24
+ | 'chatgpt'
25
+ | 'claude'
26
+ | 'mcp-cursor'
27
+ | 'mcp-claude'
28
+ | 'mcp-json';
22
29
 
23
30
  export function usePageActions(
24
31
  pageSlug: string,
@@ -42,7 +49,7 @@ export function usePageActions(
42
49
  const { isPublic } = usePageData() || {};
43
50
 
44
51
  const result: PageAction[] = useMemo(() => {
45
- if (shouldHideAllActions) {
52
+ if (shouldHideAllActions && !actions?.length) {
46
53
  return [];
47
54
  }
48
55
 
@@ -106,6 +113,30 @@ export function usePageActions(
106
113
  }
107
114
  },
108
115
  };
116
+ case 'mcp-claude':
117
+ if (!mcpUrl) {
118
+ return null;
119
+ }
120
+
121
+ return {
122
+ buttonText: 'Copy Claude configuration',
123
+ title: 'Copy Claude configuration',
124
+ description: 'Copy MCP configuration for Claude',
125
+ iconComponent: ClaudeIcon,
126
+ onClick: async () => {
127
+ ClipboardService.copyCustom(`claude mcp add --transport http server ${mcpUrl}`);
128
+ },
129
+ };
130
+ case 'mcp-json':
131
+ return {
132
+ buttonText: 'Copy MCP configuration',
133
+ title: 'Copy MCP JSON configuration',
134
+ description: 'Copy MCP JSON configuration',
135
+ iconComponent: CopyIcon,
136
+ onClick: async () => {
137
+ ClipboardService.copyCustom(generateMCPConfig());
138
+ },
139
+ };
109
140
  case 'copy':
110
141
  return {
111
142
  buttonText: translate('page.actions.copyButtonText', 'Copy'),