@gradio/imageslider 0.3.0 → 0.3.1-dev.2

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,50 @@
1
1
  # @gradio/imageslider
2
2
 
3
+ ## 0.3.1-dev.2
4
+
5
+ ### Dependency updates
6
+
7
+ - @gradio/atoms@0.19.0-dev.1
8
+ - @gradio/client@2.0.0-dev.2
9
+ - @gradio/statustracker@0.12.0-dev.1
10
+ - @gradio/upload@0.17.2-dev.2
11
+
12
+ ## 0.3.1-dev.1
13
+
14
+ ### Dependency updates
15
+
16
+ - @gradio/atoms@0.18.2-dev.0
17
+ - @gradio/upload@0.17.2-dev.1
18
+ - @gradio/utils@0.10.3-dev.0
19
+ - @gradio/statustracker@0.12.0-dev.0
20
+ - @gradio/icons@0.15.0-dev.0
21
+
22
+ ## 0.3.1-dev.0
23
+
24
+ ### Dependency updates
25
+
26
+ - @gradio/client@2.0.0-dev.1
27
+
28
+ ## 0.3.1-dev.0
29
+
30
+ ### Dependency updates
31
+
32
+ - @gradio/upload@0.17.2-dev.0
33
+ - @gradio/client@2.0.0-dev.0
34
+
35
+ ## 0.3.0
36
+
37
+ ### Dependency updates
38
+
39
+ - @gradio/client@1.19.1
40
+
41
+ ## 0.3.0
42
+
43
+ ### Dependency updates
44
+
45
+ - @gradio/upload@0.17.1
46
+ - @gradio/atoms@0.18.1
47
+
3
48
  ## 0.3.0
4
49
 
5
50
  ### Features
package/Index.svelte CHANGED
@@ -1,84 +1,56 @@
1
1
  <svelte:options accessors={true} />
2
2
 
3
3
  <script lang="ts">
4
- import type { Gradio, SelectData, ValueData } from "@gradio/utils";
4
+ import { tick } from "svelte";
5
+ import type { ImageSliderProps, ImageSliderEvents } from "./types";
6
+ import { Gradio } from "@gradio/utils";
5
7
  import StaticImage from "./shared/SliderPreview.svelte";
6
8
  import ImageUploader from "./shared/SliderUpload.svelte";
7
- import { afterUpdate } from "svelte";
8
9
 
9
10
  import { Block, Empty, UploadText } from "@gradio/atoms";
10
11
  import { Image } from "@gradio/icons";
11
12
  import { StatusTracker } from "@gradio/statustracker";
12
- import { type FileData } from "@gradio/client";
13
- import type { LoadingStatus } from "@gradio/statustracker";
14
13
 
15
14
  type sources = "upload" | "webcam" | "clipboard" | null;
16
15
 
17
- export let value_is_output = false;
18
- export let elem_id = "";
19
- export let elem_classes: string[] = [];
20
- export let visible: boolean | "hidden" = true;
21
- export let value: [FileData | null, FileData | null] = [null, null];
22
- let old_value: [FileData | null, FileData | null] = [null, null];
23
- export let label: string;
24
- export let show_label: boolean;
25
- export let show_download_button: boolean;
26
- export let root: string;
27
- export let height: number | undefined;
28
- export let width: number | undefined;
29
- export let container = true;
30
- export let scale: number | null = null;
31
- export let min_width: number | undefined = undefined;
32
- export let loading_status: LoadingStatus;
33
- export let interactive: boolean;
34
- export let placeholder: string | undefined = undefined;
35
- export let show_fullscreen_button: boolean;
36
- let fullscreen = false;
37
- export let input_ready: boolean;
38
- export let slider_position: number;
39
- export let upload_count = 1;
40
- export let slider_color = "var(--border-color-primary)";
41
- export let max_height: number;
42
- let uploading = false;
16
+ let upload_promise = $state<Promise<any>>();
43
17
 
44
- $: normalised_slider_position =
45
- Math.max(0, Math.min(100, slider_position)) / 100;
18
+ class ImageSliderGradio extends Gradio<ImageSliderEvents, ImageSliderProps> {
19
+ async get_data() {
20
+ if (upload_promise) {
21
+ await upload_promise;
22
+ await tick();
23
+ }
24
+
25
+ const data = await super.get_data();
26
+ return data;
27
+ }
28
+ }
29
+
30
+ const props = $props();
31
+ const gradio = new ImageSliderGradio(props);
46
32
 
