@gradio/core 0.23.2 → 0.24.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/CHANGELOG.md +18 -0
- package/dist/src/api_docs/ApiBanner.svelte +1 -1
- package/dist/src/api_docs/ApiDocs.svelte +52 -270
- package/dist/src/api_docs/MCPSnippet.svelte +571 -0
- package/dist/src/api_docs/MCPSnippet.svelte.d.ts +47 -0
- package/package.json +32 -32
- package/src/api_docs/ApiBanner.svelte +1 -1
- package/src/api_docs/ApiDocs.svelte +58 -271
- package/src/api_docs/MCPSnippet.svelte +602 -0
package/package.json
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gradio/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"devDependencies": {
|
|
6
|
-
"@gradio/atoms": "^0.16.3",
|
|
7
6
|
"@gradio/accordion": "^0.5.20",
|
|
8
|
-
"@gradio/annotatedimage": "^0.9.
|
|
9
|
-
"@gradio/
|
|
10
|
-
"@gradio/
|
|
11
|
-
"@gradio/button": "^0.5.7",
|
|
7
|
+
"@gradio/annotatedimage": "^0.9.26",
|
|
8
|
+
"@gradio/atoms": "^0.16.3",
|
|
9
|
+
"@gradio/audio": "^0.17.22",
|
|
12
10
|
"@gradio/browserstate": "^0.3.2",
|
|
13
|
-
"@gradio/
|
|
11
|
+
"@gradio/box": "^0.2.21",
|
|
12
|
+
"@gradio/button": "^0.5.8",
|
|
14
13
|
"@gradio/checkbox": "^0.4.26",
|
|
15
14
|
"@gradio/checkboxgroup": "^0.6.25",
|
|
16
|
-
"@gradio/
|
|
17
|
-
"@gradio/
|
|
18
|
-
"@gradio/
|
|
19
|
-
"@gradio/dataframe": "^0.18.3",
|
|
20
|
-
"@gradio/datetime": "^0.3.18",
|
|
15
|
+
"@gradio/chatbot": "^0.26.19",
|
|
16
|
+
"@gradio/client": "^1.15.7",
|
|
17
|
+
"@gradio/code": "^0.14.12",
|
|
21
18
|
"@gradio/colorpicker": "^0.4.25",
|
|
22
|
-
"@gradio/downloadbutton": "^0.4.7",
|
|
23
|
-
"@gradio/dropdown": "^0.9.25",
|
|
24
19
|
"@gradio/column": "^0.2.1",
|
|
25
|
-
"@gradio/
|
|
20
|
+
"@gradio/dataset": "^0.4.29",
|
|
21
|
+
"@gradio/dataframe": "^0.18.4",
|
|
22
|
+
"@gradio/datetime": "^0.3.18",
|
|
23
|
+
"@gradio/downloadbutton": "^0.4.8",
|
|
24
|
+
"@gradio/dropdown": "^0.9.25",
|
|
26
25
|
"@gradio/fallback": "^0.4.25",
|
|
27
|
-
"@gradio/
|
|
26
|
+
"@gradio/file": "^0.12.25",
|
|
28
27
|
"@gradio/form": "^0.2.21",
|
|
29
|
-
"@gradio/
|
|
30
|
-
"@gradio/
|
|
28
|
+
"@gradio/fileexplorer": "^0.5.36",
|
|
29
|
+
"@gradio/gallery": "^0.15.28",
|
|
31
30
|
"@gradio/highlightedtext": "^0.9.8",
|
|
32
31
|
"@gradio/html": "^0.6.17",
|
|
33
32
|
"@gradio/icons": "^0.12.0",
|
|
34
|
-
"@gradio/image": "^0.22.
|
|
35
|
-
"@gradio/
|
|
36
|
-
"@gradio/
|
|
33
|
+
"@gradio/image": "^0.22.14",
|
|
34
|
+
"@gradio/imageeditor": "^0.16.2",
|
|
35
|
+
"@gradio/imageslider": "^0.2.10",
|
|
37
36
|
"@gradio/json": "^0.5.27",
|
|
37
|
+
"@gradio/group": "^0.2.0",
|
|
38
38
|
"@gradio/label": "^0.5.17",
|
|
39
|
+
"@gradio/model3d": "^0.14.22",
|
|
39
40
|
"@gradio/markdown": "^0.13.18",
|
|
40
|
-
"@gradio/model3d": "^0.14.21",
|
|
41
|
-
"@gradio/multimodaltextbox": "^0.10.13",
|
|
42
41
|
"@gradio/nativeplot": "^0.7.2",
|
|
42
|
+
"@gradio/multimodaltextbox": "^0.10.14",
|
|
43
43
|
"@gradio/number": "^0.6.2",
|
|
44
44
|
"@gradio/paramviewer": "^0.7.13",
|
|
45
45
|
"@gradio/radio": "^0.7.8",
|
|
46
46
|
"@gradio/plot": "^0.9.20",
|
|
47
|
-
"@gradio/
|
|
47
|
+
"@gradio/row": "^0.2.1",
|
|
48
48
|
"@gradio/sidebar": "^0.1.18",
|
|
49
|
+
"@gradio/simpledropdown": "^0.3.25",
|
|
50
|
+
"@gradio/simpleimage": "^0.8.36",
|
|
49
51
|
"@gradio/simpletextbox": "^0.3.26",
|
|
50
|
-
"@gradio/row": "^0.2.1",
|
|
51
|
-
"@gradio/simpleimage": "^0.8.35",
|
|
52
52
|
"@gradio/sketchbox": "^0.6.13",
|
|
53
53
|
"@gradio/statustracker": "^0.10.15",
|
|
54
|
-
"@gradio/slider": "^0.6.14",
|
|
55
54
|
"@gradio/state": "^0.1.2",
|
|
55
|
+
"@gradio/slider": "^0.6.14",
|
|
56
56
|
"@gradio/tabitem": "^0.5.0",
|
|
57
57
|
"@gradio/tabs": "^0.4.5",
|
|
58
58
|
"@gradio/textbox": "^0.10.18",
|
|
59
|
-
"@gradio/
|
|
59
|
+
"@gradio/upload": "^0.16.12",
|
|
60
60
|
"@gradio/timer": "^0.4.5",
|
|
61
|
-
"@gradio/
|
|
62
|
-
"@gradio/
|
|
61
|
+
"@gradio/uploadbutton": "^0.9.8",
|
|
62
|
+
"@gradio/theme": "^0.4.0",
|
|
63
63
|
"@gradio/utils": "^0.10.2",
|
|
64
|
-
"@gradio/
|
|
65
|
-
"@gradio/
|
|
64
|
+
"@gradio/wasm": "^0.18.1",
|
|
65
|
+
"@gradio/video": "^0.14.22"
|
|
66
66
|
},
|
|
67
67
|
"msw": {
|
|
68
68
|
"workerDirectory": "public"
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
import bash from "./img/bash.svg";
|
|
21
21
|
import ResponseSnippet from "./ResponseSnippet.svelte";
|
|
22
22
|
import mcp from "./img/mcp.svg";
|
|
23
|
+
import MCPSnippet from "./MCPSnippet.svelte";
|
|
23
24
|
|
|
24
25
|
export let dependencies: Dependency[];
|
|
25
26
|
export let root: string;
|
|
@@ -109,7 +110,27 @@
|
|
|
109
110
|
|
|
110
111
|
const dispatch = createEventDispatcher();
|
|
111
112
|
|
|
112
|
-
|
|
113
|
+
$: selected_tools_array = Array.from(selected_tools);
|
|
114
|
+
$: selected_tools_without_prefix =
|
|
115
|
+
selected_tools_array.map(remove_tool_prefix);
|
|
116
|
+
$: mcp_server_url = `${root}gradio_api/mcp/sse`;
|
|
117
|
+
$: mcp_server_url_streamable =
|
|
118
|
+
selected_tools_array.length > 0 &&
|
|
119
|
+
selected_tools_array.length < tools.length
|
|
120
|
+
? `${root}gradio_api/mcp/?tools=${selected_tools_without_prefix.join(",")}`
|
|
121
|
+
: `${root}gradio_api/mcp/`;
|
|
122
|
+
|
|
123
|
+
$: if (mcp_json_sse && selected_tools.size > 0) {
|
|
124
|
+
const baseUrl =
|
|
125
|
+
selected_tools_array.length > 0 &&
|
|
126
|
+
selected_tools_array.length < tools.length
|
|
127
|
+
? `${root}gradio_api/mcp/sse?tools=${selected_tools_without_prefix.join(",")}`
|
|
128
|
+
: `${root}gradio_api/mcp/sse`;
|
|
129
|
+
mcp_json_sse.mcpServers.gradio.url = baseUrl;
|
|
130
|
+
if (mcp_json_stdio) {
|
|
131
|
+
mcp_json_stdio.mcpServers.gradio.args[1] = baseUrl;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
113
134
|
|
|
114
135
|
interface ToolParameter {
|
|
115
136
|
title?: string;
|
|
@@ -131,6 +152,15 @@
|
|
|
131
152
|
let mcp_json_sse: any;
|
|
132
153
|
let mcp_json_stdio: any;
|
|
133
154
|
let file_data_present = false;
|
|
155
|
+
let selected_tools: Set<string> = new Set();
|
|
156
|
+
let tool_prefix = space_id ? space_id.split("/").pop() + "_" : "";
|
|
157
|
+
|
|
158
|
+
function remove_tool_prefix(toolName: string): string {
|
|
159
|
+
if (tool_prefix && toolName.startsWith(tool_prefix)) {
|
|
160
|
+
return toolName.slice(tool_prefix.length);
|
|
161
|
+
}
|
|
162
|
+
return toolName;
|
|
163
|
+
}
|
|
134
164
|
|
|
135
165
|
const upload_file_mcp_server = {
|
|
136
166
|
command: "uvx",
|
|
@@ -144,9 +174,10 @@
|
|
|
144
174
|
]
|
|
145
175
|
};
|
|
146
176
|
|
|
147
|
-
async function
|
|
177
|
+
async function fetch_mcp_tools() {
|
|
148
178
|
try {
|
|
149
|
-
|
|
179
|
+
let schema_url = `${root}gradio_api/mcp/schema`;
|
|
180
|
+
const response = await fetch(schema_url);
|
|
150
181
|
const schema = await response.json();
|
|
151
182
|
file_data_present = schema
|
|
152
183
|
.map((tool: any) => tool.meta?.file_data_present)
|
|
@@ -158,17 +189,20 @@
|
|
|
158
189
|
parameters: tool.inputSchema?.properties || {},
|
|
159
190
|
expanded: false
|
|
160
191
|
}));
|
|
192
|
+
selected_tools = new Set(tools.map((tool) => tool.name));
|
|
161
193
|
headers = schema.map((tool: any) => tool.meta?.headers || []).flat();
|
|
162
194
|
if (headers.length > 0) {
|
|
163
195
|
mcp_json_sse = {
|
|
164
196
|
mcpServers: {
|
|
165
197
|
gradio: {
|
|
166
198
|
url: mcp_server_url,
|
|
167
|
-
headers: headers.reduce(
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
199
|
+
headers: headers.reduce(
|
|
200
|
+
(accumulator: Record<string, string>, current_key: string) => {
|
|
201
|
+
accumulator[current_key] = "<YOUR_HEADER_VALUE>";
|
|
202
|
+
return accumulator;
|
|
203
|
+
},
|
|
204
|
+
{}
|
|
205
|
+
)
|
|
172
206
|
}
|
|
173
207
|
}
|
|
174
208
|
};
|
|
@@ -236,7 +270,7 @@
|
|
|
236
270
|
.then((response) => {
|
|
237
271
|
mcp_server_active = response.ok;
|
|
238
272
|
if (mcp_server_active) {
|
|
239
|
-
|
|
273
|
+
fetch_mcp_tools();
|
|
240
274
|
if (!is_valid_language(lang_param)) {
|
|
241
275
|
current_language = "mcp";
|
|
242
276
|
}
|
|
@@ -335,135 +369,18 @@
|
|
|
335
369
|
target="_blank">docs</a
|
|
336
370
|
>) if you don't already have it installed.
|
|
337
371
|
{:else if current_language == "mcp"}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
</Block>
|
|
351
|
-
<p> </p>
|
|
352
|
-
<strong>Available MCP Tools</strong>
|
|
353
|
-
<div class="mcp-tools">
|
|
354
|
-
{#each tools as tool}
|
|
355
|
-
<div class="tool-item">
|
|
356
|
-
<button
|
|
357
|
-
class="tool-header"
|
|
358
|
-
on:click={() => (tool.expanded = !tool.expanded)}
|
|
359
|
-
>
|
|
360
|
-
<span
|
|
361
|
-
><span class="tool-name">{tool.name}</span>
|
|
362
|
-
<span class="tool-description"
|
|
363
|
-
>{tool.description
|
|
364
|
-
? tool.description
|
|
365
|
-
: "⚠︎ No description provided in function docstring"}</span
|
|
366
|
-
></span
|
|
367
|
-
>
|
|
368
|
-
<span class="tool-arrow"
|
|
369
|
-
>{tool.expanded ? "▼" : "▶"}</span
|
|
370
|
-
>
|
|
371
|
-
</button>
|
|
372
|
-
{#if tool.expanded}
|
|
373
|
-
<div class="tool-content">
|
|
374
|
-
{#if Object.keys(tool.parameters).length > 0}
|
|
375
|
-
<div class="tool-parameters">
|
|
376
|
-
{#each Object.entries(tool.parameters) as [name, param]}
|
|
377
|
-
<div class="parameter">
|
|
378
|
-
<code>{name}</code>
|
|
379
|
-
<span class="parameter-type">
|
|
380
|
-
({param.type}{param.default !== undefined
|
|
381
|
-
? `, default: ${JSON.stringify(param.default)}`
|
|
382
|
-
: ""})
|
|
383
|
-
</span>
|
|
384
|
-
<p class="parameter-description">
|
|
385
|
-
{param.description
|
|
386
|
-
? param.description
|
|
387
|
-
: "⚠︎ No description for this parameter in function docstring"}
|
|
388
|
-
</p>
|
|
389
|
-
</div>
|
|
390
|
-
{/each}
|
|
391
|
-
</div>
|
|
392
|
-
{:else}
|
|
393
|
-
<p>Takes no input parameters</p>
|
|
394
|
-
{/if}
|
|
395
|
-
</div>
|
|
396
|
-
{/if}
|
|
397
|
-
</div>
|
|
398
|
-
{/each}
|
|
399
|
-
</div>
|
|
400
|
-
<p> </p>
|
|
401
|
-
|
|
402
|
-
<strong>SSE Transport</strong>: To add this MCP to clients that
|
|
403
|
-
support SSE (e.g. Cursor, Windsurf, Cline), simply add the
|
|
404
|
-
following configuration to your MCP config.
|
|
405
|
-
<p> </p>
|
|
406
|
-
<Block>
|
|
407
|
-
<code>
|
|
408
|
-
<div class="copy">
|
|
409
|
-
<CopyButton
|
|
410
|
-
code={JSON.stringify(mcp_json_sse, null, 2)}
|
|
411
|
-
/>
|
|
412
|
-
</div>
|
|
413
|
-
<div>
|
|
414
|
-
<pre>{JSON.stringify(mcp_json_sse, null, 2)}</pre>
|
|
415
|
-
</div>
|
|
416
|
-
</code>
|
|
417
|
-
</Block>
|
|
418
|
-
{#if file_data_present}
|
|
419
|
-
<p> </p>
|
|
420
|
-
<em>Note about files</em>: Gradio MCP servers that have files
|
|
421
|
-
as inputs need the files as URLs, so the
|
|
422
|
-
<code>upload_files_to_gradio</code>
|
|
423
|
-
tool is included for your convenience. This tool can upload files
|
|
424
|
-
located in the specified <code>UPLOAD_DIRECTORY</code>
|
|
425
|
-
argument (an absolute path in your local machine) or any of its
|
|
426
|
-
subdirectories to the Gradio app. You can omit this tool if you
|
|
427
|
-
are fine manually uploading files yourself and providing the URLs.
|
|
428
|
-
Before using this tool, you must have
|
|
429
|
-
<a
|
|
430
|
-
href="https://docs.astral.sh/uv/getting-started/installation/"
|
|
431
|
-
target="_blank">uv installed</a
|
|
432
|
-
>.
|
|
433
|
-
<p> </p>
|
|
434
|
-
{/if}
|
|
435
|
-
|
|
436
|
-
<strong>STDIO Transport</strong>: For clients that only support
|
|
437
|
-
stdio (e.g. Claude Desktop), first
|
|
438
|
-
<a href="https://nodejs.org/en/download/" target="_blank"
|
|
439
|
-
>install Node.js</a
|
|
440
|
-
>. Then, you can use the following command:
|
|
441
|
-
<p> </p>
|
|
442
|
-
<Block>
|
|
443
|
-
<code>
|
|
444
|
-
<div class="copy">
|
|
445
|
-
<CopyButton
|
|
446
|
-
code={JSON.stringify(mcp_json_stdio, null, 2)}
|
|
447
|
-
/>
|
|
448
|
-
</div>
|
|
449
|
-
<div>
|
|
450
|
-
<pre>{JSON.stringify(mcp_json_stdio, null, 2)}</pre>
|
|
451
|
-
</div>
|
|
452
|
-
</code>
|
|
453
|
-
</Block>
|
|
454
|
-
<p> </p>
|
|
455
|
-
<p>
|
|
456
|
-
<a href={mcp_docs} target="_blank">
|
|
457
|
-
Read more about MCP in the Gradio docs
|
|
458
|
-
</a>
|
|
459
|
-
</p>
|
|
460
|
-
{:else}
|
|
461
|
-
This Gradio app can also serve as an MCP server, with an MCP
|
|
462
|
-
tool corresponding to each API endpoint. To enable this, launch
|
|
463
|
-
this Gradio app with <code>.launch(mcp_server=True)</code> or
|
|
464
|
-
set the <code>GRADIO_MCP_SERVER</code> env variable to
|
|
465
|
-
<code>"True"</code>.
|
|
466
|
-
{/if}
|
|
372
|
+
<MCPSnippet
|
|
373
|
+
{mcp_server_active}
|
|
374
|
+
{mcp_server_url}
|
|
375
|
+
{mcp_server_url_streamable}
|
|
376
|
+
tools={tools.filter((tool) => selected_tools.has(tool.name))}
|
|
377
|
+
all_tools={tools}
|
|
378
|
+
bind:selected_tools
|
|
379
|
+
{mcp_json_sse}
|
|
380
|
+
{mcp_json_stdio}
|
|
381
|
+
{file_data_present}
|
|
382
|
+
{mcp_docs}
|
|
383
|
+
/>
|
|
467
384
|
{:else}
|
|
468
385
|
1. Confirm that you have cURL installed on your system.
|
|
469
386
|
{/if}
|
|
@@ -637,6 +554,7 @@
|
|
|
637
554
|
color: var(--body-text-color);
|
|
638
555
|
line-height: 1;
|
|
639
556
|
user-select: none;
|
|
557
|
+
font-size: var(--text-lg);
|
|
640
558
|
}
|
|
641
559
|
|
|
642
560
|
.current-lang {
|
|
@@ -657,7 +575,8 @@
|
|
|
657
575
|
|
|
658
576
|
.snippet img {
|
|
659
577
|
margin-right: var(--size-1-5);
|
|
660
|
-
width: var(--size-
|
|
578
|
+
width: var(--size-4);
|
|
579
|
+
height: var(--size-4);
|
|
661
580
|
}
|
|
662
581
|
|
|
663
582
|
.header {
|
|
@@ -756,136 +675,4 @@
|
|
|
756
675
|
.api-name {
|
|
757
676
|
color: var(--color-accent);
|
|
758
677
|
}
|
|
759
|
-
|
|
760
|
-
.mcp-url {
|
|
761
|
-
padding: var(--size-2);
|
|
762
|
-
position: relative;
|
|
763
|
-
}
|
|
764
|
-
|
|
765
|
-
.mcp-url label {
|
|
766
|
-
display: block;
|
|
767
|
-
margin-bottom: var(--size-2);
|
|
768
|
-
font-weight: 600;
|
|
769
|
-
color: var(--body-text-color);
|
|
770
|
-
}
|
|
771
|
-
|
|
772
|
-
.mcp-url .textbox {
|
|
773
|
-
display: flex;
|
|
774
|
-
align-items: center;
|
|
775
|
-
gap: var(--size-2);
|
|
776
|
-
border: 1px solid var(--border-color-primary);
|
|
777
|
-
border-radius: var(--radius-sm);
|
|
778
|
-
padding: var(--size-2);
|
|
779
|
-
background: var(--background-fill-primary);
|
|
780
|
-
}
|
|
781
|
-
|
|
782
|
-
.mcp-url input {
|
|
783
|
-
flex: 1;
|
|
784
|
-
border: none;
|
|
785
|
-
background: none;
|
|
786
|
-
color: var(--body-text-color);
|
|
787
|
-
font-family: var(--font-mono);
|
|
788
|
-
font-size: var(--text-md);
|
|
789
|
-
width: 100%;
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
.mcp-url input:focus {
|
|
793
|
-
outline: none;
|
|
794
|
-
}
|
|
795
|
-
|
|
796
|
-
.status-indicator {
|
|
797
|
-
display: inline-block;
|
|
798
|
-
margin-right: var(--size-1-5);
|
|
799
|
-
position: relative;
|
|
800
|
-
top: -1px;
|
|
801
|
-
font-size: 0.8em;
|
|
802
|
-
}
|
|
803
|
-
|
|
804
|
-
.status-indicator.active {
|
|
805
|
-
color: #4caf50;
|
|
806
|
-
animation: pulse 1s infinite;
|
|
807
|
-
}
|
|
808
|
-
|
|
809
|
-
@keyframes pulse {
|
|
810
|
-
0% {
|
|
811
|
-
opacity: 1;
|
|
812
|
-
}
|
|
813
|
-
50% {
|
|
814
|
-
opacity: 0.6;
|
|
815
|
-
}
|
|
816
|
-
100% {
|
|
817
|
-
opacity: 1;
|
|
818
|
-
}
|
|
819
|
-
}
|
|
820
|
-
|
|
821
|
-
.mcp-tools {
|
|
822
|
-
margin-top: var(--size-4);
|
|
823
|
-
border: 1px solid var(--border-color-primary);
|
|
824
|
-
border-radius: var(--radius-md);
|
|
825
|
-
overflow: hidden;
|
|
826
|
-
}
|
|
827
|
-
|
|
828
|
-
.tool-item {
|
|
829
|
-
border-bottom: 1px solid var(--border-color-primary);
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
.tool-item:last-child {
|
|
833
|
-
border-bottom: none;
|
|
834
|
-
}
|
|
835
|
-
|
|
836
|
-
.tool-header {
|
|
837
|
-
width: 100%;
|
|
838
|
-
display: flex;
|
|
839
|
-
justify-content: space-between;
|
|
840
|
-
align-items: center;
|
|
841
|
-
padding: var(--size-3);
|
|
842
|
-
background: var(--background-fill-primary);
|
|
843
|
-
border: none;
|
|
844
|
-
cursor: pointer;
|
|
845
|
-
text-align: left;
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
.tool-header:hover {
|
|
849
|
-
background: var(--background-fill-secondary);
|
|
850
|
-
}
|
|
851
|
-
|
|
852
|
-
.tool-name {
|
|
853
|
-
font-family: var(--font-mono);
|
|
854
|
-
font-weight: 600;
|
|
855
|
-
}
|
|
856
|
-
|
|
857
|
-
.tool-arrow {
|
|
858
|
-
color: var(--body-text-color-subdued);
|
|
859
|
-
}
|
|
860
|
-
|
|
861
|
-
.tool-content {
|
|
862
|
-
padding: var(--size-3);
|
|
863
|
-
background: var(--background-fill-secondary);
|
|
864
|
-
}
|
|
865
|
-
|
|
866
|
-
.tool-description {
|
|
867
|
-
margin-bottom: var(--size-3);
|
|
868
|
-
color: var(--body-text-color);
|
|
869
|
-
}
|
|
870
|
-
.parameter {
|
|
871
|
-
margin-bottom: var(--size-2);
|
|
872
|
-
padding: var(--size-2);
|
|
873
|
-
background: var(--background-fill-primary);
|
|
874
|
-
border-radius: var(--radius-sm);
|
|
875
|
-
}
|
|
876
|
-
|
|
877
|
-
.parameter code {
|
|
878
|
-
font-weight: 600;
|
|
879
|
-
color: var(--color-accent);
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
.parameter-type {
|
|
883
|
-
color: var(--body-text-color-subdued);
|
|
884
|
-
margin-left: var(--size-1);
|
|
885
|
-
}
|
|
886
|
-
|
|
887
|
-
.parameter-description {
|
|
888
|
-
margin-top: var(--size-1);
|
|
889
|
-
color: var(--body-text-color);
|
|
890
|
-
}
|
|
891
678
|
</style>
|