From fdcbe32dfa7e83f3e48d635f9ccfdd40df68a7f4 Mon Sep 17 00:00:00 2001 From: busya Date: Thu, 19 Feb 2026 18:24:36 +0300 Subject: [PATCH] css refactor --- frontend/src/components/DashboardGrid.svelte | 242 ++++--- frontend/src/components/DynamicForm.svelte | 187 ++--- frontend/src/components/EnvSelector.svelte | 12 +- frontend/src/components/MappingTable.svelte | 14 +- .../src/components/MissingMappingModal.svelte | 14 +- frontend/src/components/PasswordPrompt.svelte | 122 +++- frontend/src/components/TaskList.svelte | 7 +- frontend/src/components/TaskLogViewer.svelte | 183 ++--- .../src/components/backups/BackupList.svelte | 7 +- .../src/components/git/BranchSelector.svelte | 7 +- .../src/components/git/CommitHistory.svelte | 5 +- .../src/components/git/CommitModal.svelte | 162 +++-- .../components/git/ConflictResolver.svelte | 117 ++- .../src/components/git/DeploymentModal.svelte | 85 ++- frontend/src/components/git/GitManager.svelte | 9 +- frontend/src/components/llm/DocPreview.svelte | 9 +- .../src/components/llm/ProviderConfig.svelte | 7 +- .../components/llm/ValidationReport.svelte | 5 +- .../src/components/storage/FileList.svelte | 8 +- .../src/components/storage/FileUpload.svelte | 10 +- .../src/components/tasks/LogEntryRow.svelte | 217 ++---- .../src/components/tasks/LogFilterBar.svelte | 133 +--- .../src/components/tasks/TaskLogPanel.svelte | 170 +---- .../lib/components/layout/Breadcrumbs.svelte | 119 ++- .../src/lib/components/layout/Sidebar.svelte | 181 ++--- .../lib/components/layout/TopNavbar.svelte | 159 +--- frontend/src/lib/ui/Button.svelte | 48 +- frontend/src/lib/ui/Card.svelte | 31 +- frontend/src/lib/ui/Input.svelte | 35 +- frontend/src/lib/ui/LanguageSwitcher.svelte | 17 +- frontend/src/lib/ui/PageHeader.svelte | 25 +- frontend/src/lib/ui/Select.svelte | 26 +- frontend/src/lib/utils.js | 8 + frontend/src/routes/+page.svelte | 38 +- frontend/src/routes/admin/roles/+page.svelte | 2 - .../src/routes/admin/settings/+page.svelte | 2 - frontend/src/routes/admin/users/+page.svelte | 2 - .../src/routes/datasets/[id]/+page.svelte | 475 ++++++------ frontend/src/routes/login/+page.svelte | 3 - frontend/src/routes/migration/+page.svelte | 3 - .../routes/migration/mappings/+page.svelte | 3 - frontend/src/routes/settings/+page.svelte | 676 +++++++++++------- frontend/src/routes/settings/git/+page.svelte | 3 - .../src/routes/tools/storage/+page.svelte | 3 - frontend/tailwind.config.js | 64 +- 45 files changed, 1798 insertions(+), 1857 deletions(-) create mode 100644 frontend/src/lib/utils.js diff --git a/frontend/src/components/DashboardGrid.svelte b/frontend/src/components/DashboardGrid.svelte index 99cc441..9bf8356 100644 --- a/frontend/src/components/DashboardGrid.svelte +++ b/frontend/src/components/DashboardGrid.svelte @@ -11,19 +11,18 @@
- +
@@ -212,21 +221,52 @@ type="checkbox" checked={allSelected} indeterminate={someSelected && !allSelected} - on:change={(e) => handleSelectAll((e.target as HTMLInputElement).checked)} + on:change={(e) => + handleSelectAll((e.target as HTMLInputElement).checked)} class="h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" /> - handleSort('title')}> - {$t.dashboard.title} {sortColumn === 'title' ? (sortDirection === 'asc' ? '↑' : '↓') : ''} + handleSort("title")} + > + {$t.dashboard.title} + {sortColumn === "title" + ? sortDirection === "asc" + ? "↑" + : "↓" + : ""} - handleSort('last_modified')}> - {$t.dashboard.last_modified} {sortColumn === 'last_modified' ? (sortDirection === 'asc' ? '↑' : '↓') : ''} + handleSort("last_modified")} + > + {$t.dashboard.last_modified} + {sortColumn === "last_modified" + ? sortDirection === "asc" + ? "↑" + : "↓" + : ""} - handleSort('status')}> - {$t.dashboard.status} {sortColumn === 'status' ? (sortDirection === 'asc' ? '↑' : '↓') : ''} + handleSort("status")} + > + {$t.dashboard.status} + {sortColumn === "status" + ? sortDirection === "asc" + ? "↑" + : "↓" + : ""} - {$t.dashboard.validation} - {$t.dashboard.git} + {$t.dashboard.validation} + {$t.dashboard.git} @@ -236,14 +276,28 @@ handleSelectionChange(dashboard.id, (e.target as HTMLInputElement).checked)} + on:change={(e) => + handleSelectionChange( + dashboard.id, + (e.target as HTMLInputElement).checked, + )} class="h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500" /> - {dashboard.title} - {new Date(dashboard.last_modified).toLocaleDateString()} + {dashboard.title} + {new Date(dashboard.last_modified).toLocaleDateString()} - + {dashboard.status} @@ -255,7 +309,7 @@ disabled={validatingIds.has(dashboard.id)} class="text-purple-600 hover:text-purple-900" > - {validatingIds.has(dashboard.id) ? 'Validating...' : 'Validate'} + {validatingIds.has(dashboard.id) ? "Validating..." : "Validate"} @@ -278,9 +332,15 @@
{($t.dashboard?.showing || "") - .replace('{start}', (currentPage * pageSize + 1).toString()) - .replace('{end}', Math.min((currentPage + 1) * pageSize, sortedDashboards.length).toString()) - .replace('{total}', sortedDashboards.length.toString())} + .replace("{start}", (currentPage * pageSize + 1).toString()) + .replace( + "{end}", + Math.min( + (currentPage + 1) * pageSize, + sortedDashboards.length, + ).toString(), + ) + .replace("{total}", sortedDashboards.length.toString())}
- {/if} - - - - + + + + + +
+ {#if schema && schema.properties} + {#each Object.entries(schema.properties) as [key, prop]} +
+ + {#if prop.type === 'string'} + + {:else if prop.type === 'number' || prop.type === 'integer'} + + {:else if prop.type === 'boolean'} + + {/if} +
+ {/each} + + {/if} +
+ + + diff --git a/frontend/src/components/EnvSelector.svelte b/frontend/src/components/EnvSelector.svelte index 78eda60..9fb7c0d 100644 --- a/frontend/src/components/EnvSelector.svelte +++ b/frontend/src/components/EnvSelector.svelte @@ -14,9 +14,12 @@ // [/SECTION] // [SECTION: PROPS] - export let label: string = "Select Environment"; - export let selectedId: string = ""; - export let environments: Array<{id: string, name: string, url: string}> = []; + let { + label = "", + selectedId = "", + environments = [], + } = $props(); + // [/SECTION] const dispatch = createEventDispatcher(); @@ -53,8 +56,5 @@
- \ No newline at end of file diff --git a/frontend/src/components/MappingTable.svelte b/frontend/src/components/MappingTable.svelte index c0d00c0..436fc5c 100644 --- a/frontend/src/components/MappingTable.svelte +++ b/frontend/src/components/MappingTable.svelte @@ -14,10 +14,13 @@ // [/SECTION] // [SECTION: PROPS] - export let sourceDatabases: Array<{uuid: string, database_name: string, engine?: string}> = []; - export let targetDatabases: Array<{uuid: string, database_name: string}> = []; - export let mappings: Array<{source_db_uuid: string, target_db_uuid: string}> = []; - export let suggestions: Array<{source_db_uuid: string, target_db_uuid: string, confidence: number}> = []; + let { + sourceDatabases = [], + targetDatabases = [], + mappings = [], + suggestions = [], + } = $props(); + // [/SECTION] const dispatch = createEventDispatcher(); @@ -100,8 +103,5 @@
- diff --git a/frontend/src/components/MissingMappingModal.svelte b/frontend/src/components/MissingMappingModal.svelte index f493847..5cffe09 100644 --- a/frontend/src/components/MissingMappingModal.svelte +++ b/frontend/src/components/MissingMappingModal.svelte @@ -14,10 +14,13 @@ // [/SECTION] // [SECTION: PROPS] - export let show: boolean = false; - export let sourceDbName: string = ""; - export let sourceDbUuid: string = ""; - export let targetDatabases: Array<{uuid: string, database_name: string}> = []; + let { + show = false, + sourceDbName = "", + sourceDbUuid = "", + targetDatabases = [], + } = $props(); + // [/SECTION] let selectedTargetUuid = ""; @@ -111,8 +114,5 @@ {/if} - diff --git a/frontend/src/components/PasswordPrompt.svelte b/frontend/src/components/PasswordPrompt.svelte index a09a655..4bbb0cd 100644 --- a/frontend/src/components/PasswordPrompt.svelte +++ b/frontend/src/components/PasswordPrompt.svelte @@ -7,90 +7,134 @@ @RELATION: EMITS -> resume, cancel --> {#if show} -