diff --git a/src/lib/components/CustomDeviceModal.svelte b/src/lib/components/CustomDeviceModal.svelte
new file mode 100644
index 0000000..3039397
--- /dev/null
+++ b/src/lib/components/CustomDeviceModal.svelte
@@ -0,0 +1,265 @@
+
+
+{#if open}
+
+
+
+
+
+ Custom Device
+
+
+
+
+
+
+
+{/if}
diff --git a/src/lib/components/DeviceSelector.svelte b/src/lib/components/DeviceSelector.svelte
new file mode 100644
index 0000000..339009f
--- /dev/null
+++ b/src/lib/components/DeviceSelector.svelte
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+ {deviceInfo}
+
+
diff --git a/src/lib/components/DropZone.svelte b/src/lib/components/DropZone.svelte
new file mode 100644
index 0000000..0f0f104
--- /dev/null
+++ b/src/lib/components/DropZone.svelte
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+ {#if isDragOver}
+ Drop images here
+ {:else}
+ Drop images here or click to browse
+ {/if}
+
+
+
+ JPG, PNG, WebP · Max {CONSTRAINTS.MAX_FILE_SIZE_MB}MB
+
+