@gradio/core 0.0.2 → 0.0.4

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 (107) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/blocks.d.ts +1 -0
  3. package/dist/blocks.js +1 -0
  4. package/dist/index.d.ts +4 -0
  5. package/dist/index.js +4 -0
  6. package/dist/login.d.ts +1 -0
  7. package/dist/login.js +1 -0
  8. package/dist/src/Blocks.svelte +674 -0
  9. package/dist/src/Blocks.svelte.d.ts +41 -0
  10. package/dist/src/Embed.svelte +195 -0
  11. package/dist/src/Embed.svelte.d.ts +26 -0
  12. package/dist/src/Login.svelte +107 -0
  13. package/dist/src/Login.svelte.d.ts +19 -0
  14. package/dist/src/MountComponents.svelte +26 -0
  15. package/dist/src/MountComponents.svelte.d.ts +26 -0
  16. package/dist/src/Render.svelte +91 -0
  17. package/dist/src/Render.svelte.d.ts +29 -0
  18. package/dist/src/RenderComponent.svelte +51 -0
  19. package/dist/src/RenderComponent.svelte.d.ts +32 -0
  20. package/dist/src/api_docs/ApiBanner.svelte +115 -0
  21. package/dist/src/api_docs/ApiBanner.svelte.d.ts +19 -0
  22. package/dist/src/api_docs/ApiDocs.svelte +388 -0
  23. package/dist/src/api_docs/ApiDocs.svelte.d.ts +27 -0
  24. package/dist/src/api_docs/ApiRecorder.svelte +72 -0
  25. package/dist/src/api_docs/ApiRecorder.svelte.d.ts +18 -0
  26. package/dist/src/api_docs/CodeSnippet.svelte +184 -0
  27. package/dist/src/api_docs/CodeSnippet.svelte.d.ts +24 -0
  28. package/dist/src/api_docs/CopyButton.svelte +15 -0
  29. package/dist/src/api_docs/CopyButton.svelte.d.ts +16 -0
  30. package/dist/src/api_docs/EndpointDetail.svelte +36 -0
  31. package/dist/src/api_docs/EndpointDetail.svelte.d.ts +18 -0
  32. package/dist/src/api_docs/InputPayload.svelte +149 -0
  33. package/dist/src/api_docs/InputPayload.svelte.d.ts +24 -0
  34. package/dist/src/api_docs/InstallSnippet.svelte +56 -0
  35. package/dist/src/api_docs/InstallSnippet.svelte.d.ts +16 -0
  36. package/dist/src/api_docs/NoApi.svelte +71 -0
  37. package/dist/src/api_docs/NoApi.svelte.d.ts +18 -0
  38. package/dist/src/api_docs/ParametersSnippet.svelte +104 -0
  39. package/dist/src/api_docs/ParametersSnippet.svelte.d.ts +19 -0
  40. package/dist/src/api_docs/RecordingSnippet.svelte +210 -0
  41. package/dist/src/api_docs/RecordingSnippet.svelte.d.ts +22 -0
  42. package/dist/src/api_docs/ResponseSnippet.svelte +95 -0
  43. package/dist/src/api_docs/ResponseSnippet.svelte.d.ts +19 -0
  44. package/dist/src/api_docs/TryButton.svelte +17 -0
  45. package/dist/src/api_docs/TryButton.svelte.d.ts +17 -0
  46. package/dist/src/api_docs/img/api-logo.svg +4 -0
  47. package/dist/src/api_docs/img/bash.svg +8 -0
  48. package/dist/src/api_docs/img/clear.svelte +19 -0
  49. package/dist/src/api_docs/img/clear.svelte.d.ts +23 -0
  50. package/dist/src/api_docs/img/javascript.svg +16 -0
  51. package/dist/src/api_docs/img/python.svg +20 -0
  52. package/dist/src/api_docs/index.d.ts +2 -0
  53. package/dist/src/api_docs/index.js +2 -0
  54. package/dist/src/api_docs/utils.d.ts +2 -0
  55. package/dist/src/api_docs/utils.js +135 -0
  56. package/dist/src/css.d.ts +2 -0
  57. package/dist/src/css.js +93 -0
  58. package/dist/src/gradio_helper.js +4 -0
  59. package/dist/src/i18n.d.ts +6 -0
  60. package/dist/src/i18n.js +22 -0
  61. package/dist/src/images/lightning.svg +2 -0
  62. package/dist/src/images/logo.svg +19 -0
  63. package/dist/src/images/play.svg +2 -0
  64. package/dist/src/images/spaces.svg +7 -0
  65. package/dist/src/init.d.ts +107 -0
  66. package/dist/src/init.js +377 -0
  67. package/dist/src/lang/BCP47_codes.d.ts +2 -0
  68. package/dist/src/lang/BCP47_codes.js +58 -0
  69. package/dist/src/lang/ar.json +16 -0
  70. package/dist/src/lang/ca.json +19 -0
  71. package/dist/src/lang/ckb.json +108 -0
  72. package/dist/src/lang/de.json +16 -0
  73. package/dist/src/lang/en.json +118 -0
  74. package/dist/src/lang/es.json +17 -0
  75. package/dist/src/lang/eu.json +16 -0
  76. package/dist/src/lang/fa.json +16 -0
  77. package/dist/src/lang/fr.json +30 -0
  78. package/dist/src/lang/he.json +16 -0
  79. package/dist/src/lang/hi.json +16 -0
  80. package/dist/src/lang/ja.json +16 -0
  81. package/dist/src/lang/ko.json +16 -0
  82. package/dist/src/lang/lt.json +16 -0
  83. package/dist/src/lang/nl.json +16 -0
  84. package/dist/src/lang/pl.json +16 -0
  85. package/dist/src/lang/pt-BR.json +19 -0
  86. package/dist/src/lang/ru.json +118 -0
  87. package/dist/src/lang/ta.json +16 -0
  88. package/dist/src/lang/tr.json +16 -0
  89. package/dist/src/lang/uk.json +16 -0
  90. package/dist/src/lang/ur.json +16 -0
  91. package/dist/src/lang/uz.json +15 -0
  92. package/dist/src/lang/zh-CN.json +115 -0
  93. package/dist/src/lang/zh-TW.json +16 -0
  94. package/dist/src/s-blocks.d.ts +1 -0
  95. package/dist/src/s-blocks.js +1 -0
  96. package/dist/src/s-login.d.ts +1 -0
  97. package/dist/src/s-login.js +1 -0
  98. package/dist/src/stores.d.ts +30 -0
  99. package/dist/src/stores.js +93 -0
  100. package/dist/src/types.d.ts +95 -0
  101. package/dist/src/types.js +1 -0
  102. package/dist/src/vite-env-override.d.ts +20 -0
  103. package/package.json +71 -60
  104. package/src/Blocks.svelte +14 -10
  105. package/src/Render.svelte +3 -1
  106. package/src/api_docs/ApiDocs.svelte +1 -1
  107. package/src/api_docs/ApiRecorder.svelte +1 -1
