@sentroy-co/client-sdk 2.13.4 → 2.13.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/dist/react/crop/CropDialog.d.ts +1 -2
- package/dist/react/crop/CropDialog.d.ts.map +1 -1
- package/dist/react/crop/CropDialog.js +48 -159
- package/dist/react/crop/CropDialog.js.map +1 -1
- package/dist/react/crop/styles.css +802 -59
- package/package.json +2 -2
- package/src/react/crop/CropDialog.tsx +125 -361
package/README.md
CHANGED
|
@@ -78,6 +78,58 @@ console.log(media.url) // signed URL, served from the CDN
|
|
|
78
78
|
|
|
79
79
|
That's the smallest useful surface. Every other resource (`domains`, `mailboxes`, `templates`, `inbox`, `audience`, `webhooks`, `suppressions`, `logs`, `buckets`, `media`) follows the same `sentroy.<resource>.<verb>(...)` shape with full TypeScript types.
|
|
80
80
|
|
|
81
|
+
## React: CropDialog
|
|
82
|
+
|
|
83
|
+
A full-screen, iOS Photos-style image crop dialog built on [`react-mobile-cropper`](https://advanced-cropper.github.io/react-mobile-cropper/) (which sits on top of [`react-advanced-cropper`](https://advanced-cropper.github.io/react-advanced-cropper/)). Lazy subpath — only imported when you reference it.
|
|
84
|
+
|
|
85
|
+
**1. Add the stylesheet once** (root layout / `_app` / global CSS entry — anywhere it loads on every page that may open the dialog):
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
import "@sentroy-co/client-sdk/react/crop/styles.css"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
We ship `react-mobile-cropper`'s baseline `style.css`, no extra theme. If you'd rather use the desktop-flavored variants (`compact` / `bubble` / `classic` / `corners` from advanced-cropper, or the mobile baseline directly), see [advanced-cropper themes](https://advanced-cropper.github.io/react-advanced-cropper/docs/guides/themes) and import the package CSS yourself instead of ours.
|
|
92
|
+
|
|
93
|
+
**2. Open the dialog with a `File`:**
|
|
94
|
+
|
|
95
|
+
```tsx
|
|
96
|
+
"use client"
|
|
97
|
+
import { useState } from "react"
|
|
98
|
+
import dynamic from "next/dynamic"
|
|
99
|
+
|
|
100
|
+
const CropDialog = dynamic(
|
|
101
|
+
() => import("@sentroy-co/client-sdk/react/crop").then((m) => m.CropDialog),
|
|
102
|
+
{ ssr: false },
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
export function UploadButton() {
|
|
106
|
+
const [file, setFile] = useState<File | null>(null)
|
|
107
|
+
return (
|
|
108
|
+
<>
|
|
109
|
+
<input
|
|
110
|
+
type="file"
|
|
111
|
+
accept="image/*"
|
|
112
|
+
onChange={(e) => setFile(e.target.files?.[0] ?? null)}
|
|
113
|
+
/>
|
|
114
|
+
{file && (
|
|
115
|
+
<CropDialog
|
|
116
|
+
open
|
|
117
|
+
file={file}
|
|
118
|
+
defaultAspect="1:1"
|
|
119
|
+
onClose={(out) => {
|
|
120
|
+
setFile(null)
|
|
121
|
+
if (out) uploadCroppedFile(out) // Apply → cropped File
|
|
122
|
+
// out === null → Cancel; out === file → Use original
|
|
123
|
+
}}
|
|
124
|
+
/>
|
|
125
|
+
)}
|
|
126
|
+
</>
|
|
127
|
+
)
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
The dialog returns a `File` (cropped or original), `null` on cancel. Aspect presets, rotate (`R` / `Shift+R`), flip, zoom and a live preview are built in.
|
|
132
|
+
|
|
81
133
|
## Env Vault
|
|
82
134
|
|
|
83
135
|
Manage your env vars in the dashboard at [vault.sentroy.com](https://vault.sentroy.com), bootstrap your deploy with one token, and read values via a typed helper — no rebuild on change.
|
|
@@ -7,8 +7,7 @@ export interface CropDialogProps {
|
|
|
7
7
|
onClose: (result: File | null) => void;
|
|
8
8
|
/** Default aspect preset id'si — 'free' (default) veya '1:1', '16:9', vb. */
|
|
9
9
|
defaultAspect?: string;
|
|
10
|
-
/** Output JPEG quality 0-1 (default 0.92).
|
|
11
|
-
* veya orijinal MIME (PNG'ler için PNG korunur). */
|
|
10
|
+
/** Output JPEG quality 0-1 (default 0.92). PNG'ler için PNG korunur. */
|
|
12
11
|
outputQuality?: number;
|
|
13
12
|
}
|
|
14
13
|
export declare function CropDialog({ open, file, onClose, defaultAspect, outputQuality, }: CropDialogProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CropDialog.d.ts","sourceRoot":"","sources":["../../../src/react/crop/CropDialog.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CropDialog.d.ts","sourceRoot":"","sources":["../../../src/react/crop/CropDialog.tsx"],"names":[],"mappings":"AAsCA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAA;IACb;mBACe;IACf,IAAI,EAAE,IAAI,CAAA;IACV,4EAA4E;IAC5E,OAAO,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAA;IACtC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,aAAsB,EACtB,aAAoB,GACrB,EAAE,eAAe,2CA8PjB"}
|
|
@@ -3,31 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CropDialog = CropDialog;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
-
const
|
|
6
|
+
const react_mobile_cropper_1 = require("react-mobile-cropper");
|
|
7
7
|
const react_2 = require("motion/react");
|
|
8
8
|
/**
|
|
9
|
-
* Image crop dialog — iOS Photos benzeri full-screen crop UI.
|
|
10
|
-
* `react-
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* Image crop dialog — iOS Photos benzeri full-screen crop UI.
|
|
10
|
+
* `react-mobile-cropper` üzerine kurulu; paket native olarak iOS-vari
|
|
11
|
+
* stencil + handler + transition davranışı veriyor (manual layout/icon
|
|
12
|
+
* gerek yok).
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
14
|
+
* iOS Photos pattern:
|
|
15
|
+
* - Header: Cancel (sol) — "Crop" başlığı (orta) — Done (sağ)
|
|
16
|
+
* - Main: Cropper full width, stencil ile karartılmış kenar
|
|
17
|
+
* - Bottom toolbar: aspect chip'leri (Free / 1:1 / 4:3 / 16:9 / 3:2 / 9:16)
|
|
18
|
+
* + sağ tarafta tek rotate ikonu
|
|
19
19
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* - Rotate 90° CW/CCW butonları (R / Shift+R)
|
|
23
|
-
* - Cropper'ın `getCanvas()` çıktısından **live preview**
|
|
24
|
-
* thumbnail — kullanıcı Apply'a basmadan sonucu görür.
|
|
25
|
-
* - Output pixel boyutu (örn. 1200×800) read-out.
|
|
26
|
-
* - Apply: ref üzerinden `getCanvas().toBlob` → File.
|
|
27
|
-
* - "Use original": orijinal File döner; Cancel: null.
|
|
28
|
-
*
|
|
29
|
-
* Tam ekran: `inset-0`, scrim'siz; consent flow gibi destination-only UX —
|
|
30
|
-
* dialog her şeyi kaplar, dikkat dağıtmaz.
|
|
20
|
+
* Preview thumbnail kasıtlı olarak yok — iOS Photos'ta da yok; kullanıcı
|
|
21
|
+
* stencil'in içini direkt görüyor.
|
|
31
22
|
*
|
|
32
23
|
* Lazy subpath (`@sentroy-co/client-sdk/react/crop`) — ana SDK import'u
|
|
33
24
|
* cropper bundle'ı yutmasın.
|
|
@@ -40,17 +31,13 @@ const ASPECT_PRESETS = [
|
|
|
40
31
|
{ id: "3:2", label: "3:2", aspect: 3 / 2 },
|
|
41
32
|
{ id: "9:16", label: "9:16", aspect: 9 / 16 },
|
|
42
33
|
];
|
|
43
|
-
const MAX_PIXEL_GUARD = 50_000_000; // ~24 MP
|
|
44
|
-
const PREVIEW_MAX_DIM = 240;
|
|
34
|
+
const MAX_PIXEL_GUARD = 50_000_000; // ~24 MP
|
|
45
35
|
function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality = 0.92, }) {
|
|
46
36
|
const [imageUrl, setImageUrl] = (0, react_1.useState)(null);
|
|
47
37
|
const [aspectId, setAspectId] = (0, react_1.useState)(defaultAspect);
|
|
48
38
|
const [busy, setBusy] = (0, react_1.useState)(false);
|
|
49
39
|
const [tooLarge, setTooLarge] = (0, react_1.useState)(false);
|
|
50
|
-
const [outputSize, setOutputSize] = (0, react_1.useState)(null);
|
|
51
|
-
const [previewDataUrl, setPreviewDataUrl] = (0, react_1.useState)(null);
|
|
52
40
|
const cropperRef = (0, react_1.useRef)(null);
|
|
53
|
-
const previewRafRef = (0, react_1.useRef)(null);
|
|
54
41
|
// Object URL lifecycle
|
|
55
42
|
(0, react_1.useEffect)(() => {
|
|
56
43
|
if (!open)
|
|
@@ -59,9 +46,6 @@ function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality
|
|
|
59
46
|
setImageUrl(url);
|
|
60
47
|
setAspectId(defaultAspect);
|
|
61
48
|
setTooLarge(false);
|
|
62
|
-
setOutputSize(null);
|
|
63
|
-
setPreviewDataUrl(null);
|
|
64
|
-
// Pixel guard — large image decode tarayıcıyı çökertir
|
|
65
49
|
const img = new Image();
|
|
66
50
|
img.onload = () => {
|
|
67
51
|
if (img.naturalWidth * img.naturalHeight > MAX_PIXEL_GUARD) {
|
|
@@ -69,95 +53,29 @@ function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality
|
|
|
69
53
|
}
|
|
70
54
|
};
|
|
71
55
|
img.src = url;
|
|
72
|
-
return () =>
|
|
73
|
-
URL.revokeObjectURL(url);
|
|
74
|
-
if (previewRafRef.current !== null) {
|
|
75
|
-
cancelAnimationFrame(previewRafRef.current);
|
|
76
|
-
previewRafRef.current = null;
|
|
77
|
-
}
|
|
78
|
-
};
|
|
56
|
+
return () => URL.revokeObjectURL(url);
|
|
79
57
|
}, [open, file, defaultAspect]);
|
|
80
58
|
const aspectRatio = ASPECT_PRESETS.find((p) => p.id === aspectId)?.aspect ?? undefined;
|
|
81
|
-
// Aspect preset değişirse
|
|
82
|
-
// güncelle. `setCoordinates` ile aspect'i zorla.
|
|
59
|
+
// Aspect preset değişirse stencil koordinatlarını yeni aspect'e snap'le
|
|
83
60
|
(0, react_1.useEffect)(() => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (aspectRatio === undefined)
|
|
87
|
-
return;
|
|
88
|
-
const state = cropperRef.current.getState();
|
|
89
|
-
if (!state)
|
|
90
|
-
return;
|
|
91
|
-
const { coordinates } = state;
|
|
92
|
-
if (!coordinates)
|
|
61
|
+
const cropper = cropperRef.current;
|
|
62
|
+
if (!cropper || aspectRatio === undefined)
|
|
93
63
|
return;
|
|
94
|
-
const
|
|
95
|
-
|
|
64
|
+
const state = cropper.getState();
|
|
65
|
+
const c = state?.coordinates;
|
|
66
|
+
if (!c)
|
|
96
67
|
return;
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
cropperRef.current.setCoordinates({
|
|
101
|
-
width: newWidth,
|
|
102
|
-
height: newHeight,
|
|
103
|
-
});
|
|
68
|
+
const newWidth = c.width;
|
|
69
|
+
const newHeight = c.width / aspectRatio;
|
|
70
|
+
cropper.setCoordinates({ width: newWidth, height: newHeight });
|
|
104
71
|
}, [aspectRatio, aspectId]);
|
|
105
|
-
// Live preview render — cropper change event'inde getCanvas() ile
|
|
106
|
-
// küçük thumbnail üret. RAF ile throttle.
|
|
107
|
-
const renderPreview = (0, react_1.useCallback)(() => {
|
|
108
|
-
if (previewRafRef.current !== null) {
|
|
109
|
-
cancelAnimationFrame(previewRafRef.current);
|
|
110
|
-
}
|
|
111
|
-
previewRafRef.current = requestAnimationFrame(() => {
|
|
112
|
-
previewRafRef.current = null;
|
|
113
|
-
const cropper = cropperRef.current;
|
|
114
|
-
if (!cropper)
|
|
115
|
-
return;
|
|
116
|
-
// Önce gerçek crop pixel boyutunu öğren; preview canvas'ını aspect
|
|
117
|
-
// koruyarak max edge PREVIEW_MAX_DIM'e fit ediyoruz. `getCanvas`
|
|
118
|
-
// sadece `width` verince paket aspect'i koruyup height'i otomatik
|
|
119
|
-
// hesaplıyor. `maxWidth/maxHeight` paket API'sinde yok — eski
|
|
120
|
-
// çağrımız sessiz fail edip canvas üretmiyordu.
|
|
121
|
-
const state = cropper.getState();
|
|
122
|
-
const c = state?.coordinates;
|
|
123
|
-
if (!c || c.width === 0 || c.height === 0)
|
|
124
|
-
return;
|
|
125
|
-
const scale = c.width >= c.height
|
|
126
|
-
? PREVIEW_MAX_DIM / c.width
|
|
127
|
-
: PREVIEW_MAX_DIM / c.height;
|
|
128
|
-
const previewWidth = Math.max(1, Math.round(c.width * scale));
|
|
129
|
-
const canvas = cropper.getCanvas({
|
|
130
|
-
width: previewWidth,
|
|
131
|
-
imageSmoothingEnabled: true,
|
|
132
|
-
imageSmoothingQuality: "medium",
|
|
133
|
-
});
|
|
134
|
-
if (!canvas)
|
|
135
|
-
return;
|
|
136
|
-
setOutputSize({ w: Math.round(c.width), h: Math.round(c.height) });
|
|
137
|
-
// Data URL — küçük canvas; performant
|
|
138
|
-
try {
|
|
139
|
-
setPreviewDataUrl(canvas.toDataURL("image/jpeg", 0.7));
|
|
140
|
-
}
|
|
141
|
-
catch {
|
|
142
|
-
// toDataURL nadir tainted-canvas durumunda fail edebilir; sessiz geç
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
}, []);
|
|
146
|
-
const handleCropperChange = (0, react_1.useCallback)(() => {
|
|
147
|
-
renderPreview();
|
|
148
|
-
}, [renderPreview]);
|
|
149
|
-
const handleCropperReady = (0, react_1.useCallback)(() => {
|
|
150
|
-
renderPreview();
|
|
151
|
-
}, [renderPreview]);
|
|
152
72
|
const handleApply = (0, react_1.useCallback)(async () => {
|
|
153
73
|
const cropper = cropperRef.current;
|
|
154
74
|
if (!cropper)
|
|
155
75
|
return;
|
|
156
76
|
setBusy(true);
|
|
157
77
|
try {
|
|
158
|
-
const canvas = cropper.getCanvas({
|
|
159
|
-
imageSmoothingQuality: "high",
|
|
160
|
-
});
|
|
78
|
+
const canvas = cropper.getCanvas({ imageSmoothingQuality: "high" });
|
|
161
79
|
if (!canvas) {
|
|
162
80
|
setBusy(false);
|
|
163
81
|
return;
|
|
@@ -183,13 +101,10 @@ function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality
|
|
|
183
101
|
}, [file, onClose, outputQuality]);
|
|
184
102
|
const handleUseOriginal = (0, react_1.useCallback)(() => onClose(file), [file, onClose]);
|
|
185
103
|
const handleCancel = (0, react_1.useCallback)(() => onClose(null), [onClose]);
|
|
186
|
-
const handleRotate = (0, react_1.useCallback)((
|
|
187
|
-
cropperRef.current?.rotateImage(
|
|
188
|
-
}, []);
|
|
189
|
-
const handleFlip = (0, react_1.useCallback)((axis) => {
|
|
190
|
-
cropperRef.current?.flipImage(axis === "h", axis === "v");
|
|
104
|
+
const handleRotate = (0, react_1.useCallback)(() => {
|
|
105
|
+
cropperRef.current?.rotateImage(90);
|
|
191
106
|
}, []);
|
|
192
|
-
//
|
|
107
|
+
// ESC kapat, R rotate
|
|
193
108
|
(0, react_1.useEffect)(() => {
|
|
194
109
|
if (!open)
|
|
195
110
|
return;
|
|
@@ -205,67 +120,41 @@ function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality
|
|
|
205
120
|
}
|
|
206
121
|
if (e.key === "r" || e.key === "R") {
|
|
207
122
|
e.preventDefault();
|
|
208
|
-
handleRotate(
|
|
123
|
+
handleRotate();
|
|
209
124
|
}
|
|
210
125
|
};
|
|
211
126
|
window.addEventListener("keydown", onKey);
|
|
212
127
|
return () => window.removeEventListener("keydown", onKey);
|
|
213
128
|
}, [open, handleCancel, handleRotate]);
|
|
214
129
|
return ((0, jsx_runtime_1.jsx)(react_2.AnimatePresence, { children: open && imageUrl && ((0, jsx_runtime_1.jsxs)(react_2.motion.div, { initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, transition: { duration: 0.2 },
|
|
215
|
-
//
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
130
|
+
// Inline color — host app'in tema değişkenleri text-white
|
|
131
|
+
// utility'sini override etse bile child icon/text bu rengi
|
|
132
|
+
// inherit eder (rotate ikonu, chip metinleri vs).
|
|
133
|
+
style: { color: "#ffffff" }, className: "fixed inset-0 z-[60] flex flex-col bg-black", children: [(0, jsx_runtime_1.jsxs)("header", { className: "flex items-center justify-between gap-3 px-4 py-3", style: {
|
|
134
|
+
borderBottom: "1px solid rgba(255,255,255,0.08)",
|
|
135
|
+
background: "rgba(0,0,0,0.4)",
|
|
136
|
+
backdropFilter: "blur(8px)",
|
|
137
|
+
}, children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleCancel, disabled: busy, style: { color: "rgba(255,255,255,0.85)" }, className: "rounded-md px-3 py-1.5 text-sm transition-colors hover:bg-white/10 disabled:opacity-50", children: "Cancel" }), (0, jsx_runtime_1.jsxs)("div", { className: "flex min-w-0 flex-col items-center text-center", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-sm font-semibold", children: "Crop" }), (0, jsx_runtime_1.jsx)("span", { style: { color: "rgba(255,255,255,0.5)" }, className: "truncate max-w-xs text-[11px]", children: file.name })] }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleApply, disabled: busy || tooLarge, style: { backgroundColor: "#fff", color: "#0a0a0a" }, className: "rounded-md px-3 py-1.5 text-sm font-medium transition-opacity hover:opacity-90 disabled:opacity-50", children: busy ? "Cropping…" : "Done" })] }), (0, jsx_runtime_1.jsx)("div", { className: "relative flex-1 min-h-0 bg-black", children: tooLarge ? ((0, jsx_runtime_1.jsx)("div", { style: { color: "rgba(255,255,255,0.7)" }, className: "flex h-full w-full items-center justify-center p-6 text-center text-sm", children: "Image too large to crop in browser. Upload as-is or resize beforehand." })) : ((0, jsx_runtime_1.jsx)(react_mobile_cropper_1.Cropper, { ref: cropperRef, src: imageUrl, stencilProps: {
|
|
138
|
+
aspectRatio: aspectRatio,
|
|
139
|
+
}, className: "sentroy-mobile-cropper" })) }), (0, jsx_runtime_1.jsxs)("footer", { className: "flex items-center gap-2 px-3 py-3", style: {
|
|
140
|
+
borderTop: "1px solid rgba(255,255,255,0.08)",
|
|
141
|
+
background: "rgba(0,0,0,0.4)",
|
|
142
|
+
backdropFilter: "blur(8px)",
|
|
143
|
+
}, children: [(0, jsx_runtime_1.jsx)("div", { className: "flex flex-1 items-center gap-1 overflow-x-auto", style: { scrollbarWidth: "none" }, children: ASPECT_PRESETS.map((p) => {
|
|
221
144
|
const active = aspectId === p.id;
|
|
222
145
|
return ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => setAspectId(p.id), style: active
|
|
223
146
|
? { backgroundColor: "#fff", color: "#0a0a0a" }
|
|
224
|
-
:
|
|
225
|
-
? "font-medium"
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
// Stencil props — aspect lock + iOS-like rect stencil grid
|
|
229
|
-
stencilProps: {
|
|
230
|
-
aspectRatio: aspectRatio,
|
|
231
|
-
grid: true,
|
|
232
|
-
movable: true,
|
|
233
|
-
resizable: true,
|
|
234
|
-
},
|
|
235
|
-
// Background overlay'i koyu yap (image dışı kalan kısım)
|
|
236
|
-
backgroundClassName: "sentroy-cropper-background", onChange: handleCropperChange, onReady: handleCropperReady })) }), (0, jsx_runtime_1.jsxs)("aside", { className: "flex w-full shrink-0 flex-col gap-4 overflow-y-auto border-t border-white/10 bg-black/30 p-4 md:w-72 md:max-h-none md:border-l md:border-t-0 max-h-[42vh]", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-[10px] font-medium uppercase tracking-wider text-white/50", children: "Preview" }), outputSize && ((0, jsx_runtime_1.jsxs)("span", { className: "font-mono text-[10px] text-white/40", children: [outputSize.w, "\u00D7", outputSize.h] }))] }), (0, jsx_runtime_1.jsx)("div", { className: "flex min-h-[160px] items-center justify-center rounded-lg border border-white/10 bg-black/50 p-3", children: tooLarge ? ((0, jsx_runtime_1.jsx)("span", { className: "text-[11px] text-white/50", children: "Preview unavailable" })) : previewDataUrl ? (
|
|
237
|
-
/* eslint-disable-next-line @next/next/no-img-element */
|
|
238
|
-
(0, jsx_runtime_1.jsx)("img", { src: previewDataUrl, alt: "Crop preview", className: "max-h-[220px] max-w-full rounded-md object-contain shadow-md" })) : ((0, jsx_runtime_1.jsx)("span", { className: "text-[11px] text-white/40", children: "Adjust crop\u2026" })) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-1.5 text-[11px] text-white/60", children: [(0, jsx_runtime_1.jsx)(Stat, { label: "Aspect", value: ASPECT_PRESETS.find((p) => p.id === aspectId)?.label ??
|
|
239
|
-
"Free" }), outputSize && ((0, jsx_runtime_1.jsx)(Stat, { label: "Output", value: `${outputSize.w} × ${outputSize.h} px` })), (0, jsx_runtime_1.jsx)(Stat, { label: "Format", value: file.type === "image/png" ? "PNG" : "JPEG" })] }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleUseOriginal, disabled: busy, className: "w-full rounded-md border border-white/20 px-3 py-1.5 text-xs text-white/70 transition-colors hover:bg-white/10 hover:text-white disabled:opacity-50 md:mt-auto", children: "Use original (skip crop)" })] })] }), (0, jsx_runtime_1.jsx)("style", { children: `
|
|
240
|
-
.sentroy-cropper {
|
|
147
|
+
: { color: "rgba(255,255,255,0.7)" }, className: "shrink-0 rounded-full px-3 py-1.5 text-xs transition-colors " +
|
|
148
|
+
(active ? "font-medium" : "hover:bg-white/10"), children: p.label }, p.id));
|
|
149
|
+
}) }), (0, jsx_runtime_1.jsx)("div", { className: "mx-2 hidden h-5 w-px md:block", style: { background: "rgba(255,255,255,0.15)" } }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleRotate, title: "Rotate (R)", "aria-label": "Rotate", style: { color: "rgba(255,255,255,0.85)" }, className: "inline-flex shrink-0 size-9 items-center justify-center rounded-full transition-colors hover:bg-white/10", children: (0, jsx_runtime_1.jsx)(RotateIcon, {}) }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleUseOriginal, disabled: busy, style: { color: "rgba(255,255,255,0.6)" }, className: "hidden shrink-0 rounded-md px-3 py-1.5 text-[11px] transition-colors hover:bg-white/10 disabled:opacity-50 sm:inline-flex", children: "Use original" })] }), (0, jsx_runtime_1.jsx)("style", { children: `
|
|
150
|
+
.sentroy-mobile-cropper {
|
|
241
151
|
height: 100%;
|
|
242
152
|
width: 100%;
|
|
243
153
|
background: #000;
|
|
244
154
|
}
|
|
245
|
-
.sentroy-cropper-background {
|
|
246
|
-
background-color: rgba(0, 0, 0, 0.7);
|
|
247
|
-
}
|
|
248
155
|
` })] }, "backdrop")) }));
|
|
249
156
|
}
|
|
250
|
-
function
|
|
251
|
-
return ((0, jsx_runtime_1.jsxs)("
|
|
252
|
-
}
|
|
253
|
-
function ToolbarIconButton({ onClick, title, ariaLabel, children, }) {
|
|
254
|
-
return ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: onClick, title: title, "aria-label": ariaLabel, className: "inline-flex size-8 items-center justify-center rounded-md text-white/70 transition-colors hover:bg-white/10 hover:text-white", children: children }));
|
|
255
|
-
}
|
|
256
|
-
function cls(...arr) {
|
|
257
|
-
return arr.filter(Boolean).join(" ");
|
|
258
|
-
}
|
|
259
|
-
function RotateLeftIcon() {
|
|
260
|
-
return ((0, jsx_runtime_1.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "size-4", "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("path", { d: "M3 12a9 9 0 1 0 3-6.7" }), (0, jsx_runtime_1.jsx)("path", { d: "M3 4v5h5" })] }));
|
|
261
|
-
}
|
|
262
|
-
function RotateRightIcon() {
|
|
263
|
-
return ((0, jsx_runtime_1.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "size-4", "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("path", { d: "M21 12a9 9 0 1 1-3-6.7" }), (0, jsx_runtime_1.jsx)("path", { d: "M21 4v5h-5" })] }));
|
|
264
|
-
}
|
|
265
|
-
function FlipHorizontalIcon() {
|
|
266
|
-
return ((0, jsx_runtime_1.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "size-4", "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("path", { d: "M12 3v18" }), (0, jsx_runtime_1.jsx)("path", { d: "M16 7l4 5-4 5" }), (0, jsx_runtime_1.jsx)("path", { d: "M8 7l-4 5 4 5" })] }));
|
|
267
|
-
}
|
|
268
|
-
function FlipVerticalIcon() {
|
|
269
|
-
return ((0, jsx_runtime_1.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "size-4", "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("path", { d: "M3 12h18" }), (0, jsx_runtime_1.jsx)("path", { d: "M7 8l5-4 5 4" }), (0, jsx_runtime_1.jsx)("path", { d: "M7 16l5 4 5-4" })] }));
|
|
157
|
+
function RotateIcon() {
|
|
158
|
+
return ((0, jsx_runtime_1.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "size-5", "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("path", { d: "M21 12a9 9 0 1 1-3-6.7" }), (0, jsx_runtime_1.jsx)("path", { d: "M21 4v5h-5" })] }));
|
|
270
159
|
}
|
|
271
160
|
//# sourceMappingURL=CropDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CropDialog.js","sourceRoot":"","sources":["../../../src/react/crop/CropDialog.tsx"],"names":[],"mappings":";;AA8DA,gCAwYC;;AAtcD,iCAAgE;AAChE,mEAAiE;AACjE,wCAAsD;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,cAAc,GAIf;IACH,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;IAC3C,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE;IACtC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,EAAE;IAC7C,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE;IAC1C,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE;IAC1C,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE;CAC9C,CAAA;AAED,MAAM,eAAe,GAAG,UAAU,CAAA,CAAC,8CAA8C;AACjF,MAAM,eAAe,GAAG,GAAG,CAAA;AAgB3B,SAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,aAAa,GAAG,MAAM,EACtB,aAAa,GAAG,IAAI,GACJ;IAChB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IAC7D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,aAAa,CAAC,CAAA;IACvD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAC1C,IAAI,CACL,CAAA;IACD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IAEzE,MAAM,UAAU,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAA;IAClD,MAAM,aAAa,GAAG,IAAA,cAAM,EAAgB,IAAI,CAAC,CAAA;IAEjD,uBAAuB;IACvB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QACrC,WAAW,CAAC,GAAG,CAAC,CAAA;QAChB,WAAW,CAAC,aAAa,CAAC,CAAA;QAC1B,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,aAAa,CAAC,IAAI,CAAC,CAAA;QACnB,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvB,uDAAuD;QACvD,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;QACvB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YAChB,IAAI,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC,aAAa,GAAG,eAAe,EAAE,CAAC;gBAC3D,WAAW,CAAC,IAAI,CAAC,CAAA;YACnB,CAAC;QACH,CAAC,CAAA;QACD,GAAG,CAAC,GAAG,GAAG,GAAG,CAAA;QACb,OAAO,GAAG,EAAE;YACV,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;YACxB,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACnC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;gBAC3C,aAAa,CAAC,OAAO,GAAG,IAAI,CAAA;YAC9B,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAA;IAE/B,MAAM,WAAW,GACf,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,MAAM,IAAI,SAAS,CAAA;IAEpE,qEAAqE;IACrE,iDAAiD;IACjD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,UAAU,CAAC,OAAO;YAAE,OAAM;QAC/B,IAAI,WAAW,KAAK,SAAS;YAAE,OAAM;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;QAC3C,IAAI,CAAC,KAAK;YAAE,OAAM;QAClB,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;QAC7B,IAAI,CAAC,WAAW;YAAE,OAAM;QACxB,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,MAAM,CAAA;QACtD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,KAAK;YAAE,OAAM;QACnD,wDAAwD;QACxD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAA;QAClC,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAA;QACjD,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC;YAChC,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,SAAS;SAClB,CAAC,CAAA;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE3B,kEAAkE;IAClE,0CAA0C;IAC1C,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QACrC,IAAI,aAAa,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACnC,oBAAoB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC7C,CAAC;QACD,aAAa,CAAC,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE;YACjD,aAAa,CAAC,OAAO,GAAG,IAAI,CAAA;YAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;YAClC,IAAI,CAAC,OAAO;gBAAE,OAAM;YACpB,mEAAmE;YACnE,iEAAiE;YACjE,kEAAkE;YAClE,8DAA8D;YAC9D,gDAAgD;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAA;YAChC,MAAM,CAAC,GAAG,KAAK,EAAE,WAAW,CAAA;YAC5B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YACjD,MAAM,KAAK,GACT,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM;gBACjB,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,KAAK;gBAC3B,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,MAAM,CAAA;YAChC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAA;YAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC/B,KAAK,EAAE,YAAY;gBACnB,qBAAqB,EAAE,IAAI;gBAC3B,qBAAqB,EAAE,QAAQ;aAChC,CAAC,CAAA;YACF,IAAI,CAAC,MAAM;gBAAE,OAAM;YACnB,aAAa,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAClE,sCAAsC;YACtC,IAAI,CAAC;gBACH,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAA;YACxD,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,mBAAmB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC3C,aAAa,EAAE,CAAA;IACjB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;QAC1C,aAAa,EAAE,CAAA;IACjB,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAEnB,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QACzC,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAA;QAClC,IAAI,CAAC,OAAO;YAAE,OAAM;QACpB,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC/B,qBAAqB,EAAE,MAAM;aAC9B,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAA;gBACd,OAAM;YACR,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAA;YACzE,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,EAAE;gBACtD,MAAM,CAAC,MAAM,CACX,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EACjB,UAAU,EACV,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CACxD,CAAA;YACH,CAAC,CAAC,CAAA;YACF,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,CAAA;gBACd,OAAM;YACR,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;YACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;YAClD,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,IAAI,GAAG,EAAE,EAAE;gBACrD,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB,CAAC,CAAA;YACF,OAAO,CAAC,OAAO,CAAC,CAAA;QAClB,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAA;IAElC,MAAM,iBAAiB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3E,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAChE,MAAM,YAAY,GAAG,IAAA,mBAAW,EAAC,CAAC,KAAe,EAAE,EAAE;QACnD,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IACxC,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,MAAM,UAAU,GAAG,IAAA,mBAAW,EAAC,CAAC,IAAe,EAAE,EAAE;QACjD,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,KAAK,GAAG,EAAE,IAAI,KAAK,GAAG,CAAC,CAAA;IAC3D,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,mDAAmD;IACnD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,KAAK,GAAG,CAAC,CAAgB,EAAE,EAAE;YACjC,IACE,CAAC,CAAC,MAAM,YAAY,WAAW;gBAC/B,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU,CAAC,EACjE,CAAC;gBACD,OAAM;YACR,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACvB,CAAC,CAAC,eAAe,EAAE,CAAA;gBACnB,YAAY,EAAE,CAAA;gBACd,OAAM;YACR,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBACnC,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;YACrC,CAAC;QACH,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;QACzC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAC3D,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAA;IAEtC,OAAO,CACL,uBAAC,uBAAe,cACb,IAAI,IAAI,QAAQ,IAAI,CACnB,wBAAC,cAAM,CAAC,GAAG,IAET,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACvB,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,EACpB,UAAU,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE;YAC7B,6DAA6D;YAC7D,SAAS,EAAC,wDAAwD,aAGlE,iCAAK,SAAS,EAAC,yGAAyG,aACtH,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,IAAI,EACd,SAAS,EAAC,uHAAuH,uBAG1H,EACT,iCAAK,SAAS,EAAC,gDAAgD,aAC7D,iCAAM,SAAS,EAAC,uBAAuB,2BAAkB,EACzD,iCAAM,SAAS,EAAC,6CAA6C,YAC1D,IAAI,CAAC,IAAI,GACL,IACH,EACN,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,IAAI,IAAI,QAAQ;4BAC1B,4DAA4D;4BAC5D,6DAA6D;4BAC7D,0DAA0D;4BAC1D,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EACpD,SAAS,EAAC,oGAAoG,YAE7G,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,GACtB,IACL,EAGN,iCAAK,SAAS,EAAC,kFAAkF,aAC/F,gCAAK,SAAS,EAAC,0CAA0C,YACtD,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACxB,MAAM,MAAM,GAAG,QAAQ,KAAK,CAAC,CAAC,EAAE,CAAA;gCAChC,OAAO,CACL,mCAEE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAChC,KAAK,EACH,MAAM;wCACJ,CAAC,CAAC,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;wCAC/C,CAAC,CAAC,SAAS,EAEf,SAAS,EAAE,GAAG,CACZ,kDAAkD,EAClD,MAAM;wCACJ,CAAC,CAAC,aAAa;wCACf,CAAC,CAAC,kDAAkD,CACvD,YAEA,CAAC,CAAC,KAAK,IAfH,CAAC,CAAC,EAAE,CAgBF,CACV,CAAA;4BACH,CAAC,CAAC,GACE,EACN,iCAAK,SAAS,EAAC,yBAAyB,aACtC,uBAAC,iBAAiB,IAChB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAChC,KAAK,EAAC,uBAAuB,EAC7B,SAAS,EAAC,aAAa,YAEvB,uBAAC,cAAc,KAAG,GACA,EACpB,uBAAC,iBAAiB,IAChB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAC/B,KAAK,EAAC,kBAAkB,EACxB,SAAS,EAAC,cAAc,YAExB,uBAAC,eAAe,KAAG,GACD,EACpB,iCAAM,SAAS,EAAC,2BAA2B,GAAG,EAC9C,uBAAC,iBAAiB,IAChB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAC9B,KAAK,EAAC,iBAAiB,EACvB,SAAS,EAAC,iBAAiB,YAE3B,uBAAC,kBAAkB,KAAG,GACJ,EACpB,uBAAC,iBAAiB,IAChB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAC9B,KAAK,EAAC,eAAe,EACrB,SAAS,EAAC,eAAe,YAEzB,uBAAC,gBAAgB,KAAG,GACF,IAChB,IACF,EAGN,iCAAK,SAAS,EAAC,0CAA0C,aAEvD,gCAAK,SAAS,EAAC,gDAAgD,YAC5D,QAAQ,CAAC,CAAC,CAAC,CACV,gCAAK,SAAS,EAAC,sFAAsF,uFAG/F,CACP,CAAC,CAAC,CAAC,CACF,uBAAC,gCAAO,IACN,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,QAAQ,EACb,SAAS,EAAC,iBAAiB;gCAC3B,2DAA2D;gCAC3D,YAAY,EAAE;oCACZ,WAAW,EAAE,WAAW;oCACxB,IAAI,EAAE,IAAI;oCACV,OAAO,EAAE,IAAI;oCACb,SAAS,EAAE,IAAI;iCAChB;gCACD,yDAAyD;gCACzD,mBAAmB,EAAC,4BAA4B,EAChD,QAAQ,EAAE,mBAAmB,EAC7B,OAAO,EAAE,kBAAkB,GAC3B,CACH,GACG,EAIN,mCAAO,SAAS,EAAC,2JAA2J,aAC1K,iCAAK,SAAS,EAAC,mCAAmC,aAChD,iCAAM,SAAS,EAAC,gEAAgE,wBAEzE,EACN,UAAU,IAAI,CACb,kCAAM,SAAS,EAAC,qCAAqC,aAClD,UAAU,CAAC,CAAC,YAAG,UAAU,CAAC,CAAC,IACvB,CACR,IACG,EACN,gCAAK,SAAS,EAAC,kGAAkG,YAC9G,QAAQ,CAAC,CAAC,CAAC,CACV,iCAAM,SAAS,EAAC,2BAA2B,oCAEpC,CACR,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;oCACnB,wDAAwD;oCACxD,gCACE,GAAG,EAAE,cAAc,EACnB,GAAG,EAAC,cAAc,EAClB,SAAS,EAAC,8DAA8D,GACxE,CACH,CAAC,CAAC,CAAC,CACF,iCAAM,SAAS,EAAC,2BAA2B,kCAEpC,CACR,GACG,EACN,iCAAK,SAAS,EAAC,iDAAiD,aAC9D,uBAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,KAAK,EACH,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,KAAK;gDACpD,MAAM,GAER,EACD,UAAU,IAAI,CACb,uBAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC,MAAM,UAAU,CAAC,CAAC,KAAK,GAC7C,CACH,EACD,uBAAC,IAAI,IACH,KAAK,EAAC,QAAQ,EACd,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GACjD,IACE,EACN,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,IAAI,EACd,SAAS,EAAC,gKAAgK,yCAGnK,IACH,IACJ,EAKN,4CAAQ;;;;;;;;;WASP,GAAS,KAxMN,UAAU,CAyMH,CACd,GACe,CACnB,CAAA;AACH,CAAC;AAED,SAAS,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAoC;IAC9D,OAAO,CACL,iCAAK,SAAS,EAAC,mCAAmC,aAChD,2CAAO,KAAK,GAAQ,EACpB,iCAAM,SAAS,EAAC,yBAAyB,YAAE,KAAK,GAAQ,IACpD,CACP,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,EACzB,OAAO,EACP,KAAK,EACL,SAAS,EACT,QAAQ,GAMT;IACC,OAAO,CACL,mCACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,gBACA,SAAS,EACrB,SAAS,EAAC,8HAA8H,YAEvI,QAAQ,GACF,CACV,CAAA;AACH,CAAC;AAED,SAAS,GAAG,CAAC,GAAG,GAA6C;IAC3D,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACtC,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,CACL,iCACE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAC,QAAQ,iBACN,MAAM,aAElB,iCAAM,CAAC,EAAC,uBAAuB,GAAG,EAClC,iCAAM,CAAC,EAAC,UAAU,GAAG,IACjB,CACP,CAAA;AACH,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,CACL,iCACE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAC,QAAQ,iBACN,MAAM,aAElB,iCAAM,CAAC,EAAC,wBAAwB,GAAG,EACnC,iCAAM,CAAC,EAAC,YAAY,GAAG,IACnB,CACP,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO,CACL,iCACE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAC,QAAQ,iBACN,MAAM,aAElB,iCAAM,CAAC,EAAC,UAAU,GAAG,EACrB,iCAAM,CAAC,EAAC,eAAe,GAAG,EAC1B,iCAAM,CAAC,EAAC,eAAe,GAAG,IACtB,CACP,CAAA;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,CACL,iCACE,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,GAAG,EACf,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,SAAS,EAAC,QAAQ,iBACN,MAAM,aAElB,iCAAM,CAAC,EAAC,UAAU,GAAG,EACrB,iCAAM,CAAC,EAAC,cAAc,GAAG,EACzB,iCAAM,CAAC,EAAC,eAAe,GAAG,IACtB,CACP,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"CropDialog.js","sourceRoot":"","sources":["../../../src/react/crop/CropDialog.tsx"],"names":[],"mappings":"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"}
|