From 95e05515402bce02d2c49d3f3b3ead8fb66f6003 Mon Sep 17 00:00:00 2001 From: Serverus Snap Date: Tue, 22 Jul 2025 15:58:34 +0300 Subject: [PATCH] add new system --- package-lock.json | 19 ++- package.json | 4 +- src/lib/Alert.svelte | 40 +++++ src/lib/Scropper.svelte | 136 +++++++++------ src/routes/+page.svelte | 320 ++++++++++++++++++++--------------- src/routes/test/+page.svelte | 113 +++++++++++++ 6 files changed, 446 insertions(+), 186 deletions(-) create mode 100644 src/lib/Alert.svelte create mode 100644 src/routes/test/+page.svelte diff --git a/package-lock.json b/package-lock.json index 49c93f9..ee8a87d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,9 @@ "@sveltejs/adapter-node": "^5.2.13", "cropperjs": "^2.0.0", "dom-to-image": "^2.6.0", - "html2canvas": "^1.4.1" + "html2canvas": "^1.4.1", + "svelte-crop-window": "^0.1.1", + "svelte-easy-crop": "^4.0.1" }, "devDependencies": { "@cloudparker/easy-cropperjs-svelte": "^2.4.0", @@ -2353,6 +2355,21 @@ "node": ">=18" } }, + "node_modules/svelte-crop-window": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/svelte-crop-window/-/svelte-crop-window-0.1.1.tgz", + "integrity": "sha512-N5696nYO38iHuYYaafOR6xWJmh4lnCnRBwdTbMBAiAnILMAmR4LoleIlfeCyUVuxTaDtw3tG9KB2MVntQP4R9w==", + "license": "MIT" + }, + "node_modules/svelte-easy-crop": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svelte-easy-crop/-/svelte-easy-crop-4.0.1.tgz", + "integrity": "sha512-0k7vVpHVLrPyobSXqey5IJUmFVxOoCaQrobFEsFXpSCyK8N5jTkRj1VX6NuCOZK8XXcMAqUvV0MktB8D5x1oCw==", + "license": "MIT", + "peerDependencies": { + "svelte": "^5.0.0" + } + }, "node_modules/tailwindcss": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.1.11.tgz", diff --git a/package.json b/package.json index ac96916..c402de2 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,8 @@ "@sveltejs/adapter-node": "^5.2.13", "cropperjs": "^2.0.0", "dom-to-image": "^2.6.0", - "html2canvas": "^1.4.1" + "html2canvas": "^1.4.1", + "svelte-crop-window": "^0.1.1", + "svelte-easy-crop": "^4.0.1" } } diff --git a/src/lib/Alert.svelte b/src/lib/Alert.svelte new file mode 100644 index 0000000..6203ae9 --- /dev/null +++ b/src/lib/Alert.svelte @@ -0,0 +1,40 @@ + + +
+
+ {#if isOpen} + + {/if} +
+
diff --git a/src/lib/Scropper.svelte b/src/lib/Scropper.svelte index 2e093d7..df4ec45 100644 --- a/src/lib/Scropper.svelte +++ b/src/lib/Scropper.svelte @@ -1,63 +1,99 @@ - -
-
- {#if file} - - {/if} +
+
+
- - +
+ + diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 5fd10fb..1572aff 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,28 +1,41 @@ - -
-
document.getElementById("fileInput").click()} - > - - {#if !image} -
- - - -

Перетащите изображение 512×512

-

или кликните для выбора

-
- {/if} +
+ {#if isModalOpen} +
+
+
+ +
- - {#if image} -
- - - {#if text} -
-

+ Сохранить + +

+
+ {:else} +
+
document.getElementById("fileInput").click()} + > + + {#if !image} +
+ - {text} - + + +

Перетащите изображение

+

или кликните для выбора

{/if} -
- {/if} - validateAndLoadImage(e.target.files[0])} - /> -
- - - {#if error} -

{error}

- {/if} - - -
- - -
- -

- Поддерживаются только изображения размером 512×512 пикселей -

- - - {#if isModalOpen} -
-
-

Crop your image

- {#if file} - + + {#if image} +
+ + + {#if text} +
+

+ {text} +

+
+ {/if} +
{/if} -
- -
+ + + validateAndLoadImage((e.target as HTMLInputElement).files[0])} + />
+ + + {#if error} +

{error}

+ {/if} + + +
+ + +
+ +

+ Размер изображения 512×512 пикселей +

{/if}
diff --git a/src/routes/test/+page.svelte b/src/routes/test/+page.svelte new file mode 100644 index 0000000..d2903ea --- /dev/null +++ b/src/routes/test/+page.svelte @@ -0,0 +1,113 @@ + + +
+
+ +
+ +
+ + +
+ + {#if croppedImage} + + + {/if} +
+ +