@gradio/core 0.29.1 → 1.0.0-dev.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 +30 -0
- package/dist/src/Blocks.svelte +32 -30
- package/dist/src/Blocks.svelte.d.ts +1 -2
- package/dist/src/api_docs/ApiDocs.svelte +2 -2
- package/dist/src/api_docs/NoApi.svelte +1 -1
- package/dist/src/init.js +7 -2
- package/dist/src/types.d.ts +1 -1
- package/package.json +35 -35
- package/src/Blocks.svelte +34 -30
- package/src/api_docs/ApiDocs.svelte +2 -2
- package/src/api_docs/NoApi.svelte +1 -1
- package/src/init.ts +11 -2
- package/src/types.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# @gradio/core
|
|
2
2
|
|
|
3
|
+
## 1.0.0-dev.0
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- [#12069](https://github.com/gradio-app/gradio/pull/12069) [`9de88ca`](https://github.com/gradio-app/gradio/commit/9de88ca470ce529366d259f0deaa955f658000b9) - Rename show_api. Thanks @freddyaboulton!
|
|
8
|
+
|
|
9
|
+
### Dependency updates
|
|
10
|
+
|
|
11
|
+
- @gradio/client@2.0.0-dev.1
|
|
12
|
+
- @gradio/gallery@0.15.35-dev.1
|
|
13
|
+
|
|
14
|
+
## 0.29.2
|
|
15
|
+
|
|
16
|
+
### Dependency updates
|
|
17
|
+
|
|
18
|
+
- @gradio/upload@0.17.2-dev.0
|
|
19
|
+
- @gradio/code@0.15.1-dev.0
|
|
20
|
+
- @gradio/client@2.0.0-dev.0
|
|
21
|
+
- @gradio/gallery@0.15.35-dev.0
|
|
22
|
+
- @gradio/image@0.23.2-dev.0
|
|
23
|
+
- @gradio/button@0.5.14-dev.0
|
|
24
|
+
- @gradio/file@0.13.1-dev.0
|
|
25
|
+
- @gradio/video@0.17.0-dev.0
|
|
26
|
+
|
|
27
|
+
## 0.29.2
|
|
28
|
+
|
|
29
|
+
### Fixes
|
|
30
|
+
|
|
31
|
+
- [#11994](https://github.com/gradio-app/gradio/pull/11994) [`d6f591e`](https://github.com/gradio-app/gradio/commit/d6f591e823dad8e7387de4124fa1e3ab16203a73) - Add render_children parameter to Tab component. Thanks @freddyaboulton!
|
|
32
|
+
|
|
3
33
|
## 0.29.1
|
|
4
34
|
|
|
5
35
|
### Fixes
|
package/dist/src/Blocks.svelte
CHANGED
|
@@ -19,8 +19,7 @@ export let dependencies;
|
|
|
19
19
|
export let title = "Gradio";
|
|
20
20
|
export let target;
|
|
21
21
|
export let autoscroll;
|
|
22
|
-
export let
|
|
23
|
-
export let show_footer = true;
|
|
22
|
+
export let footer_links = ["gradio", "settings", "api"];
|
|
24
23
|
export let control_page_title = false;
|
|
25
24
|
export let app_mode;
|
|
26
25
|
export let theme_mode;
|
|
@@ -79,9 +78,9 @@ async function run() {
|
|
|
79
78
|
layout_creating = false;
|
|
80
79
|
}
|
|
81
80
|
export let search_params;
|
|
82
|
-
let api_docs_visible = search_params.get("view") === "api" &&
|
|
81
|
+
let api_docs_visible = search_params.get("view") === "api" && footer_links.includes("api");
|
|
83
82
|
let settings_visible = search_params.get("view") === "settings";
|
|
84
|
-
let api_recorder_visible = search_params.get("view") === "api-recorder" &&
|
|
83
|
+
let api_recorder_visible = search_params.get("view") === "api-recorder" && footer_links.includes("api");
|
|
85
84
|
let allow_zoom = true;
|
|
86
85
|
let allow_video_trim = true;
|
|
87
86
|
let ApiDocs = null;
|
|
@@ -395,7 +394,7 @@ async function trigger_api_call(dep_index, trigger_id = null, event_data = null)
|
|
|
395
394
|
} else if (submit_map.has(dep_index) && dep.inputs.some((id) => get_stream_state(id) === "waiting")) {
|
|
396
395
|
return;
|
|
397
396
|
} else if (submit_map.has(dep_index) && dep.inputs.some((id) => get_stream_state(id) === "open")) {
|
|
398
|
-
await app.
|
|
397
|
+
await app.post_data(
|
|
399
398
|
// @ts-ignore
|
|
400
399
|
`${app.config.root + app.config.api_prefix}/stream/${submit_map.get(dep_index).event_id()}`,
|
|
401
400
|
{ ...payload2, session_hash: app.session_hash }
|
|
@@ -718,7 +717,6 @@ async function handle_mount() {
|
|
|
718
717
|
if (submit_map.has(dep_id)) {
|
|
719
718
|
const url = `${app.config.root + app.config.api_prefix}/stream/${submit_map.get(dep_id).event_id()}`;
|
|
720
719
|
app.post_data(`${url}/close`, {});
|
|
721
|
-
app.close_ws(url);
|
|
722
720
|
}
|
|
723
721
|
});
|
|
724
722
|
} else {
|
|
@@ -897,9 +895,9 @@ onMount(() => {
|
|
|
897
895
|
{/if}
|
|
898
896
|
</div>
|
|
899
897
|
|
|
900
|
-
{#if
|
|
898
|
+
{#if footer_links.length > 0}
|
|
901
899
|
<footer bind:clientHeight={footer_height}>
|
|
902
|
-
{#if
|
|
900
|
+
{#if footer_links.includes("api")}
|
|
903
901
|
<button
|
|
904
902
|
on:click={() => {
|
|
905
903
|
set_api_docs_visible(!api_docs_visible);
|
|
@@ -917,18 +915,19 @@ onMount(() => {
|
|
|
917
915
|
{/if}
|
|
918
916
|
<img src={api_logo} alt={$_("common.logo")} />
|
|
919
917
|
</button>
|
|
918
|
+
{/if}
|
|
919
|
+
{#if footer_links.includes("gradio")}
|
|
920
920
|
<div class="divider show-api-divider">·</div>
|
|
921
|
+
<a
|
|
922
|
+
href="https://gradio.app"
|
|
923
|
+
class="built-with"
|
|
924
|
+
target="_blank"
|
|
925
|
+
rel="noreferrer"
|
|
926
|
+
>
|
|
927
|
+
{$_("common.built_with_gradio")}
|
|
928
|
+
<img src={logo} alt={$_("common.logo")} />
|
|
929
|
+
</a>
|
|
921
930
|
{/if}
|
|
922
|
-
<a
|
|
923
|
-
href="https://gradio.app"
|
|
924
|
-
class="built-with"
|
|
925
|
-
target="_blank"
|
|
926
|
-
rel="noreferrer"
|
|
927
|
-
>
|
|
928
|
-
{$_("common.built_with_gradio")}
|
|
929
|
-
<img src={logo} alt={$_("common.logo")} />
|
|
930
|
-
</a>
|
|
931
|
-
<div class="divider" class:hidden={!$is_screen_recording}>·</div>
|
|
932
931
|
<button
|
|
933
932
|
class:hidden={!$is_screen_recording}
|
|
934
933
|
on:click={() => {
|
|
@@ -940,18 +939,21 @@ onMount(() => {
|
|
|
940
939
|
<img src={record_stop} alt={$_("common.stop_recording")} />
|
|
941
940
|
</button>
|
|
942
941
|
<div class="divider">·</div>
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
942
|
+
{#if footer_links.includes("settings")}
|
|
943
|
+
<div class="divider" class:hidden={!$is_screen_recording}>·</div>
|
|
944
|
+
<button
|
|
945
|
+
on:click={() => {
|
|
946
|
+
set_settings_visible(!settings_visible);
|
|
947
|
+
}}
|
|
948
|
+
on:mouseenter={() => {
|
|
949
|
+
loadSettings();
|
|
950
|
+
}}
|
|
951
|
+
class="settings"
|
|
952
|
+
>
|
|
953
|
+
{$_("common.settings")}
|
|
954
|
+
<img src={settings_logo} alt={$_("common.settings")} />
|
|
955
|
+
</button>
|
|
956
|
+
{/if}
|
|
955
957
|
</footer>
|
|
956
958
|
{/if}
|
|
957
959
|
</div>
|
|
@@ -26,7 +26,7 @@ const bash_docs = "https://www.gradio.app/guides/querying-gradio-apps-with-curl"
|
|
|
26
26
|
const spaces_docs_suffix = "#connecting-to-a-hugging-face-space";
|
|
27
27
|
const mcp_docs = "https://www.gradio.app/guides/building-mcp-server-with-gradio";
|
|
28
28
|
let api_count = dependencies.filter(
|
|
29
|
-
(dependency) => dependency.
|
|
29
|
+
(dependency) => dependency.api_visibility === "public"
|
|
30
30
|
).length;
|
|
31
31
|
if (root === "") {
|
|
32
32
|
root = location.protocol + "//" + location.host + location.pathname;
|
|
@@ -379,7 +379,7 @@ onMount(() => {
|
|
|
379
379
|
|
|
380
380
|
{#if current_language !== "mcp"}
|
|
381
381
|
{#each dependencies as dependency}
|
|
382
|
-
{#if dependency.
|
|
382
|
+
{#if dependency.api_visibility === "public" && info.named_endpoints["/" + dependency.api_name]}
|
|
383
383
|
<div class="endpoint-container">
|
|
384
384
|
<CodeSnippet
|
|
385
385
|
endpoint_parameters={info.named_endpoints[
|
package/dist/src/init.js
CHANGED
|
@@ -622,8 +622,11 @@ function get_selected_tab_id(component, layout, components) {
|
|
|
622
622
|
function process_children_visibility(layout, components, parent_tabs_context) {
|
|
623
623
|
const visible_components = new Set();
|
|
624
624
|
if (layout.children) {
|
|
625
|
+
const layout_component = components.find((c) => c.id === layout.id);
|
|
625
626
|
for (const child of layout.children) {
|
|
626
|
-
const child_visible = determine_visible_components(child, components,
|
|
627
|
+
const child_visible = determine_visible_components(child, components, layout_component?.type === "tabitem"
|
|
628
|
+
? layout_component.props.children_visible !== false
|
|
629
|
+
: true, parent_tabs_context);
|
|
627
630
|
child_visible.forEach((id) => visible_components.add(id));
|
|
628
631
|
}
|
|
629
632
|
}
|
|
@@ -658,7 +661,9 @@ function determine_visible_components(layout, components, parent_visible = true,
|
|
|
658
661
|
child_visible.forEach((id) => visible_components.add(id));
|
|
659
662
|
}
|
|
660
663
|
else if (component.type === "tabitem") {
|
|
661
|
-
|
|
664
|
+
const tab_item_visible = is_tab_item_visible(component, component_visible, parent_tabs_context);
|
|
665
|
+
if (tab_item_visible ||
|
|
666
|
+
(!tab_item_visible && component.props.render_children)) {
|
|
662
667
|
visible_components.add(layout.id);
|
|
663
668
|
const child_visible = process_children_visibility(layout, components, parent_tabs_context);
|
|
664
669
|
child_visible.forEach((id) => visible_components.add(id));
|
package/dist/src/types.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ export interface Dependency {
|
|
|
66
66
|
trigger_only_on_failure?: boolean;
|
|
67
67
|
trigger_mode: "once" | "multiple" | "always_last";
|
|
68
68
|
final_event: Payload | null;
|
|
69
|
-
|
|
69
|
+
api_visibility: "public" | "private" | "undocumented";
|
|
70
70
|
rendered_in: number | null;
|
|
71
71
|
render_id: number | null;
|
|
72
72
|
connection: "stream" | "sse";
|
package/package.json
CHANGED
|
@@ -1,68 +1,68 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gradio/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-dev.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"devDependencies": {
|
|
6
6
|
"@gradio/accordion": "^0.5.24",
|
|
7
|
-
"@gradio/annotatedimage": "^0.10.0",
|
|
8
7
|
"@gradio/atoms": "^0.18.1",
|
|
9
|
-
"@gradio/audio": "^0.19.2",
|
|
10
|
-
"@gradio/browserstate": "^0.3.2",
|
|
11
8
|
"@gradio/box": "^0.2.25",
|
|
12
|
-
"@gradio/
|
|
13
|
-
"@gradio/
|
|
9
|
+
"@gradio/annotatedimage": "^0.10.1-dev.0",
|
|
10
|
+
"@gradio/audio": "^0.19.4-dev.0",
|
|
11
|
+
"@gradio/browserstate": "^0.3.2",
|
|
12
|
+
"@gradio/chatbot": "^0.28.0-dev.1",
|
|
13
|
+
"@gradio/button": "^0.5.14-dev.0",
|
|
14
14
|
"@gradio/checkboxgroup": "^0.7.0",
|
|
15
15
|
"@gradio/checkbox": "^0.4.31",
|
|
16
|
-
"@gradio/client": "^
|
|
17
|
-
"@gradio/code": "^0.15.0",
|
|
18
|
-
"@gradio/column": "^0.2.2",
|
|
16
|
+
"@gradio/client": "^2.0.0-dev.1",
|
|
19
17
|
"@gradio/colorpicker": "^0.4.29",
|
|
20
|
-
"@gradio/
|
|
21
|
-
"@gradio/
|
|
18
|
+
"@gradio/column": "^0.2.2",
|
|
19
|
+
"@gradio/dataframe": "^0.20.2-dev.0",
|
|
20
|
+
"@gradio/code": "^0.15.1-dev.0",
|
|
21
|
+
"@gradio/dataset": "^0.4.35-dev.0",
|
|
22
22
|
"@gradio/datetime": "^0.3.22",
|
|
23
|
-
"@gradio/
|
|
23
|
+
"@gradio/dropdown": "^0.10.5",
|
|
24
|
+
"@gradio/downloadbutton": "^0.4.13-dev.0",
|
|
25
|
+
"@gradio/file": "^0.13.1-dev.0",
|
|
24
26
|
"@gradio/fallback": "^0.4.29",
|
|
25
|
-
"@gradio/
|
|
26
|
-
"@gradio/dropdown": "^0.10.4",
|
|
27
|
-
"@gradio/fileexplorer": "^0.5.41",
|
|
27
|
+
"@gradio/fileexplorer": "^0.5.42-dev.0",
|
|
28
28
|
"@gradio/form": "^0.2.25",
|
|
29
|
-
"@gradio/gallery": "^0.15.
|
|
29
|
+
"@gradio/gallery": "^0.15.35-dev.1",
|
|
30
30
|
"@gradio/group": "^0.2.1",
|
|
31
|
-
"@gradio/icons": "^0.14.0",
|
|
32
31
|
"@gradio/highlightedtext": "^0.9.13",
|
|
32
|
+
"@gradio/icons": "^0.14.0",
|
|
33
|
+
"@gradio/image": "^0.23.2-dev.0",
|
|
34
|
+
"@gradio/imageslider": "^0.3.1-dev.0",
|
|
33
35
|
"@gradio/html": "^0.7.2",
|
|
34
|
-
"@gradio/image": "^0.23.1",
|
|
35
|
-
"@gradio/imageeditor": "^0.17.1",
|
|
36
|
-
"@gradio/imageslider": "^0.3.0",
|
|
37
36
|
"@gradio/json": "^0.5.31",
|
|
38
|
-
"@gradio/markdown": "^0.13.22",
|
|
39
|
-
"@gradio/multimodaltextbox": "^0.10.20",
|
|
40
|
-
"@gradio/model3d": "^0.15.0",
|
|
41
37
|
"@gradio/label": "^0.5.21",
|
|
42
|
-
"@gradio/
|
|
38
|
+
"@gradio/imageeditor": "^0.18.2-dev.0",
|
|
39
|
+
"@gradio/markdown": "^0.13.22",
|
|
40
|
+
"@gradio/model3d": "^0.15.1-dev.0",
|
|
41
|
+
"@gradio/nativeplot": "^0.9.0-dev.0",
|
|
42
|
+
"@gradio/multimodaltextbox": "^0.10.22-dev.0",
|
|
43
43
|
"@gradio/paramviewer": "^0.8.1",
|
|
44
|
-
"@gradio/number": "^0.7.1",
|
|
45
44
|
"@gradio/plot": "^0.9.24",
|
|
46
45
|
"@gradio/radio": "^0.7.12",
|
|
47
|
-
"@gradio/sidebar": "^0.1.23",
|
|
48
46
|
"@gradio/row": "^0.2.2",
|
|
49
|
-
"@gradio/
|
|
50
|
-
"@gradio/
|
|
51
|
-
"@gradio/sketchbox": "^0.6.17",
|
|
47
|
+
"@gradio/number": "^0.7.1",
|
|
48
|
+
"@gradio/sidebar": "^0.1.23",
|
|
52
49
|
"@gradio/simpledropdown": "^0.3.29",
|
|
50
|
+
"@gradio/simpletextbox": "^0.3.30",
|
|
51
|
+
"@gradio/simpleimage": "^0.9.1-dev.0",
|
|
53
52
|
"@gradio/slider": "^0.6.18",
|
|
54
53
|
"@gradio/state": "^0.1.2",
|
|
54
|
+
"@gradio/statustracker": "^0.11.1",
|
|
55
|
+
"@gradio/sketchbox": "^0.6.17",
|
|
55
56
|
"@gradio/tabitem": "^0.6.1",
|
|
56
57
|
"@gradio/textbox": "^0.11.1",
|
|
57
58
|
"@gradio/tabs": "^0.5.1",
|
|
58
|
-
"@gradio/statustracker": "^0.11.1",
|
|
59
|
-
"@gradio/timer": "^0.4.5",
|
|
60
|
-
"@gradio/upload": "^0.17.1",
|
|
61
59
|
"@gradio/theme": "^0.4.0",
|
|
62
|
-
"@gradio/
|
|
63
|
-
"@gradio/
|
|
60
|
+
"@gradio/timer": "^0.4.5",
|
|
61
|
+
"@gradio/uploadbutton": "^0.9.13-dev.0",
|
|
64
62
|
"@gradio/utils": "^0.10.2",
|
|
65
|
-
"@gradio/
|
|
63
|
+
"@gradio/vibeeditor": "^0.3.1-dev.0",
|
|
64
|
+
"@gradio/upload": "^0.17.2-dev.0",
|
|
65
|
+
"@gradio/video": "^0.17.0-dev.0"
|
|
66
66
|
},
|
|
67
67
|
"msw": {
|
|
68
68
|
"workerDirectory": "public"
|
package/src/Blocks.svelte
CHANGED
|
@@ -40,8 +40,7 @@
|
|
|
40
40
|
export let title = "Gradio";
|
|
41
41
|
export let target: HTMLElement;
|
|
42
42
|
export let autoscroll: boolean;
|
|
43
|
-
export let
|
|
44
|
-
export let show_footer = true;
|
|
43
|
+
export let footer_links = ["gradio", "settings", "api"];
|
|
45
44
|
export let control_page_title = false;
|
|
46
45
|
export let app_mode: boolean;
|
|
47
46
|
export let theme_mode: ThemeMode;
|
|
@@ -113,10 +112,12 @@
|
|
|
113
112
|
}
|
|
114
113
|
|
|
115
114
|
export let search_params: URLSearchParams;
|
|
116
|
-
let api_docs_visible =
|
|
115
|
+
let api_docs_visible =
|
|
116
|
+
search_params.get("view") === "api" && footer_links.includes("api");
|
|
117
117
|
let settings_visible = search_params.get("view") === "settings";
|
|
118
118
|
let api_recorder_visible =
|
|
119
|
-
search_params.get("view") === "api-recorder" &&
|
|
119
|
+
search_params.get("view") === "api-recorder" &&
|
|
120
|
+
footer_links.includes("api");
|
|
120
121
|
let allow_zoom = true;
|
|
121
122
|
let allow_video_trim = true;
|
|
122
123
|
|
|
@@ -518,7 +519,7 @@
|
|
|
518
519
|
submit_map.has(dep_index) &&
|
|
519
520
|
dep.inputs.some((id) => get_stream_state(id) === "open")
|
|
520
521
|
) {
|
|
521
|
-
await app.
|
|
522
|
+
await app.post_data(
|
|
522
523
|
// @ts-ignore
|
|
523
524
|
`${app.config.root + app.config.api_prefix}/stream/${submit_map.get(dep_index).event_id()}`,
|
|
524
525
|
{ ...payload, session_hash: app.session_hash }
|
|
@@ -914,7 +915,6 @@
|
|
|
914
915
|
// @ts-ignore
|
|
915
916
|
const url = `${app.config.root + app.config.api_prefix}/stream/${submit_map.get(dep_id).event_id()}`;
|
|
916
917
|
app.post_data(`${url}/close`, {});
|
|
917
|
-
app.close_ws(url);
|
|
918
918
|
}
|
|
919
919
|
});
|
|
920
920
|
} else {
|
|
@@ -1131,9 +1131,9 @@
|
|
|
1131
1131
|
{/if}
|
|
1132
1132
|
</div>
|
|
1133
1133
|
|
|
1134
|
-
{#if
|
|
1134
|
+
{#if footer_links.length > 0}
|
|
1135
1135
|
<footer bind:clientHeight={footer_height}>
|
|
1136
|
-
{#if
|
|
1136
|
+
{#if footer_links.includes("api")}
|
|
1137
1137
|
<button
|
|
1138
1138
|
on:click={() => {
|
|
1139
1139
|
set_api_docs_visible(!api_docs_visible);
|
|
@@ -1151,18 +1151,19 @@
|
|
|
1151
1151
|
{/if}
|
|
1152
1152
|
<img src={api_logo} alt={$_("common.logo")} />
|
|
1153
1153
|
</button>
|
|
1154
|
+
{/if}
|
|
1155
|
+
{#if footer_links.includes("gradio")}
|
|
1154
1156
|
<div class="divider show-api-divider">·</div>
|
|
1157
|
+
<a
|
|
1158
|
+
href="https://gradio.app"
|
|
1159
|
+
class="built-with"
|
|
1160
|
+
target="_blank"
|
|
1161
|
+
rel="noreferrer"
|
|
1162
|
+
>
|
|
1163
|
+
{$_("common.built_with_gradio")}
|
|
1164
|
+
<img src={logo} alt={$_("common.logo")} />
|
|
1165
|
+
</a>
|
|
1155
1166
|
{/if}
|
|
1156
|
-
<a
|
|
1157
|
-
href="https://gradio.app"
|
|
1158
|
-
class="built-with"
|
|
1159
|
-
target="_blank"
|
|
1160
|
-
rel="noreferrer"
|
|
1161
|
-
>
|
|
1162
|
-
{$_("common.built_with_gradio")}
|
|
1163
|
-
<img src={logo} alt={$_("common.logo")} />
|
|
1164
|
-
</a>
|
|
1165
|
-
<div class="divider" class:hidden={!$is_screen_recording}>·</div>
|
|
1166
1167
|
<button
|
|
1167
1168
|
class:hidden={!$is_screen_recording}
|
|
1168
1169
|
on:click={() => {
|
|
@@ -1174,18 +1175,21 @@
|
|
|
1174
1175
|
<img src={record_stop} alt={$_("common.stop_recording")} />
|
|
1175
1176
|
</button>
|
|
1176
1177
|
<div class="divider">·</div>
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1178
|
+
{#if footer_links.includes("settings")}
|
|
1179
|
+
<div class="divider" class:hidden={!$is_screen_recording}>·</div>
|
|
1180
|
+
<button
|
|
1181
|
+
on:click={() => {
|
|
1182
|
+
set_settings_visible(!settings_visible);
|
|
1183
|
+
}}
|
|
1184
|
+
on:mouseenter={() => {
|
|
1185
|
+
loadSettings();
|
|
1186
|
+
}}
|
|
1187
|
+
class="settings"
|
|
1188
|
+
>
|
|
1189
|
+
{$_("common.settings")}
|
|
1190
|
+
<img src={settings_logo} alt={$_("common.settings")} />
|
|
1191
|
+
</button>
|
|
1192
|
+
{/if}
|
|
1189
1193
|
</footer>
|
|
1190
1194
|
{/if}
|
|
1191
1195
|
</div>
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"https://www.gradio.app/guides/building-mcp-server-with-gradio";
|
|
41
41
|
|
|
42
42
|
let api_count = dependencies.filter(
|
|
43
|
-
(dependency) => dependency.
|
|
43
|
+
(dependency) => dependency.api_visibility === "public"
|
|
44
44
|
).length;
|
|
45
45
|
|
|
46
46
|
if (root === "") {
|
|
@@ -466,7 +466,7 @@
|
|
|
466
466
|
|
|
467
467
|
{#if current_language !== "mcp"}
|
|
468
468
|
{#each dependencies as dependency}
|
|
469
|
-
{#if dependency.
|
|
469
|
+
{#if dependency.api_visibility === "public" && info.named_endpoints["/" + dependency.api_name]}
|
|
470
470
|
<div class="endpoint-container">
|
|
471
471
|
<CodeSnippet
|
|
472
472
|
endpoint_parameters={info.named_endpoints[
|
package/src/init.ts
CHANGED
|
@@ -938,11 +938,14 @@ function process_children_visibility(
|
|
|
938
938
|
const visible_components: Set<number> = new Set();
|
|
939
939
|
|
|
940
940
|
if (layout.children) {
|
|
941
|
+
const layout_component = components.find((c) => c.id === layout.id);
|
|
941
942
|
for (const child of layout.children) {
|
|
942
943
|
const child_visible = determine_visible_components(
|
|
943
944
|
child,
|
|
944
945
|
components,
|
|
945
|
-
|
|
946
|
+
layout_component?.type === "tabitem"
|
|
947
|
+
? layout_component.props.children_visible !== false
|
|
948
|
+
: true,
|
|
946
949
|
parent_tabs_context
|
|
947
950
|
);
|
|
948
951
|
child_visible.forEach((id) => visible_components.add(id));
|
|
@@ -998,8 +1001,14 @@ function determine_visible_components(
|
|
|
998
1001
|
);
|
|
999
1002
|
child_visible.forEach((id) => visible_components.add(id));
|
|
1000
1003
|
} else if (component.type === "tabitem") {
|
|
1004
|
+
const tab_item_visible = is_tab_item_visible(
|
|
1005
|
+
component,
|
|
1006
|
+
component_visible,
|
|
1007
|
+
parent_tabs_context
|
|
1008
|
+
);
|
|
1001
1009
|
if (
|
|
1002
|
-
|
|
1010
|
+
tab_item_visible ||
|
|
1011
|
+
(!tab_item_visible && component.props.render_children)
|
|
1003
1012
|
) {
|
|
1004
1013
|
visible_components.add(layout.id);
|
|
1005
1014
|
|
package/src/types.ts
CHANGED
|
@@ -71,7 +71,7 @@ export interface Dependency {
|
|
|
71
71
|
trigger_only_on_failure?: boolean;
|
|
72
72
|
trigger_mode: "once" | "multiple" | "always_last";
|
|
73
73
|
final_event: Payload | null;
|
|
74
|
-
|
|
74
|
+
api_visibility: "public" | "private" | "undocumented";
|
|
75
75
|
rendered_in: number | null;
|
|
76
76
|
render_id: number | null;
|
|
77
77
|
connection: "stream" | "sse";
|