From 38f4b8b2a8c30831f4edc92e112152e98873d906 Mon Sep 17 00:00:00 2001 From: ZhuchkaTriplesix Date: Sun, 15 Nov 2026 15:34:05 +0300 Subject: [PATCH 1/3] feat(frontend): replace Unicode glyphs with QueryaIcon (Lucide) Add a semantic icon registry aligned with Flutter QueryaIcons and wire it through the object tree, connections chrome, prefs rail, and status bar. --- apps/tauri/package.json | 1 + apps/tauri/pnpm-lock.yaml | 12 +++ apps/tauri/src/ui/ConnectionHome.vue | 27 +++--- apps/tauri/src/ui/ConnectionsPanel.vue | 86 +++++++++++-------- apps/tauri/src/ui/NewConnectionDialog.vue | 3 +- apps/tauri/src/ui/PreferencesDialog.vue | 27 +++--- apps/tauri/src/ui/QueryaContextMenu.vue | 8 +- apps/tauri/src/ui/SqlObjectTreeNodes.vue | 48 ++++------- apps/tauri/src/ui/StatusBar.vue | 5 +- apps/tauri/src/ui/TableObjectView.vue | 5 +- apps/tauri/src/ui/TitleBar.vue | 3 +- apps/tauri/src/ui/icons/QueryaIcon.vue | 42 ++++++++++ apps/tauri/src/ui/icons/index.ts | 3 + apps/tauri/src/ui/icons/objectKind.test.ts | 25 ++++++ apps/tauri/src/ui/icons/objectKind.ts | 70 ++++++++++++++++ apps/tauri/src/ui/icons/registry.ts | 96 ++++++++++++++++++++++ 16 files changed, 360 insertions(+), 101 deletions(-) create mode 100644 apps/tauri/src/ui/icons/QueryaIcon.vue create mode 100644 apps/tauri/src/ui/icons/index.ts create mode 100644 apps/tauri/src/ui/icons/objectKind.test.ts create mode 100644 apps/tauri/src/ui/icons/objectKind.ts create mode 100644 apps/tauri/src/ui/icons/registry.ts diff --git a/apps/tauri/package.json b/apps/tauri/package.json index 28796961..c749d063 100644 --- a/apps/tauri/package.json +++ b/apps/tauri/package.json @@ -19,6 +19,7 @@ "@codemirror/state": "^6.7.6", "@codemirror/view": "^6.43.15", "@glideapps/glide-data-grid": "^6.0.3", + "@lucide/vue": "^1.73.0", "@tauri-apps/api": "^2", "@tauri-apps/plugin-dialog": "^2.8.4", "@tauri-apps/plugin-opener": "^2", diff --git a/apps/tauri/pnpm-lock.yaml b/apps/tauri/pnpm-lock.yaml index 0b40b7a5..0eab1cd6 100644 --- a/apps/tauri/pnpm-lock.yaml +++ b/apps/tauri/pnpm-lock.yaml @@ -26,6 +26,9 @@ importers: '@glideapps/glide-data-grid': specifier: ^6.0.3 version: 6.0.3(lodash@4.18.1)(marked@4.3.0)(react-dom@18.3.1(react@18.3.1))(react-responsive-carousel@3.2.23)(react@18.3.1) + '@lucide/vue': + specifier: ^1.73.0 + version: 1.73.0(vue@3.5.45(typescript@5.8.3)) '@tauri-apps/api': specifier: ^2 version: 2.12.4 @@ -429,6 +432,11 @@ packages: resolution: {integrity: sha512-tSpxA3Zn0DKJ2n/YBnYAgiDY+MNvkmzAHrD8R9PKrpGaZ+wz1jQEmE1vGn1cqh8dJyWK0NzPAA8sf1cqa+RmAg==} engines: {node: ^12.16.0 || >=13.7.0} + '@lucide/vue@1.73.0': + resolution: {integrity: sha512-QVVRSgu2rqRX3NAUktT9venW0Bvtr03aCZjhFRLwnV3uqLyR7KCTOx5mMlukhw0aiyjC3D6w2b+fmy4MeM5R3Q==} + peerDependencies: + vue: '>=3.0.1' + '@marijn/find-cluster-break@1.0.4': resolution: {integrity: sha512-Wy0V7+SGUjnF9/TkiM1hKVDPj7jKXduPNboMVtHTA8dySMURWqfg/JZ9E2Sq8JgSJmkl7k7Qe9FLeMSrSraWmQ==} @@ -1639,6 +1647,10 @@ snapshots: transitivePeerDependencies: - supports-color + '@lucide/vue@1.73.0(vue@3.5.45(typescript@5.8.3))': + dependencies: + vue: 3.5.45(typescript@5.8.3) + '@marijn/find-cluster-break@1.0.4': {} '@rolldown/pluginutils@1.1.0': {} diff --git a/apps/tauri/src/ui/ConnectionHome.vue b/apps/tauri/src/ui/ConnectionHome.vue index 53ab5d43..76e2e067 100644 --- a/apps/tauri/src/ui/ConnectionHome.vue +++ b/apps/tauri/src/ui/ConnectionHome.vue @@ -11,6 +11,7 @@ import { useShellNavStore } from "../stores/shellNav"; import { useObjectTreeStore } from "../stores/objectTree"; import QueryaButton from "./QueryaButton.vue"; import SqlWorkspace from "./SqlWorkspace.vue"; +import { QueryaIcon } from "./icons"; const connections = useConnectionsStore(); const nav = useShellNavStore(); @@ -170,7 +171,9 @@ function openRelation(o: { id: string; name: string; kind: string; schema?: stri data-testid="home-overview" >
- +

{{ conn.name }}

@@ -193,7 +196,7 @@ function openRelation(o: { id: string; name: string; kind: string; schema?: stri