diff --git a/ticket-frontend/src/lib/components/image-preview.svelte b/ticket-frontend/src/lib/components/image-preview.svelte
new file mode 100644
index 0000000..97a73dd
--- /dev/null
+++ b/ticket-frontend/src/lib/components/image-preview.svelte
@@ -0,0 +1,187 @@
+
+
+
+
+{#if images.length > 0}
+
+
+
+
Detected {images.length} {images.length === 1 ? 'image' : 'images'}
+
+
+
+ {#each images as image, i}
+
+ {#if image.loading}
+
+ {/if}
+
+ {#if image.error}
+
+ {:else}
+
+
+
+
+ {/if}
+
+ {/each}
+
+
+{/if}
+
+
+{#if expandedIndex !== null && !images[expandedIndex].error}
+
+
+
+
e.stopPropagation()}>
+

+
+
+
+ Click anywhere to close • ESC to exit
+
+
+{/if}
+
+
diff --git a/ticket-frontend/src/lib/components/ticket-card.svelte b/ticket-frontend/src/lib/components/ticket-card.svelte
index 9faa475..0c3e23b 100644
--- a/ticket-frontend/src/lib/components/ticket-card.svelte
+++ b/ticket-frontend/src/lib/components/ticket-card.svelte
@@ -1,5 +1,6 @@