From 3d2392f6bdb95692a2490cc454110b6ebd1d71e8 Mon Sep 17 00:00:00 2001 From: arlo Date: Tue, 27 Jan 2026 23:02:59 +0800 Subject: [PATCH] refactor: migrate shared components to ui package --- alias.ts | 1 + packages/ui/package.json | 7 +++- .../src/components/DataVirtualList.vue} | 0 .../src/components/DisplayBadge.vue} | 2 +- .../src/components/DisplayCloseButton.vue} | 0 .../src/components/DisplayDuration.vue} | 3 +- .../src/components/DisplayIconButton.vue} | 0 .../src/components/DisplayNumberBadge.vue} | 0 .../src/components/DisplayNumberWithUnit.vue} | 0 .../src/components/DisplayTimestamp.vue} | 0 packages/ui/src/utils/__tests__/color.test.ts | 36 +++++++++++++++++ packages/ui/src/utils/color.ts | 21 ++++++++++ packages/ui/src/utils/format.ts | 19 +++++++++ .../src/app/components/assets/BaseInfo.vue | 1 + .../vite/src/app/components/assets/List.vue | 1 + .../app/components/chart/ModuleFlamegraph.vue | 1 + .../src/app/components/chunks/BaseInfo.vue | 1 + .../src/app/components/chunks/FlatList.vue | 2 + .../vite/src/app/components/chunks/Graph.vue | 1 + .../src/app/components/chunks/Imports.vue | 1 + .../src/app/components/data/AssetDetails.vue | 3 ++ .../components/data/AssetDetailsLoader.vue | 1 + .../src/app/components/data/ChunkDetails.vue | 1 + .../components/data/ChunkDetailsLoader.vue | 1 + .../components/data/ModuleDetailsLoader.vue | 1 + .../components/data/PackageDetailsLoader.vue | 2 + .../src/app/components/data/PathSelector.vue | 1 + .../components/data/PluginDetailsLoader.vue | 6 ++- .../components/data/PluginDetailsTable.vue | 3 ++ .../app/components/data/RawEventsTable.vue | 2 + .../app/components/display/ClusterBadge.vue | 2 +- .../display/ExpandableContainer.vue | 1 + .../src/app/components/display/ModuleId.vue | 1 + .../components/flowmap/ModuleFlowDetails.vue | 2 + .../app/components/flowmap/NodeAssetInfo.vue | 1 + .../app/components/flowmap/NodeChunkInfo.vue | 1 + .../app/components/flowmap/NodeModuleInfo.vue | 1 + .../app/components/flowmap/NodePluginInfo.vue | 4 +- .../src/app/components/flowmap/PluginFlow.vue | 2 + .../app/components/modules/BuildMetrics.vue | 3 +- .../app/components/modules/DetailedList.vue | 1 + .../src/app/components/modules/FlatList.vue | 1 + .../src/app/components/packages/Importers.vue | 1 + .../src/app/components/packages/Table.vue | 1 + .../app/components/panel/SessionSelector.vue | 2 + .../src/app/components/plugins/FlatList.vue | 1 + .../src/app/components/plugins/Sunburst.vue | 1 + .../app/pages/session/[session]/chunks.vue | 1 + .../src/app/pages/session/[session]/index.vue | 3 ++ .../src/app/utils/__tests__/color.test.ts | 39 ++----------------- packages/vite/src/app/utils/color.ts | 22 +---------- packages/vite/src/app/utils/format.ts | 20 ---------- pnpm-lock.yaml | 3 ++ tsconfig.base.json | 3 ++ 54 files changed, 151 insertions(+), 84 deletions(-) rename packages/{vite/src/app/components/data/VirtualList.vue => ui/src/components/DataVirtualList.vue} (100%) rename packages/{vite/src/app/components/display/Badge.vue => ui/src/components/DisplayBadge.vue} (97%) rename packages/{vite/src/app/components/display/CloseButton.vue => ui/src/components/DisplayCloseButton.vue} (100%) rename packages/{vite/src/app/components/display/Duration.vue => ui/src/components/DisplayDuration.vue} (90%) rename packages/{vite/src/app/components/display/IconButton.vue => ui/src/components/DisplayIconButton.vue} (100%) rename packages/{vite/src/app/components/display/NumberBadge.vue => ui/src/components/DisplayNumberBadge.vue} (100%) rename packages/{vite/src/app/components/display/NumberWithUnit.vue => ui/src/components/DisplayNumberWithUnit.vue} (100%) rename packages/{vite/src/app/components/display/Timestamp.vue => ui/src/components/DisplayTimestamp.vue} (100%) create mode 100644 packages/ui/src/utils/__tests__/color.test.ts create mode 100644 packages/ui/src/utils/color.ts create mode 100644 packages/ui/src/utils/format.ts diff --git a/alias.ts b/alias.ts index e552f1d2..544f112b 100644 --- a/alias.ts +++ b/alias.ts @@ -23,6 +23,7 @@ export const alias = { '@vitejs/devtools-ui/unocss': r('ui/src/unocss/index.ts'), '@vitejs/devtools-ui/components': r('ui/src/components'), '@vitejs/devtools-ui/composables': r('ui/src/composables'), + '@vitejs/devtools-ui/utils': r('ui/src/utils'), } // update tsconfig.base.json diff --git a/packages/ui/package.json b/packages/ui/package.json index 3dc07e27..e248758a 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -35,6 +35,10 @@ "./composables/*": { "types": "./src/composables/*.ts", "import": "./src/composables/*.ts" + }, + "./utils/*": { + "types": "./src/utils/*.ts", + "import": "./src/utils/*.ts" } }, "main": "./src/index.ts", @@ -42,6 +46,7 @@ "peerDependencies": { "@vueuse/core": "*", "unocss": "*", - "vue": "*" + "vue": "*", + "vue-virtual-scroller": ">=2.0.0-beta.0" } } diff --git a/packages/vite/src/app/components/data/VirtualList.vue b/packages/ui/src/components/DataVirtualList.vue similarity index 100% rename from packages/vite/src/app/components/data/VirtualList.vue rename to packages/ui/src/components/DataVirtualList.vue diff --git a/packages/vite/src/app/components/display/Badge.vue b/packages/ui/src/components/DisplayBadge.vue similarity index 97% rename from packages/vite/src/app/components/display/Badge.vue rename to packages/ui/src/components/DisplayBadge.vue index faabd08a..5e26e2cb 100644 --- a/packages/vite/src/app/components/display/Badge.vue +++ b/packages/ui/src/components/DisplayBadge.vue @@ -3,7 +3,7 @@ import { computed } from 'vue' import { getHashColorFromString, getHsla, -} from '~/utils/color' +} from '../utils/color' const props = withDefaults( defineProps<{ diff --git a/packages/vite/src/app/components/display/CloseButton.vue b/packages/ui/src/components/DisplayCloseButton.vue similarity index 100% rename from packages/vite/src/app/components/display/CloseButton.vue rename to packages/ui/src/components/DisplayCloseButton.vue diff --git a/packages/vite/src/app/components/display/Duration.vue b/packages/ui/src/components/DisplayDuration.vue similarity index 90% rename from packages/vite/src/app/components/display/Duration.vue rename to packages/ui/src/components/DisplayDuration.vue index d061a67d..8b56f241 100644 --- a/packages/vite/src/app/components/display/Duration.vue +++ b/packages/ui/src/components/DisplayDuration.vue @@ -1,6 +1,7 @@