From 070b49cbad594ceb5d53517f412485e61c6c1e50 Mon Sep 17 00:00:00 2001 From: Ku6epXBOCTuK Date: Fri, 6 Feb 2026 09:10:33 +0500 Subject: [PATCH] feat: start implement image upload and cropper --- .gitignore | 2 + src/components/image/CropInline.svelte | 108 +++++++++++++++++++++++ src/components/image/ImageManager.svelte | 48 ++++++++++ src/components/layout/AppHeader.svelte | 4 - src/components/layout/PanelBar.svelte | 29 +----- src/components/panel/PanelPreview.svelte | 25 ++++++ src/components/ui/Button.svelte | 4 +- src/components/ui/Icons/IconEdit.svelte | 14 +++ 8 files changed, 203 insertions(+), 31 deletions(-) create mode 100644 src/components/image/CropInline.svelte create mode 100644 src/components/image/ImageManager.svelte create mode 100644 src/components/panel/PanelPreview.svelte create mode 100644 src/components/ui/Icons/IconEdit.svelte diff --git a/.gitignore b/.gitignore index d9923a7..743ef9c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ node_modules /.svelte-kit /build /coverage +/.VSCodeCounter # OS .DS_Store @@ -22,3 +23,4 @@ Thumbs.db # Vite vite.config.js.timestamp-* vite.config.ts.timestamp-* + diff --git a/src/components/image/CropInline.svelte b/src/components/image/CropInline.svelte new file mode 100644 index 0000000..f1925f9 --- /dev/null +++ b/src/components/image/CropInline.svelte @@ -0,0 +1,108 @@ + + +
+ +
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/src/components/image/ImageManager.svelte b/src/components/image/ImageManager.svelte new file mode 100644 index 0000000..232c6d3 --- /dev/null +++ b/src/components/image/ImageManager.svelte @@ -0,0 +1,48 @@ + + + +
+ + +
+
+ + + + + + + + + +
+
+ + diff --git a/src/components/layout/AppHeader.svelte b/src/components/layout/AppHeader.svelte index a4b60a9..b22e0ca 100644 --- a/src/components/layout/AppHeader.svelte +++ b/src/components/layout/AppHeader.svelte @@ -3,10 +3,6 @@ import IconSun from "$components/ui/Icons/IconSun.svelte"; import { themeState } from "$states/theme.svelte"; - interface Props {} - - let {}: Props = $props(); - function toggleTheme() { themeState.toggle(); } diff --git a/src/components/layout/PanelBar.svelte b/src/components/layout/PanelBar.svelte index 3cd7d2a..6b6ebff 100644 --- a/src/components/layout/PanelBar.svelte +++ b/src/components/layout/PanelBar.svelte @@ -1,32 +1,11 @@
- - - 0 / 0 - - {/snippet} - - Панели + +
diff --git a/src/components/ui/Button.svelte b/src/components/ui/Button.svelte index 46a8949..d920627 100644 --- a/src/components/ui/Button.svelte +++ b/src/components/ui/Button.svelte @@ -4,13 +4,13 @@ interface Props { icon: Component; - onclick: MouseEventHandler; + onclick?: MouseEventHandler; disabled?: boolean; label?: string; type?: "primary" | "secondary" | "danger" | "outline"; } - let { icon: Icon, onclick, disabled = false, label = "", type = "primary" }: Props = $props(); + let { icon: Icon, onclick = () => {}, disabled = false, label = "", type = "primary" }: Props = $props();