@sentroy-co/client-sdk 2.13.2 → 2.13.4
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/dist/react/crop/CropDialog.d.ts +0 -1
- package/dist/react/crop/CropDialog.d.ts.map +1 -1
- package/dist/react/crop/CropDialog.js +37 -34
- package/dist/react/crop/CropDialog.js.map +1 -1
- package/dist/react/crop/styles.css +78 -0
- package/package.json +3 -2
- package/src/react/crop/CropDialog.tsx +59 -52
|
@@ -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":"AAgDA,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;yDACqD;IACrD,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,aAAsB,EACtB,aAAoB,GACrB,EAAE,eAAe,2CAkYjB"}
|
|
@@ -5,13 +5,18 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const react_advanced_cropper_1 = require("react-advanced-cropper");
|
|
7
7
|
const react_2 = require("motion/react");
|
|
8
|
-
require("react-advanced-cropper/dist/style.css");
|
|
9
8
|
/**
|
|
10
9
|
* Image crop dialog — iOS Photos benzeri full-screen crop UI. Önceki
|
|
11
10
|
* `react-easy-crop` implementation'ı drag UX ve preview render
|
|
12
11
|
* tarafında zayıftı; `react-advanced-cropper` daha modern stencil
|
|
13
12
|
* sistemi + native-feel pinch/zoom verir.
|
|
14
13
|
*
|
|
14
|
+
* **CSS:** Caller uygulamada `react-advanced-cropper/dist/style.css`'i
|
|
15
|
+
* global olarak import edilmiş olmalıdır (örn. `globals.css` üzerinden veya
|
|
16
|
+
* root layout). SDK içinden CSS import etsek `tsc`'nin CJS çıktısında
|
|
17
|
+
* runtime `require("...css")` doğar, Next.js bunu bundle'a alamaz ve
|
|
18
|
+
* "Module factory is not available" hatasıyla patlar.
|
|
19
|
+
*
|
|
15
20
|
* Akış (storage upload pipeline'ından preprocess hook):
|
|
16
21
|
* - Aspect preset toolbar (1:1, 4:3, 16:9, 3:2, 9:16, Free)
|
|
17
22
|
* - Rotate 90° CW/CCW butonları (R / Shift+R)
|
|
@@ -108,15 +113,27 @@ function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality
|
|
|
108
113
|
const cropper = cropperRef.current;
|
|
109
114
|
if (!cropper)
|
|
110
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));
|
|
111
129
|
const canvas = cropper.getCanvas({
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
maxHeight: PREVIEW_MAX_DIM * 2,
|
|
130
|
+
width: previewWidth,
|
|
131
|
+
imageSmoothingEnabled: true,
|
|
115
132
|
imageSmoothingQuality: "medium",
|
|
116
133
|
});
|
|
117
134
|
if (!canvas)
|
|
118
135
|
return;
|
|
119
|
-
setOutputSize({ w:
|
|
136
|
+
setOutputSize({ w: Math.round(c.width), h: Math.round(c.height) });
|
|
120
137
|
// Data URL — küçük canvas; performant
|
|
121
138
|
try {
|
|
122
139
|
setPreviewDataUrl(canvas.toDataURL("image/jpeg", 0.7));
|
|
@@ -196,9 +213,18 @@ function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality
|
|
|
196
213
|
}, [open, handleCancel, handleRotate]);
|
|
197
214
|
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 },
|
|
198
215
|
// Tam ekran — scrim değil, kendisi background; iOS Photos UX
|
|
199
|
-
className: "fixed inset-0 z-[60] flex flex-col bg-black text-white", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between gap-3 border-b border-white/10 bg-black/40 px-4 py-3 backdrop-blur-sm", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleCancel, disabled: busy, className: "rounded-md px-3 py-1.5 text-sm text-white/70 transition-colors hover:bg-white/10 hover:text-white 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 image" }), (0, jsx_runtime_1.jsx)("span", { className: "truncate max-w-xs text-[11px] text-white/50", children: file.name })] }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleApply, disabled: busy || tooLarge,
|
|
200
|
-
|
|
201
|
-
|
|
216
|
+
className: "fixed inset-0 z-[60] flex flex-col bg-black text-white", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between gap-3 border-b border-white/10 bg-black/40 px-4 py-3 backdrop-blur-sm", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleCancel, disabled: busy, className: "rounded-md px-3 py-1.5 text-sm text-white/70 transition-colors hover:bg-white/10 hover:text-white 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 image" }), (0, jsx_runtime_1.jsx)("span", { className: "truncate max-w-xs text-[11px] text-white/50", children: file.name })] }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: handleApply, disabled: busy || tooLarge,
|
|
217
|
+
// Inline color — host app'in Tailwind tema CSS değişkenleri
|
|
218
|
+
// `text-black` / `bg-white` class'larını override edebiliyor
|
|
219
|
+
// (Sentroy console gibi). Sabit hex ile kontrast garanti.
|
|
220
|
+
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…" : "Apply" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-wrap items-center gap-2 border-b border-white/10 bg-black/30 px-3 py-2", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex flex-1 flex-wrap items-center gap-1", children: ASPECT_PRESETS.map((p) => {
|
|
221
|
+
const active = aspectId === p.id;
|
|
222
|
+
return ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => setAspectId(p.id), style: active
|
|
223
|
+
? { backgroundColor: "#fff", color: "#0a0a0a" }
|
|
224
|
+
: undefined, className: cls("rounded-full px-3 py-1 text-xs transition-colors", active
|
|
225
|
+
? "font-medium"
|
|
226
|
+
: "text-white/60 hover:bg-white/10 hover:text-white"), children: p.label }, p.id));
|
|
227
|
+
}) }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-1", children: [(0, jsx_runtime_1.jsx)(ToolbarIconButton, { onClick: () => handleRotate(-90), title: "Rotate left (Shift+R)", ariaLabel: "Rotate left", children: (0, jsx_runtime_1.jsx)(RotateLeftIcon, {}) }), (0, jsx_runtime_1.jsx)(ToolbarIconButton, { onClick: () => handleRotate(90), title: "Rotate right (R)", ariaLabel: "Rotate right", children: (0, jsx_runtime_1.jsx)(RotateRightIcon, {}) }), (0, jsx_runtime_1.jsx)("span", { className: "mx-1 h-5 w-px bg-white/15" }), (0, jsx_runtime_1.jsx)(ToolbarIconButton, { onClick: () => handleFlip("h"), title: "Flip horizontal", ariaLabel: "Flip horizontal", children: (0, jsx_runtime_1.jsx)(FlipHorizontalIcon, {}) }), (0, jsx_runtime_1.jsx)(ToolbarIconButton, { onClick: () => handleFlip("v"), title: "Flip vertical", ariaLabel: "Flip vertical", children: (0, jsx_runtime_1.jsx)(FlipVerticalIcon, {}) })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-1 min-h-0 flex-col md:flex-row", children: [(0, jsx_runtime_1.jsx)("div", { className: "relative flex-1 min-h-[240px] min-w-0 bg-black", children: tooLarge ? ((0, jsx_runtime_1.jsx)("div", { className: "flex h-full w-full items-center justify-center p-6 text-center text-sm text-white/70", children: "Image too large to crop in browser. Upload as-is or resize beforehand." })) : ((0, jsx_runtime_1.jsx)(react_advanced_cropper_1.Cropper, { ref: cropperRef, src: imageUrl, className: "sentroy-cropper",
|
|
202
228
|
// Stencil props — aspect lock + iOS-like rect stencil grid
|
|
203
229
|
stencilProps: {
|
|
204
230
|
aspectRatio: aspectRatio,
|
|
@@ -207,10 +233,10 @@ function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality
|
|
|
207
233
|
resizable: true,
|
|
208
234
|
},
|
|
209
235
|
// Background overlay'i koyu yap (image dışı kalan kısım)
|
|
210
|
-
backgroundClassName: "sentroy-cropper-background", onChange: handleCropperChange, onReady: handleCropperReady })) }), (0, jsx_runtime_1.jsxs)("aside", { className: "flex w-full shrink-0 flex-col gap-4 border-t border-white/10 bg-black/30 p-4 md:w-72 md:border-l md:border-t-0", 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 ? (
|
|
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 ? (
|
|
211
237
|
/* eslint-disable-next-line @next/next/no-img-element */
|
|
212
|
-
(0, jsx_runtime_1.jsx)("img", { src: previewDataUrl, alt: "Crop preview", className: "max-h-[
|
|
213
|
-
"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: "
|
|
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: `
|
|
214
240
|
.sentroy-cropper {
|
|
215
241
|
height: 100%;
|
|
216
242
|
width: 100%;
|
|
@@ -219,29 +245,6 @@ function CropDialog({ open, file, onClose, defaultAspect = "free", outputQuality
|
|
|
219
245
|
.sentroy-cropper-background {
|
|
220
246
|
background-color: rgba(0, 0, 0, 0.7);
|
|
221
247
|
}
|
|
222
|
-
.sentroy-cropper .advanced-cropper-stencil-overlay {
|
|
223
|
-
background: rgba(0, 0, 0, 0.55);
|
|
224
|
-
}
|
|
225
|
-
.sentroy-cropper .advanced-cropper-rectangle-stencil__draggable-area {
|
|
226
|
-
border: 1px solid rgba(255, 255, 255, 0.95);
|
|
227
|
-
}
|
|
228
|
-
.sentroy-cropper .advanced-cropper-line-wrapper {
|
|
229
|
-
background: rgba(255, 255, 255, 0.95);
|
|
230
|
-
}
|
|
231
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper--west-north,
|
|
232
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper--north-east,
|
|
233
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper--east-south,
|
|
234
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper--south-west {
|
|
235
|
-
width: 22px;
|
|
236
|
-
height: 22px;
|
|
237
|
-
}
|
|
238
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper__draggable {
|
|
239
|
-
background: #fff;
|
|
240
|
-
border: 2px solid #000;
|
|
241
|
-
width: 12px;
|
|
242
|
-
height: 12px;
|
|
243
|
-
border-radius: 2px;
|
|
244
|
-
}
|
|
245
248
|
` })] }, "backdrop")) }));
|
|
246
249
|
}
|
|
247
250
|
function Stat({ label, value }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CropDialog.js","sourceRoot":"","sources":["../../../src/react/crop/CropDialog.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CropDialog.js","sourceRoot":"","sources":["../../../src/react/crop/CropDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
.advanced-cropper-simple-line {
|
|
2
|
+
border-color: rgba(255, 255, 255, 0.8); }
|
|
3
|
+
.advanced-cropper-simple-line--hover {
|
|
4
|
+
border-color: white; }
|
|
5
|
+
|
|
6
|
+
.advanced-cropper-simple-handler-wrapper {
|
|
7
|
+
width: 24px;
|
|
8
|
+
height: 24px; }
|
|
9
|
+
.advanced-cropper-simple-handler-wrapper--west-north {
|
|
10
|
+
-webkit-transform: translate(0, 0);
|
|
11
|
+
transform: translate(0, 0); }
|
|
12
|
+
.advanced-cropper-simple-handler-wrapper--east-south {
|
|
13
|
+
-webkit-transform: translate(-100%, -100%);
|
|
14
|
+
transform: translate(-100%, -100%); }
|
|
15
|
+
.advanced-cropper-simple-handler-wrapper--west-south {
|
|
16
|
+
-webkit-transform: translate(0, -100%);
|
|
17
|
+
transform: translate(0, -100%); }
|
|
18
|
+
.advanced-cropper-simple-handler-wrapper--east-north {
|
|
19
|
+
-webkit-transform: translate(-100%, 0);
|
|
20
|
+
transform: translate(-100%, 0); }
|
|
21
|
+
|
|
22
|
+
.advanced-cropper-simple-handler {
|
|
23
|
+
display: block;
|
|
24
|
+
position: relative;
|
|
25
|
+
-webkit-transition: opacity 0.5s;
|
|
26
|
+
transition: opacity 0.5s;
|
|
27
|
+
border: none;
|
|
28
|
+
background: currentColor;
|
|
29
|
+
height: 4px;
|
|
30
|
+
width: 4px;
|
|
31
|
+
opacity: 0; }
|
|
32
|
+
.advanced-cropper-simple-handler--west-north, .advanced-cropper-simple-handler--east-south, .advanced-cropper-simple-handler--west-south, .advanced-cropper-simple-handler--east-north {
|
|
33
|
+
display: block;
|
|
34
|
+
height: 16px;
|
|
35
|
+
width: 16px;
|
|
36
|
+
background: none;
|
|
37
|
+
opacity: 0.7; }
|
|
38
|
+
.advanced-cropper-simple-handler--west-north {
|
|
39
|
+
border-left: solid 2px currentColor;
|
|
40
|
+
border-top: solid 2px currentColor; }
|
|
41
|
+
.advanced-cropper-simple-handler--east-south {
|
|
42
|
+
border-right: solid 2px currentColor;
|
|
43
|
+
border-bottom: solid 2px currentColor; }
|
|
44
|
+
.advanced-cropper-simple-handler--west-south {
|
|
45
|
+
border-left: solid 2px currentColor;
|
|
46
|
+
border-bottom: solid 2px currentColor; }
|
|
47
|
+
.advanced-cropper-simple-handler--east-north {
|
|
48
|
+
border-right: solid 2px currentColor;
|
|
49
|
+
border-top: solid 2px currentColor; }
|
|
50
|
+
.advanced-cropper-simple-handler--hover {
|
|
51
|
+
opacity: 1; }
|
|
52
|
+
|
|
53
|
+
.advanced-cropper-circle-stencil__preview {
|
|
54
|
+
border: solid 2px rgba(255, 255, 255, 0.8); }
|
|
55
|
+
|
|
56
|
+
.advanced-cropper-circle-stencil .advanced-cropper-simple-line {
|
|
57
|
+
border-color: rgba(255, 255, 255, 0.3); }
|
|
58
|
+
|
|
59
|
+
.advanced-cropper-circle-stencil .advanced-cropper-simple-handler--west-north, .advanced-cropper-circle-stencil .advanced-cropper-simple-handler--east-south, .advanced-cropper-circle-stencil .advanced-cropper-simple-handler--west-south, .advanced-cropper-circle-stencil .advanced-cropper-simple-handler--east-north {
|
|
60
|
+
opacity: 0.4; }
|
|
61
|
+
|
|
62
|
+
.advanced-cropper-circle-stencil .advanced-cropper-simple-handler--hover {
|
|
63
|
+
opacity: 1; }
|
|
64
|
+
|
|
65
|
+
.advanced-cropper-stencil-grid {
|
|
66
|
+
color: rgba(255, 255, 255, 0.7); }
|
|
67
|
+
|
|
68
|
+
/* ─ Sentroy overrides ────────────────────────────────────────────────── */
|
|
69
|
+
.advanced-cropper-line-wrapper--east,
|
|
70
|
+
.advanced-cropper-line-wrapper--west,
|
|
71
|
+
.advanced-cropper-line-wrapper--north,
|
|
72
|
+
.advanced-cropper-line-wrapper--south {
|
|
73
|
+
width: 2px !important;
|
|
74
|
+
}
|
|
75
|
+
.advanced-cropper-handler-wrapper {
|
|
76
|
+
height: auto !important;
|
|
77
|
+
width: auto !important;
|
|
78
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentroy-co/client-sdk",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.4",
|
|
4
4
|
"description": "TypeScript SDK + CLI for the Sentroy platform — mail, storage, env vault + React components.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"import": "./dist/react/crop/index.js",
|
|
29
29
|
"require": "./dist/react/crop/index.js"
|
|
30
30
|
},
|
|
31
|
+
"./react/crop/styles.css": "./dist/react/crop/styles.css",
|
|
31
32
|
"./vault": {
|
|
32
33
|
"types": "./dist/vault/index.d.ts",
|
|
33
34
|
"import": "./dist/vault/index.js",
|
|
@@ -46,7 +47,7 @@
|
|
|
46
47
|
"AGENTS.md"
|
|
47
48
|
],
|
|
48
49
|
"scripts": {
|
|
49
|
-
"build": "tsc",
|
|
50
|
+
"build": "tsc && node scripts/build-styles.mjs",
|
|
50
51
|
"prepublishOnly": "npm run build"
|
|
51
52
|
},
|
|
52
53
|
"keywords": [
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef, useState } from "react"
|
|
2
2
|
import { Cropper, type CropperRef } from "react-advanced-cropper"
|
|
3
3
|
import { motion, AnimatePresence } from "motion/react"
|
|
4
|
-
import "react-advanced-cropper/dist/style.css"
|
|
5
4
|
|
|
6
5
|
/**
|
|
7
6
|
* Image crop dialog — iOS Photos benzeri full-screen crop UI. Önceki
|
|
@@ -9,6 +8,12 @@ import "react-advanced-cropper/dist/style.css"
|
|
|
9
8
|
* tarafında zayıftı; `react-advanced-cropper` daha modern stencil
|
|
10
9
|
* sistemi + native-feel pinch/zoom verir.
|
|
11
10
|
*
|
|
11
|
+
* **CSS:** Caller uygulamada `react-advanced-cropper/dist/style.css`'i
|
|
12
|
+
* global olarak import edilmiş olmalıdır (örn. `globals.css` üzerinden veya
|
|
13
|
+
* root layout). SDK içinden CSS import etsek `tsc`'nin CJS çıktısında
|
|
14
|
+
* runtime `require("...css")` doğar, Next.js bunu bundle'a alamaz ve
|
|
15
|
+
* "Module factory is not available" hatasıyla patlar.
|
|
16
|
+
*
|
|
12
17
|
* Akış (storage upload pipeline'ından preprocess hook):
|
|
13
18
|
* - Aspect preset toolbar (1:1, 4:3, 16:9, 3:2, 9:16, Free)
|
|
14
19
|
* - Rotate 90° CW/CCW butonları (R / Shift+R)
|
|
@@ -133,14 +138,26 @@ export function CropDialog({
|
|
|
133
138
|
previewRafRef.current = null
|
|
134
139
|
const cropper = cropperRef.current
|
|
135
140
|
if (!cropper) return
|
|
141
|
+
// Önce gerçek crop pixel boyutunu öğren; preview canvas'ını aspect
|
|
142
|
+
// koruyarak max edge PREVIEW_MAX_DIM'e fit ediyoruz. `getCanvas`
|
|
143
|
+
// sadece `width` verince paket aspect'i koruyup height'i otomatik
|
|
144
|
+
// hesaplıyor. `maxWidth/maxHeight` paket API'sinde yok — eski
|
|
145
|
+
// çağrımız sessiz fail edip canvas üretmiyordu.
|
|
146
|
+
const state = cropper.getState()
|
|
147
|
+
const c = state?.coordinates
|
|
148
|
+
if (!c || c.width === 0 || c.height === 0) return
|
|
149
|
+
const scale =
|
|
150
|
+
c.width >= c.height
|
|
151
|
+
? PREVIEW_MAX_DIM / c.width
|
|
152
|
+
: PREVIEW_MAX_DIM / c.height
|
|
153
|
+
const previewWidth = Math.max(1, Math.round(c.width * scale))
|
|
136
154
|
const canvas = cropper.getCanvas({
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
maxHeight: PREVIEW_MAX_DIM * 2,
|
|
155
|
+
width: previewWidth,
|
|
156
|
+
imageSmoothingEnabled: true,
|
|
140
157
|
imageSmoothingQuality: "medium",
|
|
141
158
|
})
|
|
142
159
|
if (!canvas) return
|
|
143
|
-
setOutputSize({ w:
|
|
160
|
+
setOutputSize({ w: Math.round(c.width), h: Math.round(c.height) })
|
|
144
161
|
// Data URL — küçük canvas; performant
|
|
145
162
|
try {
|
|
146
163
|
setPreviewDataUrl(canvas.toDataURL("image/jpeg", 0.7))
|
|
@@ -258,7 +275,11 @@ export function CropDialog({
|
|
|
258
275
|
type="button"
|
|
259
276
|
onClick={handleApply}
|
|
260
277
|
disabled={busy || tooLarge}
|
|
261
|
-
|
|
278
|
+
// Inline color — host app'in Tailwind tema CSS değişkenleri
|
|
279
|
+
// `text-black` / `bg-white` class'larını override edebiliyor
|
|
280
|
+
// (Sentroy console gibi). Sabit hex ile kontrast garanti.
|
|
281
|
+
style={{ backgroundColor: "#fff", color: "#0a0a0a" }}
|
|
282
|
+
className="rounded-md px-3 py-1.5 text-sm font-medium transition-opacity hover:opacity-90 disabled:opacity-50"
|
|
262
283
|
>
|
|
263
284
|
{busy ? "Cropping…" : "Apply"}
|
|
264
285
|
</button>
|
|
@@ -267,21 +288,29 @@ export function CropDialog({
|
|
|
267
288
|
{/* Aspect + rotate toolbar */}
|
|
268
289
|
<div className="flex flex-wrap items-center gap-2 border-b border-white/10 bg-black/30 px-3 py-2">
|
|
269
290
|
<div className="flex flex-1 flex-wrap items-center gap-1">
|
|
270
|
-
{ASPECT_PRESETS.map((p) =>
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
291
|
+
{ASPECT_PRESETS.map((p) => {
|
|
292
|
+
const active = aspectId === p.id
|
|
293
|
+
return (
|
|
294
|
+
<button
|
|
295
|
+
key={p.id}
|
|
296
|
+
type="button"
|
|
297
|
+
onClick={() => setAspectId(p.id)}
|
|
298
|
+
style={
|
|
299
|
+
active
|
|
300
|
+
? { backgroundColor: "#fff", color: "#0a0a0a" }
|
|
301
|
+
: undefined
|
|
302
|
+
}
|
|
303
|
+
className={cls(
|
|
304
|
+
"rounded-full px-3 py-1 text-xs transition-colors",
|
|
305
|
+
active
|
|
306
|
+
? "font-medium"
|
|
307
|
+
: "text-white/60 hover:bg-white/10 hover:text-white",
|
|
308
|
+
)}
|
|
309
|
+
>
|
|
310
|
+
{p.label}
|
|
311
|
+
</button>
|
|
312
|
+
)
|
|
313
|
+
})}
|
|
285
314
|
</div>
|
|
286
315
|
<div className="flex items-center gap-1">
|
|
287
316
|
<ToolbarIconButton
|
|
@@ -319,7 +348,7 @@ export function CropDialog({
|
|
|
319
348
|
{/* Main: cropper + side panel */}
|
|
320
349
|
<div className="flex flex-1 min-h-0 flex-col md:flex-row">
|
|
321
350
|
{/* Cropper stage */}
|
|
322
|
-
<div className="relative flex-1 bg-black">
|
|
351
|
+
<div className="relative flex-1 min-h-[240px] min-w-0 bg-black">
|
|
323
352
|
{tooLarge ? (
|
|
324
353
|
<div className="flex h-full w-full items-center justify-center p-6 text-center text-sm text-white/70">
|
|
325
354
|
Image too large to crop in browser. Upload as-is or resize
|
|
@@ -345,8 +374,9 @@ export function CropDialog({
|
|
|
345
374
|
)}
|
|
346
375
|
</div>
|
|
347
376
|
|
|
348
|
-
{/* Side panel: live preview + readout
|
|
349
|
-
|
|
377
|
+
{/* Side panel: live preview + readout. Mobile'da max-h ile
|
|
378
|
+
clamp + overflow-y-auto — uzun bilgilerle taşmasın. */}
|
|
379
|
+
<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]">
|
|
350
380
|
<div className="flex items-center justify-between">
|
|
351
381
|
<span className="text-[10px] font-medium uppercase tracking-wider text-white/50">
|
|
352
382
|
Preview
|
|
@@ -367,7 +397,7 @@ export function CropDialog({
|
|
|
367
397
|
<img
|
|
368
398
|
src={previewDataUrl}
|
|
369
399
|
alt="Crop preview"
|
|
370
|
-
className="max-h-[
|
|
400
|
+
className="max-h-[220px] max-w-full rounded-md object-contain shadow-md"
|
|
371
401
|
/>
|
|
372
402
|
) : (
|
|
373
403
|
<span className="text-[11px] text-white/40">
|
|
@@ -398,16 +428,16 @@ export function CropDialog({
|
|
|
398
428
|
type="button"
|
|
399
429
|
onClick={handleUseOriginal}
|
|
400
430
|
disabled={busy}
|
|
401
|
-
className="
|
|
431
|
+
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"
|
|
402
432
|
>
|
|
403
433
|
Use original (skip crop)
|
|
404
434
|
</button>
|
|
405
435
|
</aside>
|
|
406
436
|
</div>
|
|
407
437
|
|
|
408
|
-
{/*
|
|
409
|
-
|
|
410
|
-
|
|
438
|
+
{/* Cropper container — boyutsal classes; theme'in kendisi
|
|
439
|
+
SDK build'inde emit edilen styles.css ile yüklenir
|
|
440
|
+
(`@sentroy-co/client-sdk/react/crop/styles.css`). */}
|
|
411
441
|
<style>{`
|
|
412
442
|
.sentroy-cropper {
|
|
413
443
|
height: 100%;
|
|
@@ -417,29 +447,6 @@ export function CropDialog({
|
|
|
417
447
|
.sentroy-cropper-background {
|
|
418
448
|
background-color: rgba(0, 0, 0, 0.7);
|
|
419
449
|
}
|
|
420
|
-
.sentroy-cropper .advanced-cropper-stencil-overlay {
|
|
421
|
-
background: rgba(0, 0, 0, 0.55);
|
|
422
|
-
}
|
|
423
|
-
.sentroy-cropper .advanced-cropper-rectangle-stencil__draggable-area {
|
|
424
|
-
border: 1px solid rgba(255, 255, 255, 0.95);
|
|
425
|
-
}
|
|
426
|
-
.sentroy-cropper .advanced-cropper-line-wrapper {
|
|
427
|
-
background: rgba(255, 255, 255, 0.95);
|
|
428
|
-
}
|
|
429
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper--west-north,
|
|
430
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper--north-east,
|
|
431
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper--east-south,
|
|
432
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper--south-west {
|
|
433
|
-
width: 22px;
|
|
434
|
-
height: 22px;
|
|
435
|
-
}
|
|
436
|
-
.sentroy-cropper .advanced-cropper-handler-wrapper__draggable {
|
|
437
|
-
background: #fff;
|
|
438
|
-
border: 2px solid #000;
|
|
439
|
-
width: 12px;
|
|
440
|
-
height: 12px;
|
|
441
|
-
border-radius: 2px;
|
|
442
|
-
}
|
|
443
450
|
`}</style>
|
|
444
451
|
</motion.div>
|
|
445
452
|
)}
|