@@ -0,0 +1,16 @@
1
+ {
2
+ "common": {
3
+ "built_with_gradio": "使用Gradio構建",
4
+ "clear": "清除",
5
+ "or": "或",
6
+ "submit": "提交"
7
+ },
8
+ "upload_text": {
9
+ "click_to_upload": "點擊上傳",
10
+ "drop_audio": "拖放音訊至此處",
11
+ "drop_csv": "拖放CSV至此處",
12
+ "drop_file": "拖放檔案至此處",
13
+ "drop_image": "拖放圖片至此處",
14
+ "drop_video": "拖放影片至此處"
15
+ }
16
+ }
@@ -0,0 +1 @@
1
+ export { default as default } from "./Blocks.svelte";
@@ -0,0 +1 @@
1
+ export { default as default } from "./Blocks.svelte";
@@ -0,0 +1 @@
1
+ export { default as default } from "./Login.svelte";
@@ -0,0 +1 @@
1
+ export { default as default } from "./Login.svelte";
@@ -0,0 +1,30 @@
1
+ import { type Writable } from "svelte/store";
2
+ export interface LoadingStatus {
3
+ eta: number | null;
4
+ status: "pending" | "error" | "complete" | "generating";
5
+ queue: boolean;
6
+ queue_position: number | null;
7
+ queue_size?: number;
8
+ fn_index: number;
9
+ message?: string | null;
10
+ scroll_to_output?: boolean;
11
+ show_progress?: "full" | "minimal" | "hidden";
12
+ progress?: {
13
+ progress: number | null;
14
+ index: number | null;
15
+ length: number | null;
16
+ unit: string | null;
17
+ desc: string | null;
18
+ }[];
19
+ }
20
+ export type LoadingStatusCollection = Record<number, LoadingStatus>;
21
+ interface LoadingStatusStore {
22
+ update: (status: LoadingStatus) => void;
23
+ subscribe: Writable<LoadingStatusCollection>["subscribe"];
24
+ register: (index: number, inputs: number[], outputs: number[]) => void;
25
+ get_status_for_fn: (i: number) => LoadingStatus["status"];
26
+ get_inputs_to_update: () => Map<number, string>;
27
+ }
28
+ export declare function create_loading_status_store(): LoadingStatusStore;
29
+ export type LoadingStatusType = ReturnType<typeof create_loading_status_store>;
30
+ export {};
@@ -0,0 +1,93 @@
1
+ import { writable, get } from "svelte/store";
2
+ export function create_loading_status_store() {
3
+ const store = writable({});
4
+ const fn_inputs = {};
5
+ const fn_outputs = {};
6
+ const pending_outputs = new Map();
7
+ const pending_inputs = new Map();
8
+ const inputs_to_update = new Map();
9
+ const fn_status = {};
10
+ function update({ fn_index, status, queue = true, size, position = null, eta = null, message = null, progress }) {
11
+ const outputs = fn_outputs[fn_index];
12
+ const inputs = fn_inputs[fn_index];
13
+ const last_status = fn_status[fn_index];
14
+ const outputs_to_update = outputs.map((id) => {
15
+ let new_status;
16
+ const pending_count = pending_outputs.get(id) || 0;
17
+ // from (pending -> error) | complete - decrement pending count
18
+ if (last_status === "pending" && status !== "pending") {
19
+ let new_count = pending_count - 1;
20
+ pending_outputs.set(id, new_count < 0 ? 0 : new_count);
21
+ new_status = new_count > 0 ? "pending" : status;
22
+ // from pending -> pending - do nothing
23
+ }
24
+ else if (last_status === "pending" && status === "pending") {
25
+ new_status = "pending";
26
+ // (error | complete) -> pending - - increment pending count
27
+ }
28
+ else if (last_status !== "pending" && status === "pending") {
29
+ new_status = "pending";
30
+ pending_outputs.set(id, pending_count + 1);
31
+ }
32
+ else {
33
+ new_status = status;
34
+ }
35
+ return {
36
+ id,
37
+ queue_position: position,
38
+ queue_size: size,
39
+ eta: eta,
40
+ status: new_status,
41
+ message: message,
42
+ progress: progress
43
+ };
44
+ });
45
+ inputs.forEach((id) => {
46
+ const pending_count = pending_inputs.get(id) || 0;
47
+ // from (pending -> error) | complete - decrement pending count
48
+ if (last_status === "pending" && status !== "pending") {
49
+ let new_count = pending_count - 1;
50
+ pending_inputs.set(id, new_count < 0 ? 0 : new_count);
51
+ inputs_to_update.set(id, status);
52
+ }
53
+ else if (last_status !== "pending" && status === "pending") {
54
+ pending_inputs.set(id, pending_count + 1);
55
+ inputs_to_update.set(id, status);
56
+ }
57
+ else {
58
+ inputs_to_update.delete(id);
59
+ }
60
+ });
61
+ store.update((outputs) => {
62
+ outputs_to_update.forEach(({ id, queue_position, queue_size, eta, status, message, progress }) => {
63
+ outputs[id] = {
64
+ queue: queue,
65
+ queue_size: queue_size,
66
+ queue_position: queue_position,
67
+ eta: eta,
68
+ message: message,
69
+ progress,
70
+ status,
71
+ fn_index
72
+ };
73
+ });
74
+ return outputs;
75
+ });
76
+ fn_status[fn_index] = status;
77
+ }
78
+ function register(index, inputs, outputs) {
79
+ fn_inputs[index] = inputs;
80
+ fn_outputs[index] = outputs;
81
+ }
82
+ return {
83
+ update,
84
+ register,
85
+ subscribe: store.subscribe,
86
+ get_status_for_fn(i) {
87
+ return fn_status[i];
88
+ },
89
+ get_inputs_to_update() {
90
+ return inputs_to_update;
91
+ }
92
+ };
93
+ }
@@ -0,0 +1,95 @@
1
+ import type { ComponentType } from "svelte";
2
+ import type { SvelteComponent } from "svelte";
3
+ /** The props that are always present on a component */
4
+ interface SharedProps {
5
+ elem_id?: string;
6
+ elem_classes?: string[];
7
+ components?: string[];
8
+ server_fns?: string[];
9
+ interactive: boolean;
10
+ [key: string]: unknown;
11
+ }
12
+ /** The metadata for a component
13
+ * The non optional fields are what are received from the backend
14
+ * The optional fields are what are added by the frontend
15
+ */
16
+ export interface ComponentMeta {
17
+ type: string;
18
+ id: number;
19
+ has_modes: boolean;
20
+ props: SharedProps;
21
+ instance: SvelteComponent;
22
+ component: ComponentType<SvelteComponent>;
23
+ documentation?: Documentation;
24
+ children?: ComponentMeta[];
25
+ parent?: ComponentMeta;
26
+ value?: any;
27
+ component_class_id: string;
28
+ key: string | number | null;
29
+ rendered_in?: number;
30
+ }
31
+ /** Dictates whether a dependency is continous and/or a generator */
32
+ export interface DependencyTypes {
33
+ generator: boolean;
34
+ cancel: boolean;
35
+ }
36
+ /** An event payload that is sent with an API request */
37
+ export interface Payload {
38
+ fn_index: number;
39
+ data: unknown[];
40
+ event_data?: unknown | null;
41
+ trigger_id?: number | null;
42
+ }
43
+ /** A dependency as received from the backend */
44
+ export interface Dependency {
45
+ id: number;
46
+ targets: [number, string][];
47
+ inputs: number[];
48
+ outputs: number[];
49
+ backend_fn: boolean;
50
+ js: string | null;
51
+ scroll_to_output: boolean;
52
+ show_progress: "full" | "minimal" | "hidden";
53
+ frontend_fn: ((...args: unknown[]) => Promise<unknown[]>) | null;
54
+ status?: string;
55
+ queue: boolean | null;
56
+ api_name: string | null;
57
+ cancels: number[];
58
+ types: DependencyTypes;
59
+ collects_event_data: boolean;
60
+ pending_request?: boolean;
61
+ trigger_after?: number;
62
+ trigger_only_on_success?: boolean;
63
+ trigger_mode: "once" | "multiple" | "always_last";
64
+ final_event: Payload | null;
65
+ show_api: boolean;
66
+ rendered_in: number | null;
67
+ }
68
+ interface TypeDescription {
69
+ input_payload?: string;
70
+ response_object?: string;
71
+ payload?: string;
72
+ }
73
+ export interface Documentation {
74
+ type?: TypeDescription;
75
+ description?: TypeDescription;
76
+ example_data?: string;
77
+ }
78
+ /** A layout node as recived from the backend */
79
+ export interface LayoutNode {
80
+ id: number;
81
+ children: LayoutNode[];
82
+ }
83
+ /** The system theme mode */
84
+ export type ThemeMode = "system" | "light" | "dark";
85
+ /** the target map is an object mapping the target id to a series of events (another object), those events are a mapping of the event name to the function id's they trigger */
86
+ export type TargetMap = Record<number, Record<string, number[]>>;
87
+ /** A component that has been loaded via dynamic import */
88
+ export type LoadedComponent = {
89
+ default: ComponentMeta["component"];
90
+ };
91
+ /**A component that is loading */
92
+ export type LoadingComponent = Promise<{
93
+ default: ComponentMeta["component"];
94
+ }>;
95
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,20 @@
1
+ // See https://vitejs.dev/guide/features.html#client-types
2
+
3
+ declare module "*.whl" {
4
+ const content: string;
5
+ export default content;
6
+ }
7
+
8
+ // virtual module component type definition
9
+ declare module "virtual:component-loader" {
10
+ interface Args {
11
+ api_url: string;
12
+ name: string;
13
+ id?: string;
14
+ variant: "component" | "example" | "base";
15
+ }
16
+ export function load_component(args: Args): {
17
+ name: ComponentMeta["type"];
18
+ component: LoadedComponent;
19
+ };
20
+ }
package/package.json CHANGED
@@ -1,64 +1,64 @@
1
1
  {
2
2
  "name": "@gradio/core",
3
- "version": "0.0.2",
3
+ "version": "0.0.4",
4
4
  "type": "module",
5
5
  "devDependencies": {
6
- "@gradio/accordion": "^0.3.22",
7
- "@gradio/annotatedimage": "^0.7.1",
8
- "@gradio/atoms": "^0.8.0",
9
- "@gradio/audio": "^0.13.3",
10
- "@gradio/box": "^0.1.24",
11
- "@gradio/button": "^0.2.50",
12
- "@gradio/chatbot": "^0.13.0",
13
- "@gradio/checkbox": "^0.3.12",
14
- "@gradio/client": "^1.5.1",
15
- "@gradio/checkboxgroup": "^0.5.12",
16
- "@gradio/code": "^0.9.0",
17
- "@gradio/colorpicker": "^0.3.12",
18
- "@gradio/column": "^0.1.3",
19
- "@gradio/dataframe": "^0.10.0",
20
- "@gradio/dataset": "^0.2.4",
21
- "@gradio/datetime": "^0.1.3",
22
- "@gradio/downloadbutton": "^0.1.27",
23
- "@gradio/dropdown": "^0.7.12",
24
- "@gradio/fallback": "^0.3.12",
25
- "@gradio/file": "^0.9.3",
26
- "@gradio/fileexplorer": "^0.4.18",
27
- "@gradio/form": "^0.1.24",
28
- "@gradio/group": "^0.1.2",
29
- "@gradio/gallery": "^0.12.1",
30
- "@gradio/highlightedtext": "^0.7.6",
31
- "@gradio/icons": "^0.7.1",
32
- "@gradio/image": "^0.15.0",
33
- "@gradio/imageeditor": "^0.10.0",
34
- "@gradio/html": "^0.3.5",
35
- "@gradio/json": "^0.4.0",
36
- "@gradio/label": "^0.3.12",
37
- "@gradio/markdown": "^0.9.3",
38
- "@gradio/model3d": "^0.12.1",
39
- "@gradio/multimodaltextbox": "^0.5.6",
40
- "@gradio/nativeplot": "^0.3.1",
41
- "@gradio/plot": "^0.6.4",
42
- "@gradio/paramviewer": "^0.4.21",
43
- "@gradio/number": "^0.4.12",
44
- "@gradio/radio": "^0.5.12",
45
- "@gradio/row": "^0.1.4",
46
- "@gradio/simpledropdown": "^0.2.12",
47
- "@gradio/simpleimage": "^0.7.0",
48
- "@gradio/simpletextbox": "^0.2.12",
49
- "@gradio/slider": "^0.4.12",
50
- "@gradio/statustracker": "^0.7.5",
51
- "@gradio/state": "^0.1.1",
52
- "@gradio/tabitem": "^0.2.14",
53
- "@gradio/tabs": "^0.2.13",
54
- "@gradio/textbox": "^0.6.11",
55
- "@gradio/theme": "^0.2.4",
56
- "@gradio/timer": "^0.3.2",
57
- "@gradio/upload": "^0.12.3",
58
- "@gradio/uploadbutton": "^0.6.18",
59
- "@gradio/utils": "^0.6.0",
60
- "@gradio/wasm": "^0.13.0",
61
- "@gradio/video": "^0.10.3"
6
+ "@gradio/annotatedimage": "^0.7.2",
7
+ "@gradio/accordion": "^0.3.23",
8
+ "@gradio/atoms": "^0.8.1",
9
+ "@gradio/box": "^0.1.25",
10
+ "@gradio/button": "^0.2.51",
11
+ "@gradio/audio": "^0.13.5",
12
+ "@gradio/checkbox": "^0.3.13",
13
+ "@gradio/chatbot": "^0.13.1",
14
+ "@gradio/checkboxgroup": "^0.5.13",
15
+ "@gradio/client": "^1.5.2",
16
+ "@gradio/code": "^0.9.1",
17
+ "@gradio/colorpicker": "^0.3.13",
18
+ "@gradio/column": "^0.1.4",
19
+ "@gradio/dataset": "^0.2.5",
20
+ "@gradio/dataframe": "^0.10.1",
21
+ "@gradio/downloadbutton": "^0.1.28",
22
+ "@gradio/datetime": "^0.1.4",
23
+ "@gradio/dropdown": "^0.7.13",
24
+ "@gradio/fallback": "^0.3.13",
25
+ "@gradio/file": "^0.9.4",
26
+ "@gradio/fileexplorer": "^0.4.19",
27
+ "@gradio/form": "^0.1.25",
28
+ "@gradio/gallery": "^0.12.2",
29
+ "@gradio/group": "^0.1.3",
30
+ "@gradio/highlightedtext": "^0.7.7",
31
+ "@gradio/html": "^0.3.6",
32
+ "@gradio/icons": "^0.7.2",
33
+ "@gradio/image": "^0.15.1",
34
+ "@gradio/imageeditor": "^0.10.1",
35
+ "@gradio/json": "^0.5.0",
36
+ "@gradio/label": "^0.3.13",
37
+ "@gradio/markdown": "^0.9.4",
38
+ "@gradio/model3d": "^0.12.2",
39
+ "@gradio/nativeplot": "^0.3.2",
40
+ "@gradio/number": "^0.4.13",
41
+ "@gradio/multimodaltextbox": "^0.5.7",
42
+ "@gradio/paramviewer": "^0.4.22",
43
+ "@gradio/radio": "^0.5.13",
44
+ "@gradio/plot": "^0.6.5",
45
+ "@gradio/row": "^0.1.5",
46
+ "@gradio/simpledropdown": "^0.2.13",
47
+ "@gradio/simpleimage": "^0.7.1",
48
+ "@gradio/simpletextbox": "^0.2.13",
49
+ "@gradio/slider": "^0.4.13",
50
+ "@gradio/state": "^0.1.2",
51
+ "@gradio/statustracker": "^0.7.6",
52
+ "@gradio/tabitem": "^0.2.15",
53
+ "@gradio/tabs": "^0.2.14",
54
+ "@gradio/theme": "^0.2.5",
55
+ "@gradio/textbox": "^0.7.0",
56
+ "@gradio/timer": "^0.3.3",
57
+ "@gradio/upload": "^0.12.4",
58
+ "@gradio/uploadbutton": "^0.6.19",
59
+ "@gradio/utils": "^0.6.1",
60
+ "@gradio/video": "^0.10.4",
61
+ "@gradio/wasm": "^0.13.1"
62
62
  },
63
63
  "msw": {
64
64
  "workerDirectory": "public"
@@ -66,13 +66,24 @@
66
66
  "main_changeset": true,
67
67
  "exports": {
68
68
  "./blocks": {
69
- "svelte": "./src/Blocks.svelte"
69
+ "gradio": "./src/Blocks.svelte",
70
+ "svelte": "./dist/src/Blocks.svelte",
71
+ "types": "./dist/src/Blocks.svelte.d.ts"
70
72
  },
71
73
  "./login": {
72
- "svelte": "./src/Login.svelte"
74
+ "gradio": "./src/Login.svelte",
75
+ "svelte": "./dist/src/Login.svelte",
76
+ "types": "./dist/src/Login.svelte.d.ts"
73
77
  },
74
78
  "./package.json": "./package.json",
75
- ".": "./index.ts"
79
+ ".": {
80
+ "gradio": "./index.ts",
81
+ "import": "./dist/index.js",
82
+ "types": "./dist/index.d.ts"
83
+ }
84
+ },
85
+ "peerDependencies": {
86
+ "svelte": "^4.0.0"
76
87
  },
77
88
  "main": "./index.ts",
78
89
  "repository": {
package/src/Blocks.svelte CHANGED
@@ -238,7 +238,7 @@
238
238
  .then((v: unknown[]) => {
239
239
  if (dep.backend_fn) {
240
240
  payload.data = v;
241
- make_prediction(payload);
241
+ trigger_prediction(dep, payload);
242
242
  } else {
243
243
  handle_update(v, dep_index);
244
244
  }
@@ -253,16 +253,20 @@
253
253
  );
254
254
  } else {
255
255
  if (dep.backend_fn) {
256
- if (dep.trigger_mode === "once") {
257
- if (!dep.pending_request) make_prediction(payload);
258
- } else if (dep.trigger_mode === "multiple") {
256
+ trigger_prediction(dep, payload);
257
+ }
258
+ }
259
+
260
+ function trigger_prediction(dep: Dependency, payload: Payload): void {
261
+ if (dep.trigger_mode === "once") {
262
+ if (!dep.pending_request) make_prediction(payload);
263
+ } else if (dep.trigger_mode === "multiple") {
264
+ make_prediction(payload);
265
+ } else if (dep.trigger_mode === "always_last") {
266
+ if (!dep.pending_request) {
259
267
  make_prediction(payload);
260
- } else if (dep.trigger_mode === "always_last") {
261
- if (!dep.pending_request) {
262
- make_prediction(payload);
263
- } else {
264
- dep.final_event = payload;
265
- }
268
+ } else {
269
+ dep.final_event = payload;
266
270
  }
267
271
  }
268
272
  }
package/src/Render.svelte CHANGED
@@ -4,6 +4,7 @@
4
4
  import type { ComponentMeta, ThemeMode } from "./types";
5
5
  import type { Client } from "@gradio/client";
6
6
  import RenderComponent from "./RenderComponent.svelte";
7
+ import { load_component } from "virtual:component-loader";
7
8
 
8
9
  export let root: string;
9
10
 
@@ -66,7 +67,8 @@
66
67
  autoscroll,
67
68
  max_file_size,
68
69
  formatter,
69
- client
70
+ client,
71
+ load_component
70
72
  );
71
73
  </script>
72
74
 
@@ -7,7 +7,7 @@
7
7
  import type { Payload } from "../types";
8
8
 
9
9
  import ApiBanner from "./ApiBanner.svelte";
10
- import Button from "../../../button/shared/Button.svelte";
10
+ import { BaseButton as Button } from "@gradio/button";
11
11
  import ParametersSnippet from "./ParametersSnippet.svelte";
12
12
  import InstallSnippet from "./InstallSnippet.svelte";
13
13
  import CodeSnippet from "./CodeSnippet.svelte";
@@ -1,6 +1,6 @@
1
1
  <script lang="ts">
2
2
  import type { Payload, Dependency } from "../types";
3
- import Button from "../../../button/shared/Button.svelte";
3
+ import { BaseButton as Button } from "@gradio/button";
4
4
 
5
5
  export let api_calls: Payload[] = [];
6
6
  export let dependencies: Dependency[];