@gradio/core 0.18.1 → 0.19.1

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 CHANGED
@@ -1,5 +1,48 @@
1
1
  # @gradio/core
2
2
 
3
+ ## 0.19.1
4
+
5
+ ### Fixes
6
+
7
+ - [#11338](https://github.com/gradio-app/gradio/pull/11338) [`b31c3ed`](https://github.com/gradio-app/gradio/commit/b31c3edef97373b96f188072d5bb16db9d690261) - Fix Reload Mode when using gr.render. Thanks @freddyaboulton!
8
+
9
+ ### Dependency updates
10
+
11
+ - @gradio/upload@0.16.7
12
+ - @gradio/video@0.14.17
13
+ - @gradio/checkbox@0.4.23
14
+ - @gradio/client@1.15.2
15
+ - @gradio/button@0.5.3
16
+ - @gradio/tabs@0.4.5
17
+ - @gradio/tabitem@0.4.5
18
+ - @gradio/code@0.14.6
19
+ - @gradio/file@0.12.20
20
+ - @gradio/image@0.22.9
21
+ - @gradio/gallery@0.15.22
22
+
23
+ ## 0.19.0
24
+
25
+ ### Features
26
+
27
+ - [#11306](https://github.com/gradio-app/gradio/pull/11306) [`6cd608d`](https://github.com/gradio-app/gradio/commit/6cd608d8f9b1a142c58f0d2db861845ec267f705) - Improvements for plots and event listeners in re-renders. Thanks @aliabid94!
28
+ - [#11328](https://github.com/gradio-app/gradio/pull/11328) [`ff39d56`](https://github.com/gradio-app/gradio/commit/ff39d568dc9a8a44807126c7366ac8f7dc63df12) - Update mcp schema to include return type information from function. Thanks @abidlabs!
29
+
30
+ ### Dependency updates
31
+
32
+ - @gradio/textbox@0.10.13
33
+
34
+ ## 0.18.1
35
+
36
+ ### Dependency updates
37
+
38
+ - @gradio/statustracker@0.10.12
39
+ - @gradio/gallery@0.15.21
40
+ - @gradio/plot@0.9.17
41
+ - @gradio/button@0.5.2
42
+ - @gradio/video@0.14.16
43
+ - @gradio/image@0.22.8
44
+ - @gradio/file@0.12.19
45
+
3
46
  ## 0.18.1
4
47
 
5
48
  ### Features
@@ -56,11 +56,12 @@ $: {
56
56
  }
57
57
  let old_dependencies = dependencies;
58
58
  $:
59
- if (dependencies !== old_dependencies && render_complete) {
59
+ if (dependencies !== old_dependencies && render_complete && !layout_creating) {
60
60
  handle_load_triggers();
61
61
  old_dependencies = dependencies;
62
62
  }
63
63
  async function run() {
64
+ layout_creating = true;
64
65
  await create_layout({
65
66
  components,
66
67
  layout,
@@ -71,6 +72,7 @@ async function run() {
71
72
  fill_height
72
73
  }
73
74
  });
75
+ layout_creating = false;
74
76
  }
75
77
  export let search_params;
76
78
  let api_docs_visible = search_params.get("view") === "api" && show_api;
@@ -100,6 +102,7 @@ function set_settings_visible(visible) {
100
102
  settings_visible = !settings_visible;
101
103
  }
102
104
  let api_calls = [];
105
+ let layout_creating = false;
103
106
  export let render_complete = false;
104
107
  async function handle_update(data, fn_index) {
105
108
  const dep = dependencies.find((dep2) => dep2.id === fn_index);
@@ -225,17 +228,6 @@ async function trigger_api_call(dep_index, trigger_id = null, event_data = null)
225
228
  if (current_status === "pending" || current_status === "generating") {
226
229
  dep.pending_request = true;
227
230
  }
228
- let deps_to_remove = [];
229
- if (dep.render_id != null) {
230
- dependencies.forEach((other_dep, i) => {
231
- if (other_dep.rendered_in === dep.render_id) {
232
- deps_to_remove.push(i);
233
- }
234
- });
235
- }
236
- deps_to_remove.reverse().forEach((i) => {
237
- dependencies.splice(i, 1);
238
- });
239
231
  let payload = {
240
232
  fn_index: dep_index,
241
233
  data: await Promise.all(
@@ -378,6 +370,15 @@ async function trigger_api_call(dep_index, trigger_id = null, event_data = null)
378
370
  let render_layout = data.layout;
379
371
  let _dependencies = data.dependencies;
380
372
  let render_id = data.render_id;
373
+ let deps_to_remove = [];
374
+ dependencies.forEach((old_dep, i) => {
375
+ if (old_dep.rendered_in === dep.render_id) {
376
+ deps_to_remove.push(i);
377
+ }
378
+ });
379
+ deps_to_remove.reverse().forEach((i) => {
380
+ dependencies.splice(i, 1);
381
+ });
381
382
  _dependencies.forEach((dep2) => {
382
383
  dependencies.push(dep2);
383
384
  });
@@ -69,10 +69,10 @@ async function fetchMcpTools() {
69
69
  try {
70
70
  const response = await fetch(`${root}gradio_api/mcp/schema`);
71
71
  const schema = await response.json();
72
- tools = Object.entries(schema).map(([name, tool]) => ({
73
- name: `${name}`,
72
+ tools = schema.map((tool) => ({
73
+ name: tool.name,
74
74
  description: tool.description || "",
75
- parameters: tool.properties || {},
75
+ parameters: tool.inputSchema?.properties || {},
76
76
  expanded: false
77
77
  }));
78
78
  } catch (error) {
package/dist/src/init.js CHANGED
@@ -140,7 +140,8 @@ export function create_components(initial_layout) {
140
140
  }
141
141
  }
142
142
  });
143
- new_components.forEach((c) => {
143
+ const components_to_add = new_components.concat(replacement_components.filter((c) => !instance_map[c.id]));
144
+ components_to_add.forEach((c) => {
144
145
  instance_map[c.id] = c;
145
146
  _component_map.set(c.id, c);
146
147
  });
package/package.json CHANGED
@@ -1,68 +1,68 @@
1
1
  {
2
2
  "name": "@gradio/core",
3
- "version": "0.18.1",
3
+ "version": "0.19.1",
4
4
  "type": "module",
5
5
  "devDependencies": {
6
6
  "@gradio/accordion": "^0.5.16",
7
- "@gradio/annotatedimage": "^0.9.20",
7
+ "@gradio/annotatedimage": "^0.9.21",
8
8
  "@gradio/atoms": "^0.16.1",
9
+ "@gradio/audio": "^0.17.17",
9
10
  "@gradio/box": "^0.2.19",
10
- "@gradio/audio": "^0.17.15",
11
- "@gradio/button": "^0.5.1",
12
- "@gradio/chatbot": "^0.26.9",
13
- "@gradio/checkbox": "^0.4.22",
11
+ "@gradio/button": "^0.5.3",
12
+ "@gradio/checkbox": "^0.4.23",
13
+ "@gradio/chatbot": "^0.26.12",
14
14
  "@gradio/checkboxgroup": "^0.6.22",
15
- "@gradio/code": "^0.14.5",
16
- "@gradio/client": "^1.15.1",
15
+ "@gradio/client": "^1.15.2",
16
+ "@gradio/code": "^0.14.6",
17
17
  "@gradio/colorpicker": "^0.4.22",
18
+ "@gradio/dataset": "^0.4.22",
18
19
  "@gradio/column": "^0.2.0",
19
20
  "@gradio/datetime": "^0.3.14",
20
- "@gradio/dataframe": "^0.17.13",
21
- "@gradio/dataset": "^0.4.20",
22
- "@gradio/downloadbutton": "^0.4.1",
23
- "@gradio/fallback": "^0.4.22",
24
- "@gradio/file": "^0.12.19",
21
+ "@gradio/downloadbutton": "^0.4.3",
22
+ "@gradio/dataframe": "^0.17.15",
25
23
  "@gradio/dropdown": "^0.9.22",
26
- "@gradio/fileexplorer": "^0.5.30",
24
+ "@gradio/fallback": "^0.4.22",
25
+ "@gradio/fileexplorer": "^0.5.31",
27
26
  "@gradio/form": "^0.2.19",
27
+ "@gradio/file": "^0.12.20",
28
+ "@gradio/gallery": "^0.15.22",
29
+ "@gradio/highlightedtext": "^0.9.5",
28
30
  "@gradio/group": "^0.2.0",
29
31
  "@gradio/icons": "^0.12.0",
30
- "@gradio/gallery": "^0.15.20",
31
32
  "@gradio/html": "^0.6.14",
32
- "@gradio/image": "^0.22.7",
33
- "@gradio/imageslider": "^0.2.3",
34
- "@gradio/imageeditor": "^0.15.1",
35
- "@gradio/highlightedtext": "^0.9.5",
33
+ "@gradio/image": "^0.22.9",
34
+ "@gradio/imageslider": "^0.2.4",
36
35
  "@gradio/json": "^0.5.24",
37
36
  "@gradio/label": "^0.5.14",
38
37
  "@gradio/browserstate": "^0.3.2",
38
+ "@gradio/imageeditor": "^0.15.3",
39
39
  "@gradio/markdown": "^0.13.14",
40
- "@gradio/multimodaltextbox": "^0.10.7",
41
- "@gradio/model3d": "^0.14.15",
42
- "@gradio/nativeplot": "^0.5.17",
43
- "@gradio/paramviewer": "^0.7.10",
44
- "@gradio/plot": "^0.9.17",
40
+ "@gradio/multimodaltextbox": "^0.10.9",
41
+ "@gradio/model3d": "^0.14.16",
42
+ "@gradio/nativeplot": "^0.6.0",
45
43
  "@gradio/number": "^0.5.22",
44
+ "@gradio/plot": "^0.9.17",
46
45
  "@gradio/radio": "^0.7.5",
47
- "@gradio/sidebar": "^0.1.14",
46
+ "@gradio/paramviewer": "^0.7.10",
48
47
  "@gradio/row": "^0.2.1",
49
- "@gradio/simpleimage": "^0.8.30",
48
+ "@gradio/sidebar": "^0.1.14",
50
49
  "@gradio/simpledropdown": "^0.3.22",
51
50
  "@gradio/simpletextbox": "^0.3.22",
51
+ "@gradio/simpleimage": "^0.8.31",
52
52
  "@gradio/sketchbox": "^0.6.9",
53
53
  "@gradio/slider": "^0.6.11",
54
- "@gradio/statustracker": "^0.10.12",
55
54
  "@gradio/state": "^0.1.2",
56
- "@gradio/tabitem": "^0.4.4",
57
- "@gradio/tabs": "^0.4.4",
55
+ "@gradio/statustracker": "^0.10.12",
56
+ "@gradio/tabitem": "^0.4.5",
57
+ "@gradio/tabs": "^0.4.5",
58
58
  "@gradio/theme": "^0.4.0",
59
- "@gradio/upload": "^0.16.6",
60
- "@gradio/textbox": "^0.10.12",
61
- "@gradio/timer": "^0.4.5",
59
+ "@gradio/upload": "^0.16.7",
60
+ "@gradio/uploadbutton": "^0.9.3",
61
+ "@gradio/textbox": "^0.10.13",
62
+ "@gradio/video": "^0.14.17",
62
63
  "@gradio/utils": "^0.10.2",
63
- "@gradio/video": "^0.14.15",
64
- "@gradio/wasm": "^0.18.1",
65
- "@gradio/uploadbutton": "^0.9.1"
64
+ "@gradio/timer": "^0.4.5",
65
+ "@gradio/wasm": "^0.18.1"
66
66
  },
67
67
  "msw": {
68
68
  "workerDirectory": "public"
package/src/Blocks.svelte CHANGED
@@ -74,13 +74,18 @@
74
74
  }
75
75
 
76
76
  let old_dependencies = dependencies;
77
- $: if (dependencies !== old_dependencies && render_complete) {
77
+ $: if (
78
+ dependencies !== old_dependencies &&
79
+ render_complete &&
80
+ !layout_creating
81
+ ) {
78
82
  // re-run load triggers in SSR mode when page changes
79
83
  handle_load_triggers();
80
84
  old_dependencies = dependencies;
81
85
  }
82
86
 
83
87
  async function run(): Promise<void> {
88
+ layout_creating = true;
84
89
  await create_layout({
85
90
  components,
86
91
  layout,
@@ -91,6 +96,7 @@
91
96
  fill_height
92
97
  }
93
98
  });
99
+ layout_creating = false;
94
100
  }
95
101
 
96
102
  export let search_params: URLSearchParams;
@@ -126,7 +132,9 @@
126
132
 
127
133
  let api_calls: Payload[] = [];
128
134
 
135
+ let layout_creating = false;
129
136
  export let render_complete = false;
137
+
130
138
  async function handle_update(data: any, fn_index: number): Promise<void> {
131
139
  const dep = dependencies.find((dep) => dep.id === fn_index);
132
140
  const input_type = components.find(
@@ -306,18 +314,6 @@
306
314
  dep.pending_request = true;
307
315
  }
308
316
 
309
- let deps_to_remove: number[] = [];
310
- if (dep.render_id != null) {
311
- dependencies.forEach((other_dep, i) => {
312
- if (other_dep.rendered_in === dep.render_id) {
313
- deps_to_remove.push(i);
314
- }
315
- });
316
- }
317
- deps_to_remove.reverse().forEach((i) => {
318
- dependencies.splice(i, 1);
319
- });
320
-
321
317
  let payload: Payload = {
322
318
  fn_index: dep_index,
323
319
  data: await Promise.all(
@@ -481,6 +477,15 @@
481
477
  let _dependencies: Dependency[] = data.dependencies;
482
478
  let render_id = data.render_id;
483
479
 
480
+ let deps_to_remove: number[] = [];
481
+ dependencies.forEach((old_dep, i) => {
482
+ if (old_dep.rendered_in === dep.render_id) {
483
+ deps_to_remove.push(i);
484
+ }
485
+ });
486
+ deps_to_remove.reverse().forEach((i) => {
487
+ dependencies.splice(i, 1);
488
+ });
484
489
  _dependencies.forEach((dep) => {
485
490
  dependencies.push(dep);
486
491
  });
@@ -674,7 +679,6 @@
674
679
  if (is_external_url(_link) && _target !== "_blank")
675
680
  a[i].setAttribute("target", "_blank");
676
681
  }
677
-
678
682
  handle_load_triggers();
679
683
 
680
684
  if (!target || render_complete) return;
@@ -118,10 +118,10 @@
118
118
  const response = await fetch(`${root}gradio_api/mcp/schema`);
119
119
  const schema = await response.json();
120
120
 
121
- tools = Object.entries(schema).map(([name, tool]: [string, any]) => ({
122
- name: `${name}`,
121
+ tools = schema.map((tool: any) => ({
122
+ name: tool.name,
123
123
  description: tool.description || "",
124
- parameters: tool.properties || {},
124
+ parameters: tool.inputSchema?.properties || {},
125
125
  expanded: false
126
126
  }));
127
127
  } catch (error) {
package/src/init.ts CHANGED
@@ -256,7 +256,11 @@ export function create_components(initial_layout: ComponentMeta | undefined): {
256
256
  }
257
257
  });
258
258
 
259
- new_components.forEach((c) => {
259
+ const components_to_add = new_components.concat(
260
+ replacement_components.filter((c) => !instance_map[c.id])
261
+ );
262
+
263
+ components_to_add.forEach((c) => {
260
264
  instance_map[c.id] = c;
261
265
  _component_map.set(c.id, c);
262
266
  });
@@ -288,7 +292,6 @@ export function create_components(initial_layout: ComponentMeta | undefined): {
288
292
  parent?: ComponentMeta
289
293
  ): Promise<ComponentMeta> {
290
294
  const instance = instance_map[node.id];
291
-
292
295
  if (!instance.component) {
293
296
  instance.component = (await constructor_map.get(
294
297
  instance.component_class_id || instance.type