47
- $: input_ready = !uploading;
33
+ let value_is_output = $state(false);
34
+ let old_value = $state(gradio.props.value);
35
+ let fullscreen = $state(false);
36
+ let dragging = $state(false);
37
+ let active_source: sources = $state(null);
38
+ let upload_component: ImageUploader;
48
39
 
49
- export let gradio: Gradio<{
50
- input: never;
51
- change: never;
52
- error: string;
53
- edit: never;
54
- stream: ValueData;
55
- drag: never;
56
- upload: never;
57
- clear: never;
58
- select: SelectData;
59
- share: ShareData;
60
- clear_status: LoadingStatus;
61
- close_stream: string;
62
- }>;
40
+ let normalised_slider_position = $derived(
41
+ Math.max(0, Math.min(100, gradio.props.slider_position)) / 100
42
+ );
63
43
 
64
- $: {
65
- if (JSON.stringify(value) !== JSON.stringify(old_value)) {
66
- old_value = value;
44
+ $effect(() => {
45
+ if (old_value != gradio.props.value) {
46
+ old_value = gradio.props.value;
67
47
  gradio.dispatch("change");
68
48
  if (!value_is_output) {
69
49
  gradio.dispatch("input");
70
50
  }
71
51
  }
72
- }
73
-
74
- afterUpdate(() => {
75
- value_is_output = false;
76
52
  });
77
53
 
78
- let dragging: boolean;
79
- let active_source: sources = null;
80
- let upload_component: ImageUploader;
81
-
82
54
  const handle_drag_event = (event: Event): void => {
83
55
  const drag_event = event as DragEvent;
84
56
  drag_event.preventDefault();
@@ -91,7 +63,7 @@
91
63
  };
92
64
 
93
65
  const handle_drop = (event: Event): void => {
94
- if (interactive) {
66
+ if (gradio.shared.interactive) {
95
67
  const drop_event = event as DragEvent;
96
68
  drop_event.preventDefault();
97
69
  drop_event.stopPropagation();
@@ -104,26 +76,26 @@
104
76
  };
105
77
  </script>
106
78
 
107
- {#if !interactive || (value?.[1] && value?.[0])}
79
+ {#if !gradio.shared.interactive || (gradio.props.value?.[1] && gradio.props.value?.[0])}
108
80
  <Block
109
- {visible}
81
+ visible={gradio.shared.visible}
110
82
  variant={"solid"}
111
83
  border_mode={dragging ? "focus" : "base"}
112
84
  padding={false}
113
- {elem_id}
114
- {elem_classes}
115
- height={height || undefined}
116
- {width}
85
+ elem_id={gradio.shared.elem_id}
86
+ elem_classes={gradio.shared.elem_classes}
87
+ height={gradio.props.height || undefined}
88
+ width={gradio.props.width}
117
89
  allow_overflow={false}
118
- {container}
119
- {scale}
120
- {min_width}
90
+ container={gradio.shared.container}
91
+ scale={gradio.shared.scale}
92
+ min_width={gradio.shared.min_width}
121
93
  bind:fullscreen
122
94
  >
123
95
  <StatusTracker
124
- autoscroll={gradio.autoscroll}
96
+ autoscroll={gradio.shared.autoscroll}
125
97
  i18n={gradio.i18n}
126
- {...loading_status}
98
+ {...gradio.shared.loading_status}
127
99
  />
128
100
  <StaticImage
129
101
  on:select={({ detail }) => gradio.dispatch("select", detail)}
@@ -134,49 +106,51 @@
134
106
  fullscreen = detail;
135
107
  }}
136
108
  {fullscreen}
137
- {interactive}
138
- bind:value
139
- {label}
140
- {show_label}
141
- {show_download_button}
109
+ interactive={gradio.shared.interactive}
110
+ bind:value={gradio.props.value}
111
+ label={gradio.shared.label}
112
+ show_label={gradio.shared.show_label}
113
+ show_download_button={gradio.props.buttons.includes("download")}
142
114
  i18n={gradio.i18n}
143
- {show_fullscreen_button}
115
+ show_fullscreen_button={gradio.props.buttons.includes("fullscreen")}
144
116
  position={normalised_slider_position}
145
- {slider_color}
146
- {max_height}
117
+ slider_color={gradio.props.slider_color}
118
+ max_height={gradio.props.max_height}
147
119
  />
148
120
  </Block>
149
121
  {:else}
150
122
  <Block
151
- {visible}
152
- variant={value === null ? "dashed" : "solid"}
123
+ visible={gradio.shared.visible}
124
+ variant={gradio.props.value === null ? "dashed" : "solid"}
153
125
  border_mode={dragging ? "focus" : "base"}
154
126
  padding={false}
155
- {elem_id}
156
- {elem_classes}
157
- height={height || undefined}
158
- {width}
127
+ elem_id={gradio.shared.elem_id}
128
+ elem_classes={gradio.shared.elem_classes}
129
+ height={gradio.props.height || undefined}
130
+ width={gradio.props.width}
159
131
  allow_overflow={false}
160
- {container}
161
- {scale}
162
- {min_width}
132
+ container={gradio.shared.container}
133
+ scale={gradio.shared.scale}
134
+ min_width={gradio.shared.min_width}
163
135
  on:dragenter={handle_drag_event}
164
136
  on:dragleave={handle_drag_event}
165
137
  on:dragover={handle_drag_event}
166
138
  on:drop={handle_drop}
167
139
  >
168
140
  <StatusTracker
169
- autoscroll={gradio.autoscroll}
141
+ autoscroll={gradio.shared.autoscroll}
170
142
  i18n={gradio.i18n}
171
- {...loading_status}
172
- on:clear_status={() => gradio.dispatch("clear_status", loading_status)}
143
+ {...gradio.shared.loading_status}
144
+ on:clear_status={() =>
145
+ gradio.dispatch("clear_status", gradio.shared.loading_status)}
173
146
  />
174
147
 
175
148
  <ImageUploader
149
+ bind:upload_promise
176
150
  bind:this={upload_component}
177
- bind:value
151
+ bind:value={gradio.props.value}
178
152
  bind:dragging
179
- {root}
153
+ root={gradio.shared.root}
180
154
  on:edit={() => gradio.dispatch("edit")}
181
155
  on:clear={() => {
182
156
  gradio.dispatch("clear");
@@ -184,24 +158,28 @@
184
158
  on:drag={({ detail }) => (dragging = detail)}
185
159
  on:upload={() => gradio.dispatch("upload")}
186
160
  on:error={({ detail }) => {
187
- loading_status = loading_status || {};
188
- loading_status.status = "error";
161
+ if (gradio.shared.loading_status)
162
+ gradio.shared.loading_status.status = "error";
189
163
  gradio.dispatch("error", detail);
190
164
  }}
191
165
  on:close_stream={() => {
192
166
  gradio.dispatch("close_stream", "stream");
193
167
  }}
194
- {label}
195
- {show_label}
196
- {upload_count}
197
- max_file_size={gradio.max_file_size}
168
+ label={gradio.shared.label}
169
+ show_label={gradio.shared.show_label}
170
+ upload_count={gradio.props.upload_count}
171
+ max_file_size={gradio.shared.max_file_size}
198
172
  i18n={gradio.i18n}
199
- upload={(...args) => gradio.client.upload(...args)}
200
- stream_handler={gradio.client?.stream}
201
- {max_height}
173
+ upload={(...args) => gradio.shared.client.upload(...args)}
174
+ stream_handler={gradio.shared.client?.stream}
175
+ max_height={gradio.props.max_height}
202
176
  >
203
177
  {#if active_source === "upload" || !active_source}
204
- <UploadText i18n={gradio.i18n} type="image" {placeholder} />
178
+ <UploadText
179
+ i18n={gradio.i18n}
180
+ type="image"
181
+ placeholder={gradio.props.placeholder}
182
+ />
205
183
  {:else if active_source === "clipboard"}
206
184
  <UploadText i18n={gradio.i18n} type="clipboard" mode="short" />
207
185
  {:else}
@@ -1,7 +1,8 @@
1
- <script>export let value;
2
- export let samples_dir;
3
- export let type;
4
- export let selected = false;
1
+ <script lang="ts">
2
+ export let value: [string, string];
3
+ export let samples_dir: string;
4
+ export let type: "gallery" | "table";
5
+ export let selected = false;
5
6
  </script>
6
7
 
7
8
  <!-- TODO: fix -->
@@ -1,21 +1,23 @@
1
- import { SvelteComponent } from "svelte";
2
- declare const __propDef: {
3
- props: {
4
- value: [string, string];
5
- samples_dir: string;
6
- type: "gallery" | "table";
7
- selected?: boolean;
1
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
2
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
+ $$bindings?: Bindings;
4
+ } & Exports;
5
+ (internal: unknown, props: Props & {
6
+ $$events?: Events;
7
+ $$slots?: Slots;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
8
11
  };
9
- events: {
10
- [evt: string]: CustomEvent<any>;
11
- };
12
- slots: {};
13
- exports?: {} | undefined;
14
- bindings?: string | undefined;
15
- };
16
- export type ExampleProps = typeof __propDef.props;
17
- export type ExampleEvents = typeof __propDef.events;
18
- export type ExampleSlots = typeof __propDef.slots;
19
- export default class Example extends SvelteComponent<ExampleProps, ExampleEvents, ExampleSlots> {
12
+ z_$$bindings?: Bindings;
20
13
  }
21
- export {};
14
+ declare const Example: $$__sveltets_2_IsomorphicComponent<{
15
+ value: [string, string];
16
+ samples_dir: string;
17
+ type: "gallery" | "table";
18
+ selected?: boolean;
19
+ }, {
20
+ [evt: string]: CustomEvent<any>;
21
+ }, {}, {}, string>;
22
+ type Example = InstanceType<typeof Example>;
23
+ export default Example;
package/dist/Index.svelte CHANGED
@@ -1,99 +1,101 @@
1
1
  <svelte:options accessors={true} />
2
2
 
3
- <script>import StaticImage from "./shared/SliderPreview.svelte";
4
- import ImageUploader from "./shared/SliderUpload.svelte";
5
- import { afterUpdate } from "svelte";
6
- import { Block, Empty, UploadText } from "@gradio/atoms";
7
- import { Image } from "@gradio/icons";
8
- import { StatusTracker } from "@gradio/statustracker";
9
- import {} from "@gradio/client";
10
- export let value_is_output = false;
11
- export let elem_id = "";
12
- export let elem_classes = [];
13
- export let visible = true;
14
- export let value = [null, null];
15
- let old_value = [null, null];
16
- export let label;
17
- export let show_label;
18
- export let show_download_button;
19
- export let root;
20
- export let height;
21
- export let width;
22
- export let container = true;
23
- export let scale = null;
24
- export let min_width = void 0;
25
- export let loading_status;
26
- export let interactive;
27
- export let placeholder = void 0;
28
- export let show_fullscreen_button;
29
- let fullscreen = false;
30
- export let input_ready;
31
- export let slider_position;
32
- export let upload_count = 1;
33
- export let slider_color = "var(--border-color-primary)";
34
- export let max_height;
35
- let uploading = false;
36
- $: normalised_slider_position = Math.max(0, Math.min(100, slider_position)) / 100;
37
- $: input_ready = !uploading;
38
- export let gradio;
39
- $: {
40
- if (JSON.stringify(value) !== JSON.stringify(old_value)) {
41
- old_value = value;
42
- gradio.dispatch("change");
43
- if (!value_is_output) {
44
- gradio.dispatch("input");
45
- }
46
- }
47
- }
48
- afterUpdate(() => {
49
- value_is_output = false;
50
- });
51
- let dragging;
52
- let active_source = null;
53
- let upload_component;
54
- const handle_drag_event = (event) => {
55
- const drag_event = event;
56
- drag_event.preventDefault();
57
- drag_event.stopPropagation();
58
- if (drag_event.type === "dragenter" || drag_event.type === "dragover") {
59
- dragging = true;
60
- } else if (drag_event.type === "dragleave") {
61
- dragging = false;
62
- }
63
- };
64
- const handle_drop = (event) => {
65
- if (interactive) {
66
- const drop_event = event;
67
- drop_event.preventDefault();
68
- drop_event.stopPropagation();
69
- dragging = false;
70
- if (upload_component) {
71
- upload_component.loadFilesFromDrop(drop_event);
72
- }
73
- }
74
- };
3
+ <script lang="ts">
4
+ import { tick } from "svelte";
5
+ import type { ImageSliderProps, ImageSliderEvents } from "./types";
6
+ import { Gradio } from "@gradio/utils";
7
+ import StaticImage from "./shared/SliderPreview.svelte";
8
+ import ImageUploader from "./shared/SliderUpload.svelte";
9
+
10
+ import { Block, Empty, UploadText } from "@gradio/atoms";
11
+ import { Image } from "@gradio/icons";
12
+ import { StatusTracker } from "@gradio/statustracker";
13
+
14
+ type sources = "upload" | "webcam" | "clipboard" | null;
15
+
16
+ let upload_promise = $state<Promise<any>>();
17
+
18
+ class ImageSliderGradio extends Gradio<ImageSliderEvents, ImageSliderProps> {
19
+ async get_data() {
20
+ if (upload_promise) {
21
+ await upload_promise;
22
+ await tick();
23
+ }
24
+
25
+ const data = await super.get_data();
26
+ return data;
27
+ }
28
+ }
29
+
30
+ const props = $props();
31
+ const gradio = new ImageSliderGradio(props);
32
+
33
+ let value_is_output = $state(false);
34
+ let old_value = $state(gradio.props.value);
35
+ let fullscreen = $state(false);
36
+ let dragging = $state(false);
37
+ let active_source: sources = $state(null);
38
+ let upload_component: ImageUploader;
39
+
40
+ let normalised_slider_position = $derived(
41
+ Math.max(0, Math.min(100, gradio.props.slider_position)) / 100
42
+ );
43
+
44
+ $effect(() => {
45
+ if (old_value != gradio.props.value) {
46
+ old_value = gradio.props.value;
47
+ gradio.dispatch("change");
48
+ if (!value_is_output) {
49
+ gradio.dispatch("input");
50
+ }
51
+ }
52
+ });
53
+
54
+ const handle_drag_event = (event: Event): void => {
55
+ const drag_event = event as DragEvent;
56
+ drag_event.preventDefault();
57
+ drag_event.stopPropagation();
58
+ if (drag_event.type === "dragenter" || drag_event.type === "dragover") {
59
+ dragging = true;
60
+ } else if (drag_event.type === "dragleave") {
61
+ dragging = false;
62
+ }
63
+ };
64
+
65
+ const handle_drop = (event: Event): void => {
66
+ if (gradio.shared.interactive) {
67
+ const drop_event = event as DragEvent;
68
+ drop_event.preventDefault();
69
+ drop_event.stopPropagation();
70
+ dragging = false;
71
+
72
+ if (upload_component) {
73
+ upload_component.loadFilesFromDrop(drop_event);
74
+ }
75
+ }
76
+ };
75
77
  </script>
76
78
 
77
- {#if !interactive || (value?.[1] && value?.[0])}
79
+ {#if !gradio.shared.interactive || (gradio.props.value?.[1] && gradio.props.value?.[0])}
78
80
  <Block
79
- {visible}
81
+ visible={gradio.shared.visible}
80
82
  variant={"solid"}
81
83
  border_mode={dragging ? "focus" : "base"}
82
84
  padding={false}
83
- {elem_id}
84
- {elem_classes}
85
- height={height || undefined}
86
- {width}
85
+ elem_id={gradio.shared.elem_id}
86
+ elem_classes={gradio.shared.elem_classes}
87
+ height={gradio.props.height || undefined}
88
+ width={gradio.props.width}
87
89
  allow_overflow={false}
88
- {container}
89
- {scale}
90
- {min_width}
90
+ container={gradio.shared.container}
91
+ scale={gradio.shared.scale}
92
+ min_width={gradio.shared.min_width}
91
93
  bind:fullscreen
92
94
  >
93
95
  <StatusTracker
94
- autoscroll={gradio.autoscroll}
96
+ autoscroll={gradio.shared.autoscroll}
95
97
  i18n={gradio.i18n}
96
- {...loading_status}
98
+ {...gradio.shared.loading_status}
97
99
  />
98
100
  <StaticImage
99
101
  on:select={({ detail }) => gradio.dispatch("select", detail)}
@@ -104,49 +106,51 @@ const handle_drop = (event) => {
104
106
  fullscreen = detail;
105
107
  }}
106
108
  {fullscreen}
107
- {interactive}
108
- bind:value
109
- {label}
110
- {show_label}
111
- {show_download_button}
109
+ interactive={gradio.shared.interactive}
110
+ bind:value={gradio.props.value}
111
+ label={gradio.shared.label}
112
+ show_label={gradio.shared.show_label}
113
+ show_download_button={gradio.props.buttons.includes("download")}
112
114
  i18n={gradio.i18n}
113
- {show_fullscreen_button}
115
+ show_fullscreen_button={gradio.props.buttons.includes("fullscreen")}
114
116
  position={normalised_slider_position}
115
- {slider_color}
116
- {max_height}
117
+ slider_color={gradio.props.slider_color}
118
+ max_height={gradio.props.max_height}
117
119
  />
118
120
  </Block>
119
121
  {:else}
120
122
  <Block
121
- {visible}
122
- variant={value === null ? "dashed" : "solid"}
123
+ visible={gradio.shared.visible}
124
+ variant={gradio.props.value === null ? "dashed" : "solid"}
123
125
  border_mode={dragging ? "focus" : "base"}
124
126
  padding={false}
125
- {elem_id}
126
- {elem_classes}
127
- height={height || undefined}
128
- {width}
127
+ elem_id={gradio.shared.elem_id}
128
+ elem_classes={gradio.shared.elem_classes}
129
+ height={gradio.props.height || undefined}
130
+ width={gradio.props.width}
129
131
  allow_overflow={false}
130
- {container}
131
- {scale}
132
- {min_width}
132
+ container={gradio.shared.container}
133
+ scale={gradio.shared.scale}
134
+ min_width={gradio.shared.min_width}
133
135
  on:dragenter={handle_drag_event}
134
136
  on:dragleave={handle_drag_event}
135
137
  on:dragover={handle_drag_event}
136
138
  on:drop={handle_drop}
137
139
  >
138
140
  <StatusTracker
139
- autoscroll={gradio.autoscroll}
141
+ autoscroll={gradio.shared.autoscroll}
140
142
  i18n={gradio.i18n}
141
- {...loading_status}
142
- on:clear_status={() => gradio.dispatch("clear_status", loading_status)}
143
+ {...gradio.shared.loading_status}
144
+ on:clear_status={() =>
145
+ gradio.dispatch("clear_status", gradio.shared.loading_status)}
143
146
  />
144
147
 
145
148
  <ImageUploader
149
+ bind:upload_promise
146
150
  bind:this={upload_component}
147
- bind:value
151
+ bind:value={gradio.props.value}
148
152
  bind:dragging
149
- {root}
153
+ root={gradio.shared.root}
150
154
  on:edit={() => gradio.dispatch("edit")}
151
155
  on:clear={() => {
152
156
  gradio.dispatch("clear");
@@ -154,24 +158,28 @@ const handle_drop = (event) => {
154
158
  on:drag={({ detail }) => (dragging = detail)}
155
159
  on:upload={() => gradio.dispatch("upload")}
156
160
  on:error={({ detail }) => {
157
- loading_status = loading_status || {};
158
- loading_status.status = "error";
161
+ if (gradio.shared.loading_status)
162
+ gradio.shared.loading_status.status = "error";
159
163
  gradio.dispatch("error", detail);
160
164
  }}
161
165
  on:close_stream={() => {
162
166
  gradio.dispatch("close_stream", "stream");
163
167
  }}
164
- {label}
165
- {show_label}
166
- {upload_count}
167
- max_file_size={gradio.max_file_size}
168
+ label={gradio.shared.label}
169
+ show_label={gradio.shared.show_label}
170
+ upload_count={gradio.props.upload_count}
171
+ max_file_size={gradio.shared.max_file_size}
168
172
  i18n={gradio.i18n}
169
- upload={(...args) => gradio.client.upload(...args)}
170
- stream_handler={gradio.client?.stream}
171
- {max_height}
173
+ upload={(...args) => gradio.shared.client.upload(...args)}
174
+ stream_handler={gradio.shared.client?.stream}
175
+ max_height={gradio.props.max_height}
172
176
  >
173
177
  {#if active_source === "upload" || !active_source}
174
- <UploadText i18n={gradio.i18n} type="image" {placeholder} />
178
+ <UploadText
179
+ i18n={gradio.i18n}
180
+ type="image"
181
+ placeholder={gradio.props.placeholder}
182
+ />
175
183
  {:else if active_source === "clipboard"}
176
184
  <UploadText i18n={gradio.i18n} type="clipboard" mode="short" />
177
185
  {:else}