diff --git a/web/src/lib/components/kit/SchemaActions.svelte b/web/src/lib/components/kit/SchemaActions.svelte
new file mode 100644
index 0000000..fb1015d
--- /dev/null
+++ b/web/src/lib/components/kit/SchemaActions.svelte
@@ -0,0 +1,77 @@
+
+
+
+ {#if inputMode === "none"}
+
+ {:else if inputMode === "file"}
+
+ {/if}
+ {#if canDownload}
+
+ {/if}
+
+
+
diff --git a/web/src/lib/components/kit/SchemaPreview.svelte b/web/src/lib/components/kit/SchemaPreview.svelte
index fdc4bb0..e188f29 100644
--- a/web/src/lib/components/kit/SchemaPreview.svelte
+++ b/web/src/lib/components/kit/SchemaPreview.svelte
@@ -1,21 +1,19 @@
{isGenerator ? "GENERATOR / RESULT" : "SOURCE / RESULT"}
-
- {#if isGenerator}
-
- {:else if !isTextInput}
-
- {/if}
- {#if isImageDownload}
-
- {/if}
-
+
{})}
+ {ondownload}
+ />
{#if error}
@@ -88,85 +81,31 @@
{#if !isGenerator}
-
- SOURCE
-
- {#if isTextInput}
-
- {})}
- onrender={onrendertext ?? (() => {})}
- />
-
- {:else if sourceUrl}
-

- {:else}
-
choose an image
- {/if}
-
-
+
{/if}
-
- RESULT {running ? "…" : ""}
-
- {#if resultKind === "text" && textResult}
-
- {})}
- ondownload={ondownloadtxt ?? (() => {})}
- />
-
- {:else if resultKind === "verdict" && textResult}
-
- {})}
- ondownload={ondownloadtxt ?? (() => {})}
- />
-
- {:else if resultKind === "image" && resultUrl}
-

- {:else if running}
-
- {:else}
-
- {isGenerator ? "click Generate" : "no result yet"}
-
- {/if}
-
-
+