diff --git a/package-lock.json b/package-lock.json index 0c6b5cd..892e4f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1141,7 +1141,6 @@ "integrity": "sha512-/rnwfSWS3qwUSzvHynUTORF9xSJi7PCR9yXkxUOnRrNqyKmCmh3FPHH+E9BbgqxXfTevGXBqgnlh9kMb+9T5XA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.5", @@ -1181,7 +1180,6 @@ "integrity": "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", @@ -1514,7 +1512,6 @@ "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "undici-types": "~6.21.0" } @@ -1565,7 +1562,6 @@ "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.47.0", "@typescript-eslint/types": "8.47.0", @@ -1784,7 +1780,6 @@ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2147,7 +2142,6 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -3253,7 +3247,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3281,7 +3274,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -3415,7 +3407,6 @@ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -3432,7 +3423,6 @@ "integrity": "sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "prettier": "^3.0.0", "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" @@ -3762,7 +3752,6 @@ "integrity": "sha512-d1R+3pFa39LXoHCsxHmV//D2pSFZlEMlnxCVQ54TlrQv+4o5pewJO0/Pc5MUp+j71PJrOrPJHTvREZJHn+ymDQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", @@ -3930,7 +3919,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3993,7 +3981,6 @@ "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", diff --git a/src/lib/assets/sprite.svg b/src/lib/assets/sprite.svg new file mode 100644 index 0000000..04282cf --- /dev/null +++ b/src/lib/assets/sprite.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/lib/components/icon/Icon.svelte b/src/lib/components/icon/Icon.svelte new file mode 100644 index 0000000..1773b9c --- /dev/null +++ b/src/lib/components/icon/Icon.svelte @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/src/lib/components/icon/Sprite.svelte b/src/lib/components/icon/Sprite.svelte new file mode 100644 index 0000000..36f31bc --- /dev/null +++ b/src/lib/components/icon/Sprite.svelte @@ -0,0 +1,9 @@ + + + + + {@html SpriteSvg} + \ No newline at end of file diff --git a/src/lib/stores/sidebarStore.ts b/src/lib/stores/sidebarStore.ts new file mode 100644 index 0000000..8372918 --- /dev/null +++ b/src/lib/stores/sidebarStore.ts @@ -0,0 +1,33 @@ +import { writable } from 'svelte/store'; + + +interface SidebarState { + isOpen: boolean; + isExpanded: boolean; +} + + +export const sidebarStore = writable({ + isOpen: false, + isExpanded: false, +}) + +/** + * 切换侧边栏打开、隐藏(偏移隐藏)状态 + */ +export const toggleSidebar = () => { + sidebarStore.update(state => ({ + ...state, + isOpen: !state.isOpen, + })); +} + +/** + * 切换侧边栏展开状态 + */ +export const toggleSidebarOpen = () => { + sidebarStore.update(state => ({ + ...state, + isExpanded: !state.isExpanded, + })); +} \ No newline at end of file diff --git a/src/lib/types/icon-ids.ts b/src/lib/types/icon-ids.ts new file mode 100644 index 0000000..85aa646 --- /dev/null +++ b/src/lib/types/icon-ids.ts @@ -0,0 +1,3 @@ +export type IconId = { + [key: string]: string; +}; \ No newline at end of file diff --git a/src/lib/widget/ThemeSelector.svelte b/src/lib/widget/ThemeSelector.svelte index e4596fb..1d4cb76 100644 --- a/src/lib/widget/ThemeSelector.svelte +++ b/src/lib/widget/ThemeSelector.svelte @@ -9,7 +9,7 @@ }; -