diff --git a/.changeset/tangy-pots-speak.md b/.changeset/tangy-pots-speak.md new file mode 100644 index 0000000000..f3a8d7ab5f --- /dev/null +++ b/.changeset/tangy-pots-speak.md @@ -0,0 +1,6 @@ +--- +"@gradio/uploadbutton": minor +"gradio": minor +--- + +feat:Feat: make UploadButton accept icon diff --git a/gradio/components/upload_button.py b/gradio/components/upload_button.py index f1dc5c090c..8b6722c11f 100644 --- a/gradio/components/upload_button.py +++ b/gradio/components/upload_button.py @@ -48,6 +48,7 @@ class UploadButton(Component): variant: Literal["primary", "secondary", "stop"] = "secondary", visible: bool = True, size: Literal["sm", "lg"] | None = None, + icon: str | None = None, scale: int | None = None, min_width: int | None = None, interactive: bool = True, @@ -114,6 +115,7 @@ class UploadButton(Component): min_width=min_width, interactive=interactive, ) + self.icon = self.move_resource_to_block_cache(icon) def api_info(self) -> dict[str, list[str]]: if self.file_count == "single": diff --git a/js/uploadbutton/Index.svelte b/js/uploadbutton/Index.svelte index 412b05522e..85091f1863 100644 --- a/js/uploadbutton/Index.svelte +++ b/js/uploadbutton/Index.svelte @@ -17,6 +17,7 @@ export let root: string; export let size: "sm" | "lg" = "lg"; export let scale: number | null = null; + export let icon: string | null = null; export let min_width: number | undefined = undefined; export let variant: "primary" | "secondary" | "stop" = "secondary"; export let gradio: Gradio<{ @@ -25,6 +26,7 @@ click: never; }>; export let interactive: boolean; + export let proxy_url: null | string = null; $: disabled = !interactive; @@ -45,12 +47,14 @@ {file_types} {size} {scale} + {icon} {min_width} {root} {value} {disabled} {variant} {label} + {proxy_url} on:click={() => gradio.dispatch("click")} on:change={({ detail }) => handle_event(detail, "change")} on:upload={({ detail }) => handle_event(detail, "upload")} diff --git a/js/uploadbutton/UploadButton.stories.svelte b/js/uploadbutton/UploadButton.stories.svelte new file mode 100644 index 0000000000..075a41b444 --- /dev/null +++ b/js/uploadbutton/UploadButton.stories.svelte @@ -0,0 +1,80 @@ + + + + + + + + + + + diff --git a/js/uploadbutton/shared/UploadButton.svelte b/js/uploadbutton/shared/UploadButton.svelte index 2b092e580f..35a966b828 100644 --- a/js/uploadbutton/shared/UploadButton.svelte +++ b/js/uploadbutton/shared/UploadButton.svelte @@ -1,7 +1,12 @@