diff --git a/components.d.ts b/components.d.ts
new file mode 100644
index 0000000..b0e6dae
--- /dev/null
+++ b/components.d.ts
@@ -0,0 +1,56 @@
+/* eslint-disable */
+// @ts-nocheck
+// Generated by unplugin-vue-components
+// Read more: https://github.com/vuejs/core/pull/3399
+// biome-ignore lint: disable
+export {}
+
+/* prettier-ignore */
+declare module 'vue' {
+ export interface GlobalComponents {
+ BaseBoard: typeof import('./src/components/equipments/BaseBoard.vue')['default']
+ Canvas: typeof import('./src/components/Canvas.vue')['default']
+ CollapsibleSection: typeof import('./src/components/CollapsibleSection.vue')['default']
+ ComponentSelector: typeof import('./src/components/LabCanvas/ComponentSelector.vue')['default']
+ DDR: typeof import('./src/components/equipments/DDR.vue')['default']
+ DDS: typeof import('./src/components/equipments/DDS.vue')['default']
+ DDSPropertyEditor: typeof import('./src/components/equipments/DDSPropertyEditor.vue')['default']
+ DiagramCanvas: typeof import('./src/components/LabCanvas/DiagramCanvas.vue')['default']
+ Dialog: typeof import('./src/components/Dialog.vue')['default']
+ ETH: typeof import('./src/components/equipments/ETH.vue')['default']
+ HDMI: typeof import('./src/components/equipments/HDMI.vue')['default']
+ LabCanvas: typeof import('./src/components/LabCanvasNew/LabCanvas.vue')['default']
+ LabCanvasNew: typeof import('./src/components/LabCanvas/LabCanvasNew.vue')['default']
+ LabComponentsDrawer: typeof import('./src/components/LabCanvasNew/LabComponentsDrawer.vue')['default']
+ LabComponentsDrawerNew: typeof import('./src/components/LabCanvas/LabComponentsDrawerNew.vue')['default']
+ LoginCard: typeof import('./src/components/LoginCard.vue')['default']
+ MarkdownRenderer: typeof import('./src/components/MarkdownRenderer.vue')['default']
+ MechanicalButton: typeof import('./src/components/equipments/MechanicalButton.vue')['default']
+ MotherBoard: typeof import('./src/components/equipments/MotherBoard.vue')['default']
+ MotherBoardCaps: typeof import('./src/components/equipments/MotherBoardCaps.vue')['default']
+ Navbar: typeof import('./src/components/Navbar.vue')['default']
+ PG2L100H_FBG676: typeof import('./src/components/equipments/PG2L100H_FBG676.vue')['default']
+ Pin: typeof import('./src/components/equipments/Pin.vue')['default']
+ PopButton: typeof import('./src/components/PopButton.vue')['default']
+ PropertyEditor: typeof import('./src/components/PropertyEditor.vue')['default']
+ PropertyPanel: typeof import('./src/components/PropertyPanel.vue')['default']
+ RekaSplitterGroup: typeof import('reka-ui')['SplitterGroup']
+ RouterLink: typeof import('vue-router')['RouterLink']
+ RouterView: typeof import('vue-router')['RouterView']
+ SD: typeof import('./src/components/equipments/SD.vue')['default']
+ SevenSegmentDisplay: typeof import('./src/components/equipments/SevenSegmentDisplay.vue')['default']
+ SFP: typeof import('./src/components/equipments/SFP.vue')['default']
+ Sidebar: typeof import('./src/components/Sidebar.vue')['default']
+ SMA: typeof import('./src/components/equipments/SMA.vue')['default']
+ SMT_LED: typeof import('./src/components/equipments/SMT_LED.vue')['default']
+ SplitterGroup: typeof import('reka-ui')['SplitterGroup']
+ SplitterPanel: typeof import('reka-ui')['SplitterPanel']
+ SplitterResizeHandle: typeof import('reka-ui')['SplitterResizeHandle']
+ Switch: typeof import('./src/components/equipments/Switch.vue')['default']
+ ThemeControlButton: typeof import('./src/components/ThemeControlButton.vue')['default']
+ ThemeControlToggle: typeof import('./src/components/ThemeControlToggle.vue')['default']
+ TutorialCarousel: typeof import('./src/components/TutorialCarousel.vue')['default']
+ UploadCard: typeof import('./src/components/UploadCard.vue')['default']
+ Wire: typeof import('./src/components/equipments/Wire.vue')['default']
+ }
+}
diff --git a/src/assets/base.css b/src/assets/base.css
new file mode 100644
index 0000000..fca00df
--- /dev/null
+++ b/src/assets/base.css
@@ -0,0 +1,10 @@
+@import "tailwindcss";
+
+@plugin "daisyui" {
+ themes: winter --default, night --prefersdark;
+}
+
+@custom-variant dark (&:where([data-theme=night], [data-theme=night] *));
+@custom-variant light (&:where([data-theme=winter], [data-theme=winter] *));
+
+
diff --git a/src/assets/main.css b/src/assets/main.css
index 97e01b6..a204c2e 100644
--- a/src/assets/main.css
+++ b/src/assets/main.css
@@ -1,11 +1,4 @@
-@import "tailwindcss";
-
-@plugin "daisyui" {
- themes: winter --default, night --prefersdark;
-}
-
-@custom-variant dark (&:where([data-theme=night], [data-theme=night] *));
-@custom-variant light (&:where([data-theme=winter], [data-theme=winter] *));
+@import "base.css";
/* 禁止所有图像和SVG选择 */
img, svg {
diff --git a/src/components/ComponentSelector.vue b/src/components/LabCanvas/ComponentSelector.vue
similarity index 98%
rename from src/components/ComponentSelector.vue
rename to src/components/LabCanvas/ComponentSelector.vue
index b477ed9..58f6a89 100644
--- a/src/components/ComponentSelector.vue
+++ b/src/components/LabCanvas/ComponentSelector.vue
@@ -181,8 +181,8 @@
+
\ No newline at end of file
diff --git a/vite.config.ts b/vite.config.ts
index fc60a23..51a0492 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -6,6 +6,8 @@ import vueJsx from '@vitejs/plugin-vue-jsx'
import vueDevTools from 'vite-plugin-vue-devtools'
import tailwindcss from '@tailwindcss/postcss'
import autoprefixer from 'autoprefixer'
+import Components from 'unplugin-vue-components/vite'
+import RekaResolver from 'reka-ui/resolver'
// https://vite.dev/config/
export default defineConfig({
@@ -20,6 +22,18 @@ export default defineConfig({
}),
vueJsx(),
vueDevTools(),
+ Components(
+ {
+ dts: true,
+ resolvers: [
+ RekaResolver()
+
+ // RekaResolver({
+ // prefix: '' // use the prefix option to add Prefix to the imported components
+ // })
+ ],
+ }
+ )
],
resolve: {
alias: {