diff --git a/src/lib/components/ui/SuggestionBadge.svelte b/src/lib/components/ui/SuggestionBadge.svelte
new file mode 100644
index 00000000..11ed2c4d
--- /dev/null
+++ b/src/lib/components/ui/SuggestionBadge.svelte
@@ -0,0 +1,183 @@
+
+
+
+
+{#if suggestion !== undefined && suggestion !== null && !dismissed}
+
+
+
+
+
+
+ {#if label}
+ {label}:
+ {/if}
+ {displayValue()}
+
+
+ {#if onAccept}
+
+ {/if}
+ {#if onDismiss}
+
+ {/if}
+
+
+
+{/if}
+
+
diff --git a/src/lib/components/ui/SuggestionDetailItem.svelte b/src/lib/components/ui/SuggestionDetailItem.svelte
new file mode 100644
index 00000000..925bf103
--- /dev/null
+++ b/src/lib/components/ui/SuggestionDetailItem.svelte
@@ -0,0 +1,229 @@
+
+
+
+
+
+
+
+ {label}
+ {#if editable && showSuggestion}
+
+ {/if}
+
+ {#if sublabel}
+
{sublabel}
+ {/if}
+
+ {#if editable}
+
+ {#if type === 'select' && options}
+
+ {:else if type === 'checkbox'}
+
+ {:else if type === 'number'}
+
+ {:else}
+
+ {/if}
+
+ {:else if children}
+
+ {@render children()}
+
+ {:else}
+
{value || '—'}
+ {/if}
+
+
+
diff --git a/src/lib/features/database/import/TabbedEntitySelector.svelte b/src/lib/features/database/import/TabbedEntitySelector.svelte
new file mode 100644
index 00000000..9b9435f7
--- /dev/null
+++ b/src/lib/features/database/import/TabbedEntitySelector.svelte
@@ -0,0 +1,175 @@
+
+
+
+
+
+ {#each entities as entity}
+
+ {/each}
+
+
+