@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.
- package/lib/components/Catalog/CatalogEntity/CatalogEntity.d.ts +5 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntity.js +4 -4
- package/lib/components/Catalog/CatalogEntity/CatalogEntityMetadata.js +3 -3
- package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.js +1 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.js +1 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.d.ts +5 -1
- package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.js +9 -7
- package/lib/components/CodeBlock/CodeBlock.d.ts +5 -12
- package/lib/components/CodeBlock/CodeBlockControls.d.ts +3 -3
- package/lib/components/CodeBlock/CodeBlockControls.js +1 -1
- package/lib/components/CodeBlock/CodeBlockDropdown.d.ts +2 -2
- package/lib/components/CodeBlock/CodeBlockDropdown.js +4 -13
- package/lib/components/CodeBlock/CodeBlockTabs.d.ts +2 -2
- package/lib/components/CodeBlock/CodeBlockTabs.js +4 -3
- package/lib/components/JsonViewer/JsonViewer.d.ts +1 -1
- package/lib/components/JsonViewer/JsonViewer.js +9 -10
- package/lib/components/PageActions/PageActions.d.ts +4 -1
- package/lib/components/PageActions/PageActions.js +2 -2
- package/lib/components/Panel/variables.js +1 -0
- package/lib/components/Tag/Tag.d.ts +3 -2
- package/lib/components/Tag/Tag.js +21 -5
- package/lib/components/Tag/variables.dark.js +135 -0
- package/lib/components/Tag/variables.js +120 -58
- package/lib/core/constants/catalog.js +4 -0
- package/lib/core/contexts/CodeSnippetContext.d.ts +14 -6
- package/lib/core/contexts/CodeSnippetContext.js +57 -14
- package/lib/core/hooks/use-codeblock-tabs-controls.d.ts +2 -2
- package/lib/core/hooks/use-local-state.js +22 -18
- package/lib/core/hooks/use-page-actions.d.ts +2 -1
- package/lib/core/hooks/use-page-actions.js +48 -6
- package/lib/core/hooks/use-tabs.d.ts +11 -6
- package/lib/core/hooks/use-tabs.js +117 -207
- package/lib/core/openapi/index.d.ts +1 -0
- package/lib/core/openapi/index.js +3 -1
- package/lib/core/types/l10n.d.ts +1 -1
- package/lib/core/types/open-api-server.d.ts +1 -0
- package/lib/core/utils/index.d.ts +1 -0
- package/lib/core/utils/index.js +1 -0
- package/lib/core/utils/tabs.d.ts +1 -0
- package/lib/core/utils/tabs.js +8 -0
- package/lib/icons/CursorIcon/CursorIcon.d.ts +9 -0
- package/lib/icons/CursorIcon/CursorIcon.js +22 -0
- package/lib/layouts/DocumentationLayout.js +1 -3
- package/lib/markdoc/components/CodeGroup/CodeGroup.js +49 -27
- package/lib/markdoc/components/Tabs/Tab.js +1 -1
- package/lib/markdoc/components/Tabs/TabList.d.ts +2 -14
- package/lib/markdoc/components/Tabs/TabList.js +65 -16
- package/lib/markdoc/components/Tabs/Tabs.d.ts +2 -2
- package/lib/markdoc/components/Tabs/Tabs.js +11 -87
- package/lib/markdoc/tags/tabs.js +5 -0
- package/package.json +4 -4
- package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +15 -2
- package/src/components/Catalog/CatalogEntity/CatalogEntityMetadata.tsx +3 -3
- package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityApiDescriptionRelations.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityTeamRelations.tsx +1 -1
- package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +27 -18
- package/src/components/CodeBlock/CodeBlock.tsx +5 -11
- package/src/components/CodeBlock/CodeBlockControls.tsx +4 -7
- package/src/components/CodeBlock/CodeBlockDropdown.tsx +11 -20
- package/src/components/CodeBlock/CodeBlockTabs.tsx +8 -8
- package/src/components/JsonViewer/JsonViewer.tsx +16 -9
- package/src/components/PageActions/PageActions.tsx +6 -4
- package/src/components/Panel/variables.ts +1 -0
- package/src/components/Tag/Tag.tsx +33 -8
- package/src/components/Tag/variables.dark.ts +135 -0
- package/src/components/Tag/variables.ts +120 -58
- package/src/core/constants/catalog.ts +4 -0
- package/src/core/contexts/CodeSnippetContext.tsx +54 -18
- package/src/core/hooks/use-codeblock-tabs-controls.ts +2 -2
- package/src/core/hooks/use-local-state.ts +28 -19
- package/src/core/hooks/use-page-actions.ts +63 -6
- package/src/core/hooks/use-tabs.ts +160 -238
- package/src/core/openapi/index.ts +1 -0
- package/src/core/types/l10n.ts +13 -0
- package/src/core/types/open-api-server.ts +1 -0
- package/src/core/utils/index.ts +1 -0
- package/src/core/utils/tabs.ts +4 -0
- package/src/icons/CursorIcon/CursorIcon.tsx +35 -0
- package/src/layouts/DocumentationLayout.tsx +3 -10
- package/src/markdoc/components/CodeGroup/CodeGroup.tsx +81 -52
- package/src/markdoc/components/Tabs/Tab.tsx +1 -0
- package/src/markdoc/components/Tabs/TabList.tsx +85 -30
- package/src/markdoc/components/Tabs/Tabs.tsx +12 -125
- package/src/markdoc/tags/tabs.ts +5 -0
|
@@ -11,12 +11,13 @@ exports.tag = (0, styled_components_1.css) `
|
|
|
11
11
|
--tag-border-style: solid; //@presenter Border
|
|
12
12
|
--tag-border-radius: var(--border-radius); // @presenter BorderRadius
|
|
13
13
|
--tag-box-shadow: none; // @presenter Shadow
|
|
14
|
+
--tag-border-radius-focused: var(--border-radius); // @presenter BorderRadius
|
|
14
15
|
|
|
15
16
|
--tag-status-dot-color-default: var(--color-persian-green-7);
|
|
16
17
|
--tag-badge-size: var(--spacing-xs);
|
|
17
|
-
--tag-badge-border-width:
|
|
18
|
-
--tag-badge-border-color:
|
|
19
|
-
|
|
18
|
+
--tag-badge-border-width: 2px;
|
|
19
|
+
--tag-badge-border-color: var(--border-color-secondary); // @presenter Color
|
|
20
|
+
--tag-border-color-focused: var(--color-blue-4); // @presenter Color
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* @tokens Tag spacing
|
|
@@ -34,7 +35,7 @@ exports.tag = (0, styled_components_1.css) `
|
|
|
34
35
|
--tag-large-content-padding: var(--tag-large-padding-vertical); //@presenter Spacing
|
|
35
36
|
|
|
36
37
|
--tag-margin: 0 5px 0 0; //@presenter Spacing
|
|
37
|
-
--tag-gap:
|
|
38
|
+
--tag-gap: 4px; //@presenter Spacing
|
|
38
39
|
|
|
39
40
|
/**
|
|
40
41
|
* @tokens Tag size
|
|
@@ -60,8 +61,8 @@ exports.tag = (0, styled_components_1.css) `
|
|
|
60
61
|
* @tokens Tag icon
|
|
61
62
|
*/
|
|
62
63
|
|
|
63
|
-
--tag-icon-width:
|
|
64
|
-
--tag-icon-height:
|
|
64
|
+
--tag-icon-width: 14px; // @presenter Spacing
|
|
65
|
+
--tag-icon-height: 14px; // @presenter Spacing
|
|
65
66
|
|
|
66
67
|
/**
|
|
67
68
|
* @tokens Tag colors
|
|
@@ -74,85 +75,127 @@ exports.tag = (0, styled_components_1.css) `
|
|
|
74
75
|
.tag-draft,
|
|
75
76
|
.tag-schema,
|
|
76
77
|
.tag-default {
|
|
77
|
-
--tag-color: var(--text-color-
|
|
78
|
+
--tag-color: var(--text-color-secondary); // @presenter Color
|
|
78
79
|
--tag-bg-color: var(--color-warm-grey-2); // @presenter Color
|
|
79
80
|
--tag-border-color: var(--border-color-primary); // @presenter Color
|
|
81
|
+
--tag-bg-color-hover: var(--color-warm-grey-3); // @presenter Color
|
|
80
82
|
--tag-close-button-bg-color-hover: var(--color-warm-grey-3); // @presenter Color
|
|
83
|
+
--tag-border-color-hover: var(--color-warm-grey-5); // @presenter Color
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.tag-green {
|
|
87
|
+
--tag-color: var(--color-green-8); // @presenter Color
|
|
88
|
+
--tag-bg-color: var(--color-green-1); // @presenter Color
|
|
89
|
+
--tag-border-color: var(--color-green-5); // @presenter Color
|
|
90
|
+
--tag-bg-color-hover: var(--color-green-2); // @presenter Color
|
|
91
|
+
--tag-close-button-bg-color-hover: var(--color-green-2); // @presenter Color
|
|
92
|
+
--tag-border-color-hover: var(--color-green-6); // @presenter Color
|
|
81
93
|
}
|
|
82
94
|
|
|
83
|
-
.tag-green,
|
|
84
95
|
.tag-success,
|
|
85
96
|
.tag-approved {
|
|
86
97
|
--tag-color: var(--color-success-active); // @presenter Color
|
|
87
98
|
--tag-bg-color: var(--color-success-bg); // @presenter Color
|
|
88
|
-
--tag-border-color: var(--color-success-
|
|
99
|
+
--tag-border-color: var(--color-success-border); // @presenter Color
|
|
89
100
|
--tag-close-button-bg-color-hover: var(--color-success-bg-hover); // @presenter Color
|
|
101
|
+
--tag-bg-color-hover: var(--color-success-bg-hover); // @presenter Color
|
|
102
|
+
--tag-border-color-hover: var(--color-success-border-hover); // @presenter Color
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.tag-red {
|
|
106
|
+
--tag-color: var(--color-red-7); // @presenter Color
|
|
107
|
+
--tag-bg-color: var(--color-red-1); // @presenter Color
|
|
108
|
+
--tag-border-color: var(--color-red-3); // @presenter Color
|
|
109
|
+
--tag-close-button-bg-color-hover: var(--color-red-2); // @presenter Color
|
|
110
|
+
--tag-bg-color-hover: var(--color-red-2); // @presenter Color
|
|
111
|
+
--tag-border-color-hover: var(--color-red-5); // @presenter Color
|
|
90
112
|
}
|
|
91
113
|
|
|
92
|
-
.tag-red,
|
|
93
114
|
.tag-error,
|
|
94
115
|
.tag-declined {
|
|
95
116
|
--tag-color: var(--color-error-active); // @presenter Color
|
|
96
117
|
--tag-bg-color: var(--color-error-bg); // @presenter Color
|
|
97
|
-
--tag-border-color: var(--color-error-
|
|
118
|
+
--tag-border-color: var(--color-error-border); // @presenter Color
|
|
98
119
|
--tag-close-button-bg-color-hover: var(--color-error-hover); // @presenter Color
|
|
120
|
+
--tag-bg-color-hover: var(--color-error-bg-hover); // @presenter Color
|
|
121
|
+
--tag-border-color-hover: var(--color-error-border-hover); // @presenter Color
|
|
99
122
|
}
|
|
100
123
|
|
|
101
|
-
.tag-gold,
|
|
102
124
|
.tag-warning,
|
|
103
125
|
.tag-deprecated {
|
|
104
126
|
--tag-color: var(--color-warning-active); // @presenter Color
|
|
105
127
|
--tag-bg-color: var(--color-warning-bg); // @presenter Color
|
|
106
|
-
--tag-border-color: var(--color-warning-
|
|
128
|
+
--tag-border-color: var(--color-warning-border); // @presenter Color
|
|
107
129
|
--tag-close-button-bg-color-hover: var(--color-warning-hover); // @presenter Color
|
|
130
|
+
--tag-bg-color-hover: var(--color-warning-bg-hover); // @presenter Color
|
|
131
|
+
--tag-border-color-hover: var(--color-warning-border-hover); // @presenter Color
|
|
108
132
|
}
|
|
109
133
|
|
|
110
|
-
.tag-blue
|
|
111
|
-
|
|
134
|
+
.tag-blue {
|
|
135
|
+
--tag-color: var(--color-blue-7); // @presenter Color
|
|
136
|
+
--tag-bg-color: var(--color-blue-1); // @presenter Color
|
|
137
|
+
--tag-border-color: var(--color-blue-4); // @presenter Color
|
|
138
|
+
--tag-bg-color-hover: var(--color-blue-2); // @presenter Color
|
|
139
|
+
--tag-close-button-bg-color-hover: var(--color-blue-2); // @presenter Color
|
|
140
|
+
--tag-border-color-hover: var(--color-blue-6); // @presenter Color
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.tag-processing,
|
|
144
|
+
.tag-info {
|
|
112
145
|
--tag-color: var(--color-info-active); // @presenter Color
|
|
113
146
|
--tag-bg-color: var(--color-info-bg); // @presenter Color
|
|
114
|
-
--tag-border-color: var(--color-info-
|
|
147
|
+
--tag-border-color: var(--color-info-border); // @presenter Color
|
|
115
148
|
--tag-close-button-bg-color-hover: var(--color-info-hover); // @presenter Color
|
|
149
|
+
--tag-bg-color-hover: var(--color-info-bg-hover); // @presenter Color
|
|
150
|
+
--tag-border-color-hover: var(--color-info-border-hover); // @presenter Color
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.tag-link {
|
|
154
|
+
--tag-color: var(--color-info-active); // @presenter Color
|
|
155
|
+
--tag-bg-color: var(--color-info-bg); // @presenter Color
|
|
156
|
+
--tag-border-color: var(--color-info-border); // @presenter Color
|
|
157
|
+
--tag-close-button-bg-color-hover: var(--color-info-hover); // @presenter Color
|
|
158
|
+
--tag-bg-color-hover: var(--color-info-bg-hover); // @presenter Color
|
|
159
|
+
--tag-border-color-hover: var(--color-info-border-hover); // @presenter Color
|
|
116
160
|
}
|
|
117
161
|
|
|
118
162
|
.tag-purple,
|
|
119
163
|
.tag-head {
|
|
120
164
|
--tag-color: var(--color-purple-7); // @presenter Color
|
|
121
165
|
--tag-bg-color: var(--color-purple-1); // @presenter Color
|
|
122
|
-
--tag-border-color: var(--color-purple-
|
|
123
|
-
--tag-
|
|
166
|
+
--tag-border-color: var(--color-purple-4); // @presenter Color
|
|
167
|
+
--tag-bg-color-hover: var(--color-purple-2); // @presenter Color
|
|
168
|
+
--tag-close-button-bg-color-hover: var(--color-purple-2); // @presenter Color
|
|
169
|
+
--tag-border-color-hover: var(--color-purple-6); // @presenter Color
|
|
124
170
|
}
|
|
125
171
|
|
|
126
|
-
.tag-
|
|
127
|
-
.tag-option
|
|
128
|
-
|
|
129
|
-
.tag-link {
|
|
130
|
-
--tag-color: var(--color-turquoise-7); // @presenter Color
|
|
172
|
+
.tag-turquoise,
|
|
173
|
+
.tag-option {
|
|
174
|
+
--tag-color: var(--color-turquoise-8); // @presenter Color
|
|
131
175
|
--tag-bg-color: var(--color-turquoise-1); // @presenter Color
|
|
132
|
-
--tag-border-color: var(--color-turquoise-
|
|
133
|
-
--tag-
|
|
176
|
+
--tag-border-color: var(--color-turquoise-5); // @presenter Color
|
|
177
|
+
--tag-bg-color-hover: var(--color-turquoise-2); // @presenter Color
|
|
178
|
+
--tag-close-button-bg-color-hover: var(--color-turquoise-2); // @presenter Color
|
|
179
|
+
--tag-border-color-hover: var(--color-turquoise-7); // @presenter Color
|
|
134
180
|
}
|
|
135
181
|
|
|
136
|
-
.tag-
|
|
137
|
-
--tag-color: var(--color-carrot-
|
|
182
|
+
.tag-carrot {
|
|
183
|
+
--tag-color: var(--color-carrot-8); // @presenter Color
|
|
138
184
|
--tag-bg-color: var(--color-carrot-1); // @presenter Color
|
|
139
|
-
--tag-border-color: var(--color-carrot-
|
|
140
|
-
--tag-
|
|
185
|
+
--tag-border-color: var(--color-carrot-6); // @presenter Color
|
|
186
|
+
--tag-bg-color-hover: var(--color-carrot-2); // @presenter Color
|
|
187
|
+
--tag-close-button-bg-color-hover: var(--color-carrot-2); // @presenter Color
|
|
188
|
+
--tag-border-color-hover: var(--color-carrot-7); // @presenter Color
|
|
141
189
|
}
|
|
142
190
|
|
|
143
191
|
.tag-magenta,
|
|
144
192
|
.tag-hook {
|
|
145
193
|
--tag-color: var(--color-magenta-7); // @presenter Color
|
|
146
194
|
--tag-bg-color: var(--color-magenta-1); // @presenter Color
|
|
147
|
-
--tag-border-color: var(--color-magenta-
|
|
148
|
-
--tag-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
.tag-lime {
|
|
152
|
-
--tag-color: var(--color-green-7); // @presenter Color
|
|
153
|
-
--tag-bg-color: none; // @presenter Color
|
|
154
|
-
--tag-border-color: var(--color-green-7); // @presenter Color
|
|
155
|
-
--tag-close-button-bg-color-hover: var(--color-green-3); // @presenter Color
|
|
195
|
+
--tag-border-color: var(--color-magenta-3); // @presenter Color
|
|
196
|
+
--tag-bg-color-hover: var(--color-magenta-2); // @presenter Color
|
|
197
|
+
--tag-close-button-bg-color-hover: var(--color-magenta-2); // @presenter Color
|
|
198
|
+
--tag-border-color-hover: var(--color-magenta-5); // @presenter Color
|
|
156
199
|
}
|
|
157
200
|
|
|
158
201
|
.tag-product {
|
|
@@ -164,37 +207,56 @@ exports.tag = (0, styled_components_1.css) `
|
|
|
164
207
|
|
|
165
208
|
.tag-grass {
|
|
166
209
|
--tag-color: var(--color-grass-8); // @presenter Color
|
|
167
|
-
--tag-bg-color:
|
|
210
|
+
--tag-bg-color: var(--color-grass-1); // @presenter Color
|
|
168
211
|
--tag-border-color: var(--color-grass-4); // @presenter Color
|
|
169
|
-
--tag-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
.tag-purple {
|
|
173
|
-
--tag-color: var(--color-purple-7); // @presenter Color
|
|
174
|
-
--tag-bg-color: transparent; // @presenter Color
|
|
175
|
-
--tag-border-color: var(--color-purple-4); // @presenter Color
|
|
176
|
-
--tag-close-button-bg-color-hover: var(--color-purple-1); // @presenter Color
|
|
212
|
+
--tag-bg-color-hover: var(--color-grass-2); // @presenter Color
|
|
213
|
+
--tag-close-button-bg-color-hover: var(--color-grass-2); // @presenter Color
|
|
214
|
+
--tag-border-color-hover: var(--color-grass-6); // @presenter Color
|
|
177
215
|
}
|
|
178
216
|
|
|
179
217
|
.tag-sky {
|
|
180
|
-
--tag-color: var(--color-sky-
|
|
181
|
-
--tag-bg-color:
|
|
218
|
+
--tag-color: var(--color-sky-8); // @presenter Color
|
|
219
|
+
--tag-bg-color: var(--color-sky-1); // @presenter Color
|
|
182
220
|
--tag-border-color: var(--color-sky-5); // @presenter Color
|
|
221
|
+
--tag-bg-color-hover: var(--color-sky-2); // @presenter Color
|
|
183
222
|
--tag-close-button-bg-color-hover: var(--color-sky-2); // @presenter Color
|
|
223
|
+
--tag-border-color-hover: var(--color-sky-7); // @presenter Color
|
|
184
224
|
}
|
|
185
225
|
|
|
186
226
|
.tag-raspberry {
|
|
187
227
|
--tag-color: var(--color-raspberry-7); // @presenter Color
|
|
188
|
-
--tag-bg-color:
|
|
228
|
+
--tag-bg-color: var(--color-raspberry-1); // @presenter Color
|
|
189
229
|
--tag-border-color: var(--color-raspberry-3); // @presenter Color
|
|
190
|
-
--tag-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
--tag-
|
|
197
|
-
--tag-
|
|
230
|
+
--tag-bg-color-hover: var(--color-raspberry-2); // @presenter Color
|
|
231
|
+
--tag-close-button-bg-color-hover: var(--color-raspberry-2); // @presenter Color
|
|
232
|
+
--tag-border-color-hover: var(--color-raspberry-5); // @presenter Color
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.tag-orange {
|
|
236
|
+
--tag-color: var(--color-orange-7); // @presenter Color
|
|
237
|
+
--tag-bg-color: var(--color-orange-1); // @presenter Color
|
|
238
|
+
--tag-border-color: var(--color-orange-4); // @presenter Color
|
|
239
|
+
--tag-bg-color-hover: var(--color-orange-2); // @presenter Color
|
|
240
|
+
--tag-close-button-bg-color-hover: var(--color-orange-2); // @presenter Color
|
|
241
|
+
--tag-border-color-hover: var(--color-orange-5); // @presenter Color
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.tag-persian-green {
|
|
245
|
+
--tag-color: var(--color-persian-green-8); // @presenter Color
|
|
246
|
+
--tag-bg-color: var(--color-persian-green-1); // @presenter Color
|
|
247
|
+
--tag-border-color: var(--color-persian-green-5); // @presenter Color
|
|
248
|
+
--tag-bg-color-hover: var(--color-persian-green-2); // @presenter Color
|
|
249
|
+
--tag-close-button-bg-color-hover: var(--color-persian-green-2); // @presenter Color
|
|
250
|
+
--tag-border-color-hover: var(--color-persian-green-6); // @presenter Color
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.tag-blueberry {
|
|
254
|
+
--tag-color: var(--color-blueberry-7); // @presenter Color
|
|
255
|
+
--tag-bg-color: var(--color-blueberry-1); // @presenter Color
|
|
256
|
+
--tag-border-color: var(--color-blueberry-4); // @presenter Color
|
|
257
|
+
--tag-bg-color-hover: var(--color-blueberry-2); // @presenter Color
|
|
258
|
+
--tag-close-button-bg-color-hover: var(--color-blueberry-2); // @presenter Color
|
|
259
|
+
--tag-border-color-hover: var(--color-blueberry-6); // @presenter Color
|
|
198
260
|
}
|
|
199
261
|
|
|
200
262
|
/**
|
|
@@ -37,6 +37,8 @@ exports.reverseRelationMap = {
|
|
|
37
37
|
memberOf: 'hasMember',
|
|
38
38
|
triggers: 'triggeredBy',
|
|
39
39
|
triggeredBy: 'triggers',
|
|
40
|
+
returns: 'returnedBy',
|
|
41
|
+
returnedBy: 'returns',
|
|
40
42
|
};
|
|
41
43
|
exports.relationTypeMap = {
|
|
42
44
|
partOf: 'Part of',
|
|
@@ -64,6 +66,8 @@ exports.relationTypeMap = {
|
|
|
64
66
|
memberOf: 'Member of',
|
|
65
67
|
triggers: 'Triggers',
|
|
66
68
|
triggeredBy: 'Triggered by',
|
|
69
|
+
returns: 'Returns',
|
|
70
|
+
returnedBy: 'Returned by',
|
|
67
71
|
};
|
|
68
72
|
var GraphHandleType;
|
|
69
73
|
(function (GraphHandleType) {
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
activeSnippetName: string;
|
|
3
|
-
setActiveSnippetName: (name: string) => void;
|
|
4
|
-
};
|
|
1
|
+
import React from 'react';
|
|
5
2
|
export declare const CODE_GROUP_SNIPPET_NAME_KEY = "redocly:codeGroupSnippetName";
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
type CodeSnippetContextType = {
|
|
4
|
+
activeSnippets: Record<string, string>;
|
|
5
|
+
setActiveSnippet: (groupId: string, snippetId: string) => void;
|
|
6
|
+
};
|
|
7
|
+
export declare const CodeSnippetContext: React.Context<CodeSnippetContextType | null>;
|
|
8
|
+
export declare function CodeSnippetProvider({ children }: {
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
}): React.JSX.Element;
|
|
11
|
+
export declare const useCodeSnippetContext: () => CodeSnippetContextType;
|
|
12
|
+
export declare const useActiveCodeSnippetId: (groupId?: string, availableSnippets?: {
|
|
13
|
+
id: string;
|
|
14
|
+
}[]) => [string, (id: string) => void];
|
|
15
|
+
export {};
|
|
@@ -1,23 +1,66 @@
|
|
|
1
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
|
+
};
|
|
2
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CodeSnippetContext = exports.CODE_GROUP_SNIPPET_NAME_KEY = void 0;
|
|
4
|
-
exports.
|
|
5
|
-
const react_1 = require("react");
|
|
26
|
+
exports.useActiveCodeSnippetId = exports.useCodeSnippetContext = exports.CodeSnippetContext = exports.CODE_GROUP_SNIPPET_NAME_KEY = void 0;
|
|
27
|
+
exports.CodeSnippetProvider = CodeSnippetProvider;
|
|
28
|
+
const react_1 = __importStar(require("react"));
|
|
29
|
+
const use_local_state_1 = require("../hooks/use-local-state");
|
|
6
30
|
exports.CODE_GROUP_SNIPPET_NAME_KEY = 'redocly:codeGroupSnippetName';
|
|
7
31
|
exports.CodeSnippetContext = (0, react_1.createContext)(null);
|
|
8
|
-
function
|
|
32
|
+
function CodeSnippetProvider({ children }) {
|
|
33
|
+
const [activeSnippets, setActiveSnippets] = (0, use_local_state_1.useLocalState)(exports.CODE_GROUP_SNIPPET_NAME_KEY, {});
|
|
34
|
+
const setActiveSnippet = (0, react_1.useCallback)((groupId, snippetId) => {
|
|
35
|
+
setActiveSnippets(Object.assign(Object.assign({}, activeSnippets), { [groupId]: snippetId }));
|
|
36
|
+
}, [activeSnippets, setActiveSnippets]);
|
|
37
|
+
const contextValue = { activeSnippets, setActiveSnippet };
|
|
38
|
+
return react_1.default.createElement(exports.CodeSnippetContext.Provider, { value: contextValue }, children);
|
|
39
|
+
}
|
|
40
|
+
const useCodeSnippetContext = () => {
|
|
9
41
|
const context = (0, react_1.useContext)(exports.CodeSnippetContext);
|
|
10
42
|
if (!context) {
|
|
11
43
|
throw new Error('useCodeSnippetContext must be used within a CodeSnippetContext');
|
|
12
44
|
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
45
|
+
return context;
|
|
46
|
+
};
|
|
47
|
+
exports.useCodeSnippetContext = useCodeSnippetContext;
|
|
48
|
+
const useActiveCodeSnippetId = (groupId, availableSnippets) => {
|
|
49
|
+
const { activeSnippets, setActiveSnippet } = (0, exports.useCodeSnippetContext)();
|
|
50
|
+
const storedSnippetId = groupId ? activeSnippets[groupId] || '' : '';
|
|
51
|
+
const activeId = (0, react_1.useMemo)(() => {
|
|
52
|
+
var _a;
|
|
53
|
+
if (!(availableSnippets === null || availableSnippets === void 0 ? void 0 : availableSnippets.length))
|
|
54
|
+
return storedSnippetId;
|
|
55
|
+
const found = storedSnippetId && availableSnippets.find((s) => s.id === storedSnippetId);
|
|
56
|
+
return found ? storedSnippetId : ((_a = availableSnippets[0]) === null || _a === void 0 ? void 0 : _a.id) || '';
|
|
57
|
+
}, [storedSnippetId, availableSnippets]);
|
|
58
|
+
const setActiveSnippetId = (0, react_1.useCallback)((id) => {
|
|
59
|
+
if (groupId) {
|
|
60
|
+
setActiveSnippet(groupId, id);
|
|
61
|
+
}
|
|
62
|
+
}, [groupId, setActiveSnippet]);
|
|
63
|
+
return [activeId, setActiveSnippetId];
|
|
64
|
+
};
|
|
65
|
+
exports.useActiveCodeSnippetId = useActiveCodeSnippetId;
|
|
23
66
|
//# sourceMappingURL=CodeSnippetContext.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CodeBlockItems } from '../../components/CodeBlock/CodeBlock';
|
|
2
2
|
type CodeBlockTabsProps = {
|
|
3
|
-
tabs:
|
|
3
|
+
tabs: CodeBlockItems;
|
|
4
4
|
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
5
5
|
tabRefs: React.RefObject<HTMLButtonElement[]>;
|
|
6
6
|
};
|
|
@@ -2,31 +2,35 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useLocalState = useLocalState;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
const js_utils_1 = require("../utils/js-utils");
|
|
6
|
+
function getStoredValue(key, fallback) {
|
|
7
|
+
if (!(0, js_utils_1.isBrowser)())
|
|
8
|
+
return fallback;
|
|
9
9
|
try {
|
|
10
10
|
const savedValue = localStorage.getItem(key);
|
|
11
|
-
|
|
12
|
-
return JSON.parse(savedValue);
|
|
13
|
-
}
|
|
11
|
+
return savedValue ? JSON.parse(savedValue) : fallback;
|
|
14
12
|
}
|
|
15
|
-
catch (
|
|
16
|
-
|
|
13
|
+
catch (_a) {
|
|
14
|
+
return fallback;
|
|
17
15
|
}
|
|
18
|
-
return initialValue;
|
|
19
16
|
}
|
|
20
17
|
function useLocalState(key, initialValue) {
|
|
21
|
-
const [value, setValue] = (0, react_1.useState)(
|
|
18
|
+
const [value, setValue] = (0, react_1.useState)(initialValue);
|
|
19
|
+
// Load stored value from localStorage after component mounts
|
|
20
|
+
// This ensures SSR compatibility: server and client both start with initialValue,
|
|
21
|
+
// then client loads the actual stored value without hydration mismatch
|
|
22
22
|
(0, react_1.useEffect)(() => {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
if (!(0, js_utils_1.isBrowser)())
|
|
24
|
+
return;
|
|
25
|
+
setValue(getStoredValue(key, initialValue));
|
|
26
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
27
|
+
}, [key]);
|
|
28
|
+
const handleSetValue = (0, react_1.useCallback)((newValue) => {
|
|
29
|
+
setValue(newValue);
|
|
30
|
+
if ((0, js_utils_1.isBrowser)()) {
|
|
31
|
+
localStorage.setItem(key, JSON.stringify(newValue));
|
|
28
32
|
}
|
|
29
|
-
}, [key
|
|
30
|
-
return [value,
|
|
33
|
+
}, [key]);
|
|
34
|
+
return [value, handleSetValue];
|
|
31
35
|
}
|
|
32
36
|
//# sourceMappingURL=use-local-state.js.map
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import type { PageAction } from '../types';
|
|
2
|
-
export
|
|
2
|
+
export type PageActionType = 'copy' | 'view' | 'chatgpt' | 'claude' | 'mcp-cursor';
|
|
3
|
+
export declare function usePageActions(pageSlug: string, mcpUrl?: string, actions?: PageActionType[]): PageAction[];
|
|
@@ -19,9 +19,11 @@ const use_theme_hooks_1 = require("./use-theme-hooks");
|
|
|
19
19
|
const use_theme_config_1 = require("./use-theme-config");
|
|
20
20
|
const clipboard_service_1 = require("../utils/clipboard-service");
|
|
21
21
|
const dom_1 = require("../utils/dom");
|
|
22
|
+
const CursorIcon_1 = require("../../icons/CursorIcon/CursorIcon");
|
|
22
23
|
const DEFAULT_ENABLED_ACTIONS = ['copy', 'view', 'chatgpt', 'claude'];
|
|
23
|
-
|
|
24
|
-
|
|
24
|
+
const CURSOR_URL = 'cursor://anysphere.cursor-deeplink/mcp/install?name=$NAME&config=$BASE64_ENCODED_CONFIG';
|
|
25
|
+
function usePageActions(pageSlug, mcpUrl, actions) {
|
|
26
|
+
var _a, _b, _c;
|
|
25
27
|
const { useTranslate, usePageData, usePageProps, usePageSharedData } = (0, use_theme_hooks_1.useThemeHooks)();
|
|
26
28
|
const { translate } = useTranslate();
|
|
27
29
|
const themeConfig = (0, use_theme_config_1.useThemeConfig)();
|
|
@@ -29,7 +31,7 @@ function usePageActions(pageSlug) {
|
|
|
29
31
|
const openApiSharedData = usePageSharedData('openAPIDocsStore');
|
|
30
32
|
const shouldHideAllActions = shouldHidePageActions(pageProps, themeConfig, (_a = openApiSharedData === null || openApiSharedData === void 0 ? void 0 : openApiSharedData.options) === null || _a === void 0 ? void 0 : _a.excludeFromSearch);
|
|
31
33
|
const { isPublic } = usePageData() || {};
|
|
32
|
-
const
|
|
34
|
+
const result = (0, react_1.useMemo)(() => {
|
|
33
35
|
var _a, _b;
|
|
34
36
|
if (shouldHideAllActions) {
|
|
35
37
|
return [];
|
|
@@ -43,9 +45,41 @@ function usePageActions(pageSlug) {
|
|
|
43
45
|
url.searchParams.set('q', externalAiPrompt);
|
|
44
46
|
return url.toString();
|
|
45
47
|
}
|
|
46
|
-
return (((_b = (_a = themeConfig.navigation) === null || _a === void 0 ? void 0 : _a.actions) === null || _b === void 0 ? void 0 : _b.items) || DEFAULT_ENABLED_ACTIONS)
|
|
48
|
+
return (((_b = (_a = themeConfig.navigation) === null || _a === void 0 ? void 0 : _a.actions) === null || _b === void 0 ? void 0 : _b.items) || actions || DEFAULT_ENABLED_ACTIONS)
|
|
47
49
|
.map((action) => {
|
|
50
|
+
function generateMCPConfig(isCursor) {
|
|
51
|
+
const jsonConfig = {
|
|
52
|
+
'mcp-server': {
|
|
53
|
+
url: mcpUrl,
|
|
54
|
+
description: 'MCP Server',
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
if (isCursor) {
|
|
58
|
+
const url = CURSOR_URL.replace('$NAME', 'mcp-server').replace('$BASE64_ENCODED_CONFIG', btoa(JSON.stringify(jsonConfig['mcp-server'])));
|
|
59
|
+
return url;
|
|
60
|
+
}
|
|
61
|
+
return JSON.stringify(jsonConfig, null, 2);
|
|
62
|
+
}
|
|
48
63
|
switch (action) {
|
|
64
|
+
case 'mcp-cursor':
|
|
65
|
+
if (!mcpUrl) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
buttonText: translate('page.actions.cursorMcpButtonText', 'Connect to Cursor'),
|
|
70
|
+
title: translate('page.actions.cursorMcpTitle', 'Connect to Cursor'),
|
|
71
|
+
description: translate('page.actions.cursorMcpDescription', 'Install MCP server on Cursor'),
|
|
72
|
+
iconComponent: CursorIcon_1.CursorIcon,
|
|
73
|
+
onClick: () => {
|
|
74
|
+
try {
|
|
75
|
+
const url = generateMCPConfig(true);
|
|
76
|
+
window.open(url, '_blank');
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
console.error(error);
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
};
|
|
49
83
|
case 'copy':
|
|
50
84
|
return {
|
|
51
85
|
buttonText: translate('page.actions.copyButtonText', 'Copy'),
|
|
@@ -99,8 +133,16 @@ function usePageActions(pageSlug) {
|
|
|
99
133
|
}
|
|
100
134
|
})
|
|
101
135
|
.filter((action) => action !== null);
|
|
102
|
-
}, [
|
|
103
|
-
|
|
136
|
+
}, [
|
|
137
|
+
shouldHideAllActions,
|
|
138
|
+
pageSlug,
|
|
139
|
+
(_c = (_b = themeConfig.navigation) === null || _b === void 0 ? void 0 : _b.actions) === null || _c === void 0 ? void 0 : _c.items,
|
|
140
|
+
actions,
|
|
141
|
+
mcpUrl,
|
|
142
|
+
translate,
|
|
143
|
+
isPublic,
|
|
144
|
+
]);
|
|
145
|
+
return result;
|
|
104
146
|
}
|
|
105
147
|
function shouldHidePageActions(pageProps, themeConfig, openapiExcludeFromSearch) {
|
|
106
148
|
var _a, _b, _c, _d, _e, _f;
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
type UseTabsProps = {
|
|
2
|
-
|
|
2
|
+
activeTab: string;
|
|
3
|
+
onTabChange: (tab: string) => void;
|
|
3
4
|
totalTabs: number;
|
|
4
5
|
containerRef?: React.RefObject<HTMLElement | null>;
|
|
5
6
|
};
|
|
6
|
-
export declare function useTabs({
|
|
7
|
-
activeTab: string;
|
|
8
|
-
setActiveTab: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
7
|
+
export declare function useTabs({ activeTab, onTabChange, totalTabs, containerRef }: UseTabsProps): {
|
|
9
8
|
setTabRef: (element: HTMLButtonElement | null, index: number) => void;
|
|
10
9
|
onTabClick: (labelOrIndex: string | number) => void;
|
|
11
10
|
handleKeyboard: (event: React.KeyboardEvent, index: number) => void;
|
|
12
|
-
getTabId: (label: string, index: number) => string;
|
|
13
11
|
visibleTabs: number[];
|
|
14
12
|
overflowTabs: number[];
|
|
15
|
-
ready: boolean;
|
|
16
13
|
allTabsHidden: boolean;
|
|
17
14
|
};
|
|
15
|
+
type UseActiveTabProps = {
|
|
16
|
+
initialTab: string;
|
|
17
|
+
tabsId?: string;
|
|
18
|
+
};
|
|
19
|
+
export declare const useActiveTab: ({ initialTab, tabsId }: UseActiveTabProps) => {
|
|
20
|
+
activeTab: string;
|
|
21
|
+
setActiveTab: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
22
|
+
};
|
|
18
23
|
export {};
|