From 49a35ef1c0801c428b614bbcf1682bed69132513 Mon Sep 17 00:00:00 2001 From: xarmian Date: Thu, 26 Mar 2026 23:38:23 +0000 Subject: [PATCH] Overhaul EditCollectionModal with tabbed layout and wider design Reorganized the modal into three tabs (General, Fields, Display) at 680px width. General tab has name/icon/description/prefix. Fields tab has improved field cards with key identifiers and a cleaner add-field section. Display tab uses a two-column grid for settings. Fixed scroll containment so footer stays pinned while tab content scrolls. --- .../collections/EditCollectionModal.svelte | 691 +++++++++++------- 1 file changed, 407 insertions(+), 284 deletions(-) diff --git a/web/src/lib/components/collections/EditCollectionModal.svelte b/web/src/lib/components/collections/EditCollectionModal.svelte index ffac8203..f46f96a3 100644 --- a/web/src/lib/components/collections/EditCollectionModal.svelte +++ b/web/src/lib/components/collections/EditCollectionModal.svelte @@ -26,6 +26,9 @@ 'relation' ]; + // ── Tab state ──────────────────────────────────────────────────────────── + let activeTab = $state<'general' | 'fields' | 'display'>('general'); + // ── Core form state ────────────────────────────────────────────────────── let name = $state(''); @@ -99,6 +102,7 @@ newFields = []; showEmojiPicker = false; error = ''; + activeTab = 'general'; // Sync display settings const s = parseSettings(collection); @@ -259,220 +263,255 @@ +
+ + + +
+ + {#if error} +
{error}
+ {/if} +