From 28e98bfe92e788bdcb1135b528e76842324d42ff Mon Sep 17 00:00:00 2001 From: Warinyourself Date: Thu, 11 Jun 2026 01:16:14 +0300 Subject: [PATCH] Migrate generic UI icons to @lucide/vue Replace custom SVG icons (settings, eye, arrow, checkbox, loader, collapse, restart, suspend, hibernate, user, shutdown) with Lucide components, keeping custom SVGs only for brand/DE logos and decorative theme assets. Remove the now-unused icon files and the dangling AppBar/battery/brightness/currentOs leftovers from the previous cleanup. Also disable svgo's removeViewBox so custom icons scale correctly inside their containers. --- package-lock.json | 10 ++++++ package.json | 1 + src/assets/icons/arrow.svg | 12 ------- src/assets/icons/brightness.svg | 11 ------ src/assets/icons/charge.svg | 12 ------- src/assets/icons/checkbox.svg | 3 -- src/assets/icons/close.svg | 12 ------- src/assets/icons/collapse.svg | 14 -------- src/assets/icons/eye.svg | 32 ----------------- src/assets/icons/hibernate.svg | 19 ---------- src/assets/icons/loader.svg | 5 --- src/assets/icons/restart.svg | 11 ------ src/assets/icons/settings.svg | 12 ------- src/assets/icons/shutdown.svg | 12 ------- src/assets/icons/suspend.svg | 12 ------- src/assets/icons/user.svg | 35 ------------------- src/components/app/AppBar.tsx | 23 ------------ src/components/app/AppButton.tsx | 4 +-- src/components/app/AppCheckbox.tsx | 4 +-- src/components/app/AppSelector.tsx | 3 +- src/components/base/SettingsComponent.tsx | 5 ++- src/components/base/ShutdownButton.tsx | 4 +-- src/components/base/ShutdownMenu.tsx | 17 +++++---- src/components/base/UserAvatar.tsx | 13 ++----- src/components/base/UserInput.tsx | 17 ++++----- .../base/settings/general/SettingsUsers.tsx | 6 ++-- src/models/app.ts | 1 - src/store/app.ts | 2 -- src/style/components/button.styl | 9 +++++ src/style/components/selector.styl | 9 ++--- vite.config.ts | 15 +++++++- 31 files changed, 71 insertions(+), 274 deletions(-) delete mode 100644 src/assets/icons/arrow.svg delete mode 100644 src/assets/icons/brightness.svg delete mode 100644 src/assets/icons/charge.svg delete mode 100644 src/assets/icons/checkbox.svg delete mode 100644 src/assets/icons/close.svg delete mode 100644 src/assets/icons/collapse.svg delete mode 100644 src/assets/icons/eye.svg delete mode 100644 src/assets/icons/hibernate.svg delete mode 100644 src/assets/icons/loader.svg delete mode 100644 src/assets/icons/restart.svg delete mode 100644 src/assets/icons/settings.svg delete mode 100644 src/assets/icons/shutdown.svg delete mode 100644 src/assets/icons/suspend.svg delete mode 100644 src/assets/icons/user.svg delete mode 100644 src/components/app/AppBar.tsx diff --git a/package-lock.json b/package-lock.json index 89adf53..526d7a2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "osmos-v3", "version": "0.0.0", "dependencies": { + "@lucide/vue": "^1.17.0", "css-doodle": "^0.51.0", "lodash": "^4.18.1", "mousetrap": "^1.6.5", @@ -660,6 +661,15 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lucide/vue": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@lucide/vue/-/vue-1.17.0.tgz", + "integrity": "sha512-6Q1ZHgr5FbmJzKWe5BxlNdjLj2lbmuH1zwDtVzUJofX0w9UREwKgq4F4jwKqFYyyIS4Rj3FiJvDi2k6djukmmw==", + "license": "ISC", + "peerDependencies": { + "vue": ">=3.0.1" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", diff --git a/package.json b/package.json index 39c10b4..405d3b9 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "type-check": "vue-tsc --build" }, "dependencies": { + "@lucide/vue": "^1.17.0", "css-doodle": "^0.51.0", "lodash": "^4.18.1", "mousetrap": "^1.6.5", diff --git a/src/assets/icons/arrow.svg b/src/assets/icons/arrow.svg deleted file mode 100644 index cc13071..0000000 --- a/src/assets/icons/arrow.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/src/assets/icons/brightness.svg b/src/assets/icons/brightness.svg deleted file mode 100644 index ffea846..0000000 --- a/src/assets/icons/brightness.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/src/assets/icons/charge.svg b/src/assets/icons/charge.svg deleted file mode 100644 index 109976d..0000000 --- a/src/assets/icons/charge.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/src/assets/icons/checkbox.svg b/src/assets/icons/checkbox.svg deleted file mode 100644 index a779df8..0000000 --- a/src/assets/icons/checkbox.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/assets/icons/close.svg b/src/assets/icons/close.svg deleted file mode 100644 index 13eccd1..0000000 --- a/src/assets/icons/close.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/src/assets/icons/collapse.svg b/src/assets/icons/collapse.svg deleted file mode 100644 index ec6d74d..0000000 --- a/src/assets/icons/collapse.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - diff --git a/src/assets/icons/eye.svg b/src/assets/icons/eye.svg deleted file mode 100644 index 8e708cd..0000000 --- a/src/assets/icons/eye.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - diff --git a/src/assets/icons/hibernate.svg b/src/assets/icons/hibernate.svg deleted file mode 100644 index 76d1bbd..0000000 --- a/src/assets/icons/hibernate.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - diff --git a/src/assets/icons/loader.svg b/src/assets/icons/loader.svg deleted file mode 100644 index dcee328..0000000 --- a/src/assets/icons/loader.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/icons/restart.svg b/src/assets/icons/restart.svg deleted file mode 100644 index f1e6f2c..0000000 --- a/src/assets/icons/restart.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/src/assets/icons/settings.svg b/src/assets/icons/settings.svg deleted file mode 100644 index 5c85c29..0000000 --- a/src/assets/icons/settings.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/src/assets/icons/shutdown.svg b/src/assets/icons/shutdown.svg deleted file mode 100644 index 8b204b4..0000000 --- a/src/assets/icons/shutdown.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/src/assets/icons/suspend.svg b/src/assets/icons/suspend.svg deleted file mode 100644 index a888e3c..0000000 --- a/src/assets/icons/suspend.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/src/assets/icons/user.svg b/src/assets/icons/user.svg deleted file mode 100644 index d7755a9..0000000 --- a/src/assets/icons/user.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - diff --git a/src/components/app/AppBar.tsx b/src/components/app/AppBar.tsx deleted file mode 100644 index cda4b24..0000000 --- a/src/components/app/AppBar.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { defineComponent } from 'vue' -import { useAppStore } from '@/store/app' -import timer from '@/utils/time' -import BatteryIcon from '@/components/base/BatteryIcon' -import BrightIcon from '@/components/base/BrightIcon' - -export default defineComponent({ - name: 'AppBar', - - setup() { - const appStore = useAppStore() - - return () => ( -
-
{timer.longTime}
-
- {appStore.battery && } - {!!appStore.brightness && } -
-
- ) - } -}) diff --git a/src/components/app/AppButton.tsx b/src/components/app/AppButton.tsx index a689090..38aeb38 100644 --- a/src/components/app/AppButton.tsx +++ b/src/components/app/AppButton.tsx @@ -1,5 +1,5 @@ import { defineComponent, computed, h } from 'vue' -import AppIcon from '@/components/app/AppIcon.vue' +import { LoaderCircle } from '@lucide/vue' const prefix = 'app-button' @@ -54,7 +54,7 @@ export default defineComponent({ const content = {slots.default?.()} const loader = props.loading && ( - {slots.loader?.() || } + {slots.loader?.() || } ) diff --git a/src/components/app/AppCheckbox.tsx b/src/components/app/AppCheckbox.tsx index a21ec56..3dc9473 100644 --- a/src/components/app/AppCheckbox.tsx +++ b/src/components/app/AppCheckbox.tsx @@ -1,4 +1,4 @@ -import AppIcon from '@/components/app/AppIcon.vue' +import { Check } from '@lucide/vue' import { defineComponent, computed } from 'vue' export default defineComponent({ @@ -24,7 +24,7 @@ export default defineComponent({