@sentroy-co/client-sdk 2.13.6 → 2.13.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"MediaManager.d.ts","sourceRoot":"","sources":["../../src/react/MediaManager.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAe7C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,MAAM,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,YAAY,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,CAAA;IACtC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,CAAA;IACtC;0CACsC;IACtC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IAC1C,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;CACtD;AAcD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CA8iBpD"}
1
+ {"version":3,"file":"MediaManager.d.ts","sourceRoot":"","sources":["../../src/react/MediaManager.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAe7C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,MAAM,EAAE,OAAO,CAAA;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,YAAY,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAA;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,CAAA;IACtC,sEAAsE;IACtE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,CAAA;IACtC;0CACsC;IACtC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IAC1C,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,6DAA6D;IAC7D,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;CACtD;AAcD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,2CAskBpD"}
@@ -184,7 +184,11 @@ function MediaManager(props) {
184
184
  return () => document.removeEventListener("keydown", onKey);
185
185
  }, [selected, visibleItems, lightboxIdx]);
186
186
  // ── Render ─────────────────────────────────────────────────────────────
187
- return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("flex flex-col gap-3 rounded-xl border bg-background text-foreground", className, cls.root), onDragOver: (e) => {
187
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)(
188
+ // `relative` — drop overlay (`absolute inset-0`) için positioning
189
+ // context. Eskiden eksikti, drag-and-drop görsel feedback hiç
190
+ // görünmüyordu.
191
+ "relative flex flex-col gap-3 rounded-xl border bg-background text-foreground", className, cls.root), onDragOver: (e) => {
188
192
  e.preventDefault();
189
193
  setDragOver(true);
190
194
  }, onDragLeave: () => setDragOver(false), onDrop: (e) => {
@@ -197,7 +201,11 @@ function MediaManager(props) {
197
201
  uploadFiles(e.target.files);
198
202
  e.target.value = "";
199
203
  }
200
- } })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex min-h-[280px] flex-1", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex-1 overflow-y-auto p-3", children: [loading && ((0, jsx_runtime_1.jsx)("div", { className: "grid gap-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5", children: Array.from({ length: 8 }).map((_, i) => ((0, jsx_runtime_1.jsx)("div", { className: "h-28 animate-pulse rounded-md bg-muted/50" }, i))) })), error && ((0, jsx_runtime_1.jsx)("div", { className: "rounded-md border border-destructive/30 bg-destructive/5 p-3 text-xs text-destructive", children: error })), !loading && !error && visibleItems.length === 0 && ((0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("flex h-full flex-col items-center justify-center gap-2 py-8 text-center text-sm text-muted-foreground", cls.empty), children: [(0, jsx_runtime_1.jsx)("span", { children: "No files match." }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => fileInputRef.current?.click(), className: "text-xs underline", children: "Upload one" })] })), !loading && !error && visibleItems.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)("grid gap-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5", cls.grid), children: visibleItems.map((media) => {
204
+ } })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex min-h-[280px] flex-1 min-h-0", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex-1 overflow-y-auto p-3", children: [loading && ((0, jsx_runtime_1.jsx)("div", { className: "grid auto-rows-max gap-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5", children: Array.from({ length: 16 }).map((_, i) => ((0, jsx_runtime_1.jsx)("div", { className: "h-28 animate-pulse rounded-md bg-muted/50" }, i))) })), error && ((0, jsx_runtime_1.jsx)("div", { className: "rounded-md border border-destructive/30 bg-destructive/5 p-3 text-xs text-destructive", children: error })), !loading && !error && visibleItems.length === 0 && (
205
+ // Empty state — `h-full justify-center` dialog'un ortasında
206
+ // "yükleme barı" hissi veriyordu. Top-align + büyük drop
207
+ // zone callout daha doğal: "buraya sürükle veya seç".
208
+ (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)("flex flex-col items-center gap-3 rounded-lg border-2 border-dashed border-border/60 px-6 py-12 text-center text-sm text-muted-foreground", cls.empty), children: [(0, jsx_runtime_1.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", className: "size-10 text-muted-foreground/40", "aria-hidden": "true", children: [(0, jsx_runtime_1.jsx)("path", { d: "M12 4v12m0 0l-4-4m4 4l4-4" }), (0, jsx_runtime_1.jsx)("path", { d: "M4 16v2a2 2 0 002 2h12a2 2 0 002-2v-2" })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col gap-1", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-foreground font-medium", children: "Drop files here" }), (0, jsx_runtime_1.jsxs)("span", { className: "text-xs", children: ["or", " ", (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: () => fileInputRef.current?.click(), className: "font-medium text-foreground underline-offset-4 hover:underline", children: "browse from your computer" })] })] })] })), !loading && !error && visibleItems.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)("grid gap-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5", cls.grid), children: visibleItems.map((media) => {
201
209
  const isSel = selectedIds.has(media.id);
202
210
  const kind = (0, utils_1.detectKind)(media);
203
211
  // Grid card 200-300 px display — orijinal 4K JPG yerine
@@ -1 +1 @@
1
- {"version":3,"file":"MediaManager.js","sourceRoot":"","sources":["../../src/react/MediaManager.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaManager.js","sourceRoot":"","sources":["../../src/react/MediaManager.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +1,26 @@
1
1
  import type { Media } from "../../types";
2
2
  /**
3
- * Sadeleştirilmiş lightboxtek media item için fullscreen preview.
4
- * Image/video native render, audio HTML5 player, diğerleri "download"
5
- * fallback. ESC kapat, ←/→ next/prev (caller index callback'i sağlar).
3
+ * Sentroy Lightboxfullscreen single-media preview.
6
4
  *
7
- * Headless yapı: tüm renderable HTML/inline class'lar default; consumer
8
- * className override'ı ile değiştirebilir.
5
+ * Tasarım hedefi: image viewer için "Photos.app" hissiyatı; viewport'a
6
+ * fit (resim ne kadar büyük/uzun olursa olsun ilk açılışta tamamı görünür),
7
+ * fare tekerleği veya butonlarla zoom, zoom>fit iken drag ile pan.
8
+ *
9
+ * Önceki sürüm sabit `max-h-[80vh]` ile portrait/long resimleri kırpıyor +
10
+ * caption şeridi viewport'u taşırıyordu. Yeni sürüm container size'ını
11
+ * ölçer, image natural size'ına göre `fitScale`'i hesaplar ve transform
12
+ * matrisi ile uygular — CSS `max-*` zincirlerine güvenmez.
13
+ *
14
+ * Klavye:
15
+ * Esc → close, ←/→ → prev/next, +/- → zoom, 0 → reset (fit), Space →
16
+ * 1× ↔ fit toggle.
9
17
  */
10
18
  export interface LightboxProps {
11
19
  media: Media;
12
20
  onClose: () => void;
13
21
  onPrev?: () => void;
14
22
  onNext?: () => void;
23
+ /** Outer container override — default fixed inset-0 black backdrop. */
15
24
  className?: string;
16
25
  }
17
26
  export declare function Lightbox({ media, onClose, onPrev, onNext, className, }: LightboxProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../../src/react/lib/Lightbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIxC;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE,aAAa,2CA6If"}
1
+ {"version":3,"file":"Lightbox.d.ts","sourceRoot":"","sources":["../../../src/react/lib/Lightbox.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAIxC;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,KAAK,CAAA;IACZ,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAA;IACnB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAKD,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE,aAAa,2CAuYf"}
@@ -5,42 +5,219 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const thumbnails_1 = require("../../thumbnails");
7
7
  const utils_1 = require("./utils");
8
+ const MIN_SCALE = 0.05;
9
+ const MAX_SCALE = 8;
8
10
  function Lightbox({ media, onClose, onPrev, onNext, className, }) {
11
+ const kind = (0, utils_1.detectKind)(media);
12
+ const url = kind === "image"
13
+ ? (0, thumbnails_1.pickPresetThumbnailUrl)(media, "preview") ?? media.url ?? media.downloadUrl
14
+ : media.url ?? media.downloadUrl;
15
+ // Body scroll lock + key handlers — bu effect media değişse de aynı kalır.
16
+ const onCloseRef = (0, react_1.useRef)(onClose);
17
+ const onPrevRef = (0, react_1.useRef)(onPrev);
18
+ const onNextRef = (0, react_1.useRef)(onNext);
19
+ onCloseRef.current = onClose;
20
+ onPrevRef.current = onPrev;
21
+ onNextRef.current = onNext;
9
22
  (0, react_1.useEffect)(() => {
10
- const onKey = (e) => {
11
- if (e.key === "Escape")
12
- onClose();
13
- if (e.key === "ArrowLeft" && onPrev)
14
- onPrev();
15
- if (e.key === "ArrowRight" && onNext)
16
- onNext();
17
- };
18
- document.addEventListener("keydown", onKey);
19
23
  document.body.style.overflow = "hidden";
20
24
  return () => {
21
- document.removeEventListener("keydown", onKey);
22
25
  document.body.style.overflow = "";
23
26
  };
24
- }, [onClose, onPrev, onNext]);
25
- const kind = (0, utils_1.detectKind)(media);
26
- // Lightbox modal büyük preview ama 4K/orijinal gerekmez. Image
27
- // için "preview" preset (~960px) kullan, video/audio/diğerlerinde
28
- // orijinal URL'i akıt.
29
- const url = kind === "image"
30
- ? (0, thumbnails_1.pickPresetThumbnailUrl)(media, "preview") ?? media.url ?? media.downloadUrl
31
- : media.url ?? media.downloadUrl;
27
+ }, []);
28
+ // ── Image-only zoom/pan state ──────────────────────────────────────────
29
+ const stageRef = (0, react_1.useRef)(null);
30
+ const imgRef = (0, react_1.useRef)(null);
31
+ const [natural, setNatural] = (0, react_1.useState)(null);
32
+ const [fitScale, setFitScale] = (0, react_1.useState)(1);
33
+ const [scale, setScale] = (0, react_1.useState)(1);
34
+ const [translate, setTranslate] = (0, react_1.useState)({ x: 0, y: 0 });
35
+ const dragStateRef = (0, react_1.useRef)(null);
36
+ const [isDragging, setIsDragging] = (0, react_1.useState)(false);
37
+ // Yeni media → state sıfırla (fit recompute imgLoad'da gelir)
38
+ (0, react_1.useEffect)(() => {
39
+ setNatural(null);
40
+ setFitScale(1);
41
+ setScale(1);
42
+ setTranslate({ x: 0, y: 0 });
43
+ }, [media.id]);
44
+ const recomputeFit = (0, react_1.useCallback)(() => {
45
+ const stage = stageRef.current;
46
+ if (!stage || !natural)
47
+ return;
48
+ // Stage'in viewport içindeki boyutu — padding/border yok varsayıyoruz.
49
+ const sw = stage.clientWidth;
50
+ const sh = stage.clientHeight;
51
+ if (sw <= 0 || sh <= 0)
52
+ return;
53
+ const fit = Math.min(sw / natural.w, sh / natural.h, 1);
54
+ setFitScale(fit);
55
+ setScale(fit);
56
+ setTranslate({ x: 0, y: 0 });
57
+ }, [natural]);
58
+ (0, react_1.useLayoutEffect)(() => {
59
+ recomputeFit();
60
+ }, [recomputeFit]);
61
+ (0, react_1.useEffect)(() => {
62
+ const onResize = () => recomputeFit();
63
+ window.addEventListener("resize", onResize);
64
+ return () => window.removeEventListener("resize", onResize);
65
+ }, [recomputeFit]);
66
+ const handleImgLoad = (0, react_1.useCallback)((e) => {
67
+ const img = e.currentTarget;
68
+ setNatural({ w: img.naturalWidth, h: img.naturalHeight });
69
+ }, []);
70
+ // Zoom around a pivot (cursor or center). Pivot stage-relative coords.
71
+ const zoomAt = (0, react_1.useCallback)((nextScale, pivot) => {
72
+ const stage = stageRef.current;
73
+ if (!stage)
74
+ return;
75
+ const clamped = Math.max(MIN_SCALE, Math.min(MAX_SCALE, nextScale));
76
+ const rect = stage.getBoundingClientRect();
77
+ const cx = pivot?.x ?? rect.width / 2;
78
+ const cy = pivot?.y ?? rect.height / 2;
79
+ // Image origin relative to stage center (current translate accounted)
80
+ // p = ((c - center) - t) / s → world coords. Yeni translate:
81
+ // t' = (c - center) - p * s'
82
+ const ox = cx - rect.width / 2 - translate.x;
83
+ const oy = cy - rect.height / 2 - translate.y;
84
+ const ratio = clamped / scale;
85
+ const tx = cx - rect.width / 2 - ox * ratio;
86
+ const ty = cy - rect.height / 2 - oy * ratio;
87
+ setScale(clamped);
88
+ setTranslate({ x: tx, y: ty });
89
+ }, [scale, translate]);
90
+ const zoomBy = (0, react_1.useCallback)((factor, pivot) => zoomAt(scale * factor, pivot), [scale, zoomAt]);
91
+ const resetView = (0, react_1.useCallback)(() => {
92
+ setScale(fitScale);
93
+ setTranslate({ x: 0, y: 0 });
94
+ }, [fitScale]);
95
+ const toggle1x = (0, react_1.useCallback)(() => {
96
+ if (Math.abs(scale - 1) < 0.001) {
97
+ resetView();
98
+ }
99
+ else {
100
+ setScale(1);
101
+ setTranslate({ x: 0, y: 0 });
102
+ }
103
+ }, [scale, resetView]);
104
+ // Wheel zoom (cursor-aware)
105
+ const handleWheel = (0, react_1.useCallback)((e) => {
106
+ if (kind !== "image")
107
+ return;
108
+ e.preventDefault();
109
+ const stage = stageRef.current;
110
+ if (!stage)
111
+ return;
112
+ const rect = stage.getBoundingClientRect();
113
+ const pivot = { x: e.clientX - rect.left, y: e.clientY - rect.top };
114
+ const factor = e.deltaY < 0 ? 1.12 : 1 / 1.12;
115
+ zoomBy(factor, pivot);
116
+ }, [kind, zoomBy]);
117
+ // Drag-to-pan
118
+ const onPointerDown = (0, react_1.useCallback)((e) => {
119
+ if (kind !== "image")
120
+ return;
121
+ // Sadece sol tıklama (button 0) veya touch
122
+ if (e.button !== 0 && e.pointerType === "mouse")
123
+ return;
124
+ dragStateRef.current = {
125
+ active: true,
126
+ startX: e.clientX,
127
+ startY: e.clientY,
128
+ baseX: translate.x,
129
+ baseY: translate.y,
130
+ };
131
+ setIsDragging(true);
132
+ e.target.setPointerCapture?.(e.pointerId);
133
+ }, [kind, translate]);
134
+ const onPointerMove = (0, react_1.useCallback)((e) => {
135
+ const ds = dragStateRef.current;
136
+ if (!ds?.active)
137
+ return;
138
+ e.preventDefault();
139
+ const dx = e.clientX - ds.startX;
140
+ const dy = e.clientY - ds.startY;
141
+ setTranslate({ x: ds.baseX + dx, y: ds.baseY + dy });
142
+ }, []);
143
+ const endDrag = (0, react_1.useCallback)(() => {
144
+ if (dragStateRef.current?.active) {
145
+ dragStateRef.current.active = false;
146
+ setIsDragging(false);
147
+ }
148
+ }, []);
149
+ // Klavye
150
+ (0, react_1.useEffect)(() => {
151
+ const onKey = (e) => {
152
+ if (e.target instanceof HTMLElement &&
153
+ (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA")) {
154
+ return;
155
+ }
156
+ if (e.key === "Escape") {
157
+ e.preventDefault();
158
+ onCloseRef.current();
159
+ }
160
+ else if (e.key === "ArrowLeft" && onPrevRef.current) {
161
+ e.preventDefault();
162
+ onPrevRef.current();
163
+ }
164
+ else if (e.key === "ArrowRight" && onNextRef.current) {
165
+ e.preventDefault();
166
+ onNextRef.current();
167
+ }
168
+ else if (e.key === "+" || e.key === "=") {
169
+ e.preventDefault();
170
+ zoomBy(1.2);
171
+ }
172
+ else if (e.key === "-" || e.key === "_") {
173
+ e.preventDefault();
174
+ zoomBy(1 / 1.2);
175
+ }
176
+ else if (e.key === "0") {
177
+ e.preventDefault();
178
+ resetView();
179
+ }
180
+ else if (e.key === " ") {
181
+ e.preventDefault();
182
+ toggle1x();
183
+ }
184
+ };
185
+ document.addEventListener("keydown", onKey);
186
+ return () => document.removeEventListener("keydown", onKey);
187
+ }, [zoomBy, resetView, toggle1x]);
188
+ const canPan = kind === "image" && scale > fitScale + 0.001;
32
189
  return ((0, jsx_runtime_1.jsxs)("div", { role: "dialog", "aria-modal": "true", onClick: (e) => {
33
190
  if (e.target === e.currentTarget)
34
191
  onClose();
35
192
  }, className: className ||
36
- "fixed inset-0 z-50 flex items-center justify-center bg-black/90 p-4 backdrop-blur-sm", children: [(0, jsx_runtime_1.jsx)("button", { type: "button", onClick: onClose, "aria-label": "Close", className: "absolute right-4 top-4 rounded-full bg-white/10 p-2 text-white transition-colors hover:bg-white/20", children: (0, jsx_runtime_1.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: (0, jsx_runtime_1.jsx)("path", { d: "M18 6L6 18M6 6l12 12" }) }) }), onPrev && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: (e) => {
37
- e.stopPropagation();
38
- onPrev();
39
- }, "aria-label": "Previous", className: "absolute left-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white transition-colors hover:bg-white/20", children: (0, jsx_runtime_1.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: (0, jsx_runtime_1.jsx)("path", { d: "M15 18l-6-6 6-6" }) }) })), onNext && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: (e) => {
40
- e.stopPropagation();
41
- onNext();
42
- }, "aria-label": "Next", className: "absolute right-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white transition-colors hover:bg-white/20", children: (0, jsx_runtime_1.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: (0, jsx_runtime_1.jsx)("path", { d: "M9 6l6 6-6 6" }) }) })), (0, jsx_runtime_1.jsxs)("div", { className: "flex max-h-full max-w-5xl flex-col items-center gap-3", children: [kind === "image" && url && (
193
+ "fixed inset-0 z-50 flex flex-col bg-black/95 backdrop-blur-sm", 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-2.5", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex min-w-0 items-center gap-3 text-xs text-white/70", children: [(0, jsx_runtime_1.jsx)("span", { className: "font-mono truncate max-w-md", children: media.fileName }), media.size ? ((0, jsx_runtime_1.jsx)("span", { className: "text-white/40", children: "\u00B7" })) : null, media.size ? (0, jsx_runtime_1.jsx)("span", { children: (0, utils_1.formatBytes)(media.size) }) : null, media.mimeType ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { className: "text-white/40", children: "\u00B7" }), (0, jsx_runtime_1.jsx)("span", { className: "font-mono text-white/40", children: media.mimeType })] })) : null] }), (0, jsx_runtime_1.jsx)("button", { type: "button", onClick: onClose, "aria-label": "Close", className: "rounded-full bg-white/10 p-1.5 text-white transition-colors hover:bg-white/20", children: (0, jsx_runtime_1.jsx)("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: (0, jsx_runtime_1.jsx)("path", { d: "M18 6L6 18M6 6l12 12" }) }) })] }), (0, jsx_runtime_1.jsxs)("div", { ref: stageRef, onClick: (e) => {
194
+ if (e.target === e.currentTarget)
195
+ onClose();
196
+ }, onWheel: handleWheel, onPointerDown: onPointerDown, onPointerMove: onPointerMove, onPointerUp: endDrag, onPointerLeave: endDrag, className: "relative flex flex-1 min-h-0 items-center justify-center overflow-hidden select-none", style: {
197
+ cursor: kind === "image"
198
+ ? isDragging
199
+ ? "grabbing"
200
+ : canPan
201
+ ? "grab"
202
+ : "default"
203
+ : "default",
204
+ }, children: [kind === "image" && url && (
43
205
  // eslint-disable-next-line @next/next/no-img-element
44
- (0, jsx_runtime_1.jsx)("img", { src: url, alt: media.alt ?? media.fileName, className: "max-h-[80vh] max-w-full rounded-lg object-contain shadow-2xl" })), kind === "video" && url && ((0, jsx_runtime_1.jsx)("video", { src: url, controls: true, autoPlay: true, className: "max-h-[80vh] max-w-full rounded-lg shadow-2xl" })), kind === "audio" && url && ((0, jsx_runtime_1.jsxs)("div", { className: "flex w-full max-w-md flex-col gap-3 rounded-lg bg-white/10 p-6 text-white", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-center text-sm font-medium", children: media.fileName }), (0, jsx_runtime_1.jsx)("audio", { src: url, controls: true, className: "w-full" })] })), kind !== "image" && kind !== "video" && kind !== "audio" && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center gap-3 rounded-lg bg-white/10 p-8 text-white", children: [(0, jsx_runtime_1.jsxs)("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [(0, jsx_runtime_1.jsx)("path", { d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" }), (0, jsx_runtime_1.jsx)("path", { d: "M14 2v6h6" })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-sm font-medium", children: media.fileName }), (0, jsx_runtime_1.jsx)("a", { href: url, download: media.fileName, target: "_blank", rel: "noreferrer", className: "rounded-md bg-white px-4 py-2 text-xs font-semibold text-black hover:bg-white/90", children: "Download" })] })), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3 rounded-md bg-black/40 px-3 py-1.5 text-xs text-white/80", children: [(0, jsx_runtime_1.jsx)("span", { className: "font-mono truncate max-w-xs", children: media.fileName }), (0, jsx_runtime_1.jsx)("span", { children: "\u00B7" }), (0, jsx_runtime_1.jsx)("span", { children: (0, utils_1.formatBytes)(media.size ?? 0) }), media.mimeType && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("span", { children: "\u00B7" }), (0, jsx_runtime_1.jsx)("span", { className: "font-mono opacity-70", children: media.mimeType })] }))] })] })] }));
206
+ (0, jsx_runtime_1.jsx)("img", { ref: imgRef, src: url, alt: media.alt ?? media.fileName, draggable: false, onLoad: handleImgLoad, onDoubleClick: toggle1x, className: "origin-center select-none", style: {
207
+ transform: `translate(${translate.x}px, ${translate.y}px) scale(${scale})`,
208
+ transition: isDragging ? "none" : "transform 0.18s ease-out",
209
+ maxWidth: "none",
210
+ maxHeight: "none",
211
+ willChange: "transform",
212
+ } })), kind === "video" && url && ((0, jsx_runtime_1.jsx)("video", { src: url, controls: true, autoPlay: true, className: "max-h-full max-w-full rounded-lg shadow-2xl" })), kind === "audio" && url && ((0, jsx_runtime_1.jsxs)("div", { className: "flex w-full max-w-md flex-col gap-3 rounded-lg bg-white/10 p-6 text-white", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-center text-sm font-medium", children: media.fileName }), (0, jsx_runtime_1.jsx)("audio", { src: url, controls: true, className: "w-full" })] })), kind !== "image" && kind !== "video" && kind !== "audio" && ((0, jsx_runtime_1.jsxs)("div", { className: "flex flex-col items-center gap-3 rounded-lg bg-white/10 p-8 text-white", children: [(0, jsx_runtime_1.jsxs)("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", children: [(0, jsx_runtime_1.jsx)("path", { d: "M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z" }), (0, jsx_runtime_1.jsx)("path", { d: "M14 2v6h6" })] }), (0, jsx_runtime_1.jsx)("div", { className: "text-sm font-medium", children: media.fileName }), (0, jsx_runtime_1.jsx)("a", { href: url, download: media.fileName, target: "_blank", rel: "noreferrer", className: "rounded-md bg-white px-4 py-2 text-xs font-semibold text-black hover:bg-white/90", children: "Download" })] })), onPrev && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: (e) => {
213
+ e.stopPropagation();
214
+ onPrev();
215
+ }, "aria-label": "Previous", className: "absolute left-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white transition-colors hover:bg-white/20", children: (0, jsx_runtime_1.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: (0, jsx_runtime_1.jsx)("path", { d: "M15 18l-6-6 6-6" }) }) })), onNext && ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: (e) => {
216
+ e.stopPropagation();
217
+ onNext();
218
+ }, "aria-label": "Next", className: "absolute right-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white transition-colors hover:bg-white/20", children: (0, jsx_runtime_1.jsx)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: (0, jsx_runtime_1.jsx)("path", { d: "M9 6l6 6-6 6" }) }) }))] }), kind === "image" && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-center gap-3 border-t border-white/10 bg-black/40 px-4 py-2.5", children: [(0, jsx_runtime_1.jsx)(ToolbarBtn, { onClick: () => zoomBy(1 / 1.2), title: "Zoom out (\u2212)", children: (0, jsx_runtime_1.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", width: "16", height: "16", children: [(0, jsx_runtime_1.jsx)("circle", { cx: "11", cy: "11", r: "7" }), (0, jsx_runtime_1.jsx)("path", { d: "M8 11h6M21 21l-4.3-4.3" })] }) }), (0, jsx_runtime_1.jsxs)("span", { className: "font-mono text-[11px] text-white/60 min-w-[3.5rem] text-center", children: [Math.round(scale * 100), "%"] }), (0, jsx_runtime_1.jsx)(ToolbarBtn, { onClick: () => zoomBy(1.2), title: "Zoom in (+)", children: (0, jsx_runtime_1.jsxs)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", width: "16", height: "16", children: [(0, jsx_runtime_1.jsx)("circle", { cx: "11", cy: "11", r: "7" }), (0, jsx_runtime_1.jsx)("path", { d: "M8 11h6M11 8v6M21 21l-4.3-4.3" })] }) }), (0, jsx_runtime_1.jsx)("span", { className: "mx-2 h-5 w-px bg-white/15" }), (0, jsx_runtime_1.jsx)(ToolbarBtn, { onClick: resetView, title: "Fit (0)", children: (0, jsx_runtime_1.jsx)("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", width: "16", height: "16", children: (0, jsx_runtime_1.jsx)("path", { d: "M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5" }) }) }), (0, jsx_runtime_1.jsx)(ToolbarBtn, { onClick: toggle1x, title: "100% (Space)", children: (0, jsx_runtime_1.jsx)("span", { className: "font-mono text-[11px] font-medium", children: "1:1" }) })] }))] }));
219
+ }
220
+ function ToolbarBtn({ children, onClick, title, }) {
221
+ return ((0, jsx_runtime_1.jsx)("button", { type: "button", onClick: onClick, title: title, "aria-label": title, className: "inline-flex size-8 items-center justify-center rounded-md text-white/80 transition-colors hover:bg-white/10 hover:text-white", children: children }));
45
222
  }
46
223
  //# sourceMappingURL=Lightbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Lightbox.js","sourceRoot":"","sources":["../../../src/react/lib/Lightbox.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Lightbox.js","sourceRoot":"","sources":["../../../src/react/lib/Lightbox.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentroy-co/client-sdk",
3
- "version": "2.13.6",
3
+ "version": "2.13.7",
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",
@@ -323,7 +323,10 @@ export function MediaManager(props: MediaManagerProps) {
323
323
  return (
324
324
  <div
325
325
  className={cn(
326
- "flex flex-col gap-3 rounded-xl border bg-background text-foreground",
326
+ // `relative` drop overlay (`absolute inset-0`) için positioning
327
+ // context. Eskiden eksikti, drag-and-drop görsel feedback hiç
328
+ // görünmüyordu.
329
+ "relative flex flex-col gap-3 rounded-xl border bg-background text-foreground",
327
330
  className,
328
331
  cls.root,
329
332
  )}
@@ -414,11 +417,11 @@ export function MediaManager(props: MediaManagerProps) {
414
417
  </div>
415
418
 
416
419
  {/* Grid + details */}
417
- <div className="flex min-h-[280px] flex-1">
420
+ <div className="flex min-h-[280px] flex-1 min-h-0">
418
421
  <div className="flex-1 overflow-y-auto p-3">
419
422
  {loading && (
420
- <div className="grid gap-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5">
421
- {Array.from({ length: 8 }).map((_, i) => (
423
+ <div className="grid auto-rows-max gap-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5">
424
+ {Array.from({ length: 16 }).map((_, i) => (
422
425
  <div
423
426
  key={i}
424
427
  className="h-28 animate-pulse rounded-md bg-muted/50"
@@ -432,20 +435,41 @@ export function MediaManager(props: MediaManagerProps) {
432
435
  </div>
433
436
  )}
434
437
  {!loading && !error && visibleItems.length === 0 && (
438
+ // Empty state — `h-full justify-center` dialog'un ortasında
439
+ // "yükleme barı" hissi veriyordu. Top-align + büyük drop
440
+ // zone callout daha doğal: "buraya sürükle veya seç".
435
441
  <div
436
442
  className={cn(
437
- "flex h-full flex-col items-center justify-center gap-2 py-8 text-center text-sm text-muted-foreground",
443
+ "flex flex-col items-center gap-3 rounded-lg border-2 border-dashed border-border/60 px-6 py-12 text-center text-sm text-muted-foreground",
438
444
  cls.empty,
439
445
  )}
440
446
  >
441
- <span>No files match.</span>
442
- <button
443
- type="button"
444
- onClick={() => fileInputRef.current?.click()}
445
- className="text-xs underline"
447
+ <svg
448
+ viewBox="0 0 24 24"
449
+ fill="none"
450
+ stroke="currentColor"
451
+ strokeWidth="1.5"
452
+ className="size-10 text-muted-foreground/40"
453
+ aria-hidden="true"
446
454
  >
447
- Upload one
448
- </button>
455
+ <path d="M12 4v12m0 0l-4-4m4 4l4-4" />
456
+ <path d="M4 16v2a2 2 0 002 2h12a2 2 0 002-2v-2" />
457
+ </svg>
458
+ <div className="flex flex-col gap-1">
459
+ <span className="text-foreground font-medium">
460
+ Drop files here
461
+ </span>
462
+ <span className="text-xs">
463
+ or{" "}
464
+ <button
465
+ type="button"
466
+ onClick={() => fileInputRef.current?.click()}
467
+ className="font-medium text-foreground underline-offset-4 hover:underline"
468
+ >
469
+ browse from your computer
470
+ </button>
471
+ </span>
472
+ </div>
449
473
  </div>
450
474
  )}
451
475
  {!loading && !error && visibleItems.length > 0 && (
@@ -1,24 +1,43 @@
1
- import { useEffect } from "react"
1
+ import {
2
+ useCallback,
3
+ useEffect,
4
+ useLayoutEffect,
5
+ useRef,
6
+ useState,
7
+ } from "react"
2
8
  import type { Media } from "../../types"
3
9
  import { pickPresetThumbnailUrl } from "../../thumbnails"
4
10
  import { detectKind, formatBytes } from "./utils"
5
11
 
6
12
  /**
7
- * Sadeleştirilmiş lightboxtek media item için fullscreen preview.
8
- * Image/video native render, audio HTML5 player, diğerleri "download"
9
- * fallback. ESC kapat, ←/→ next/prev (caller index callback'i sağlar).
13
+ * Sentroy Lightboxfullscreen single-media preview.
10
14
  *
11
- * Headless yapı: tüm renderable HTML/inline class'lar default; consumer
12
- * className override'ı ile değiştirebilir.
15
+ * Tasarım hedefi: image viewer için "Photos.app" hissiyatı; viewport'a
16
+ * fit (resim ne kadar büyük/uzun olursa olsun ilk açılışta tamamı görünür),
17
+ * fare tekerleği veya butonlarla zoom, zoom>fit iken drag ile pan.
18
+ *
19
+ * Önceki sürüm sabit `max-h-[80vh]` ile portrait/long resimleri kırpıyor +
20
+ * caption şeridi viewport'u taşırıyordu. Yeni sürüm container size'ını
21
+ * ölçer, image natural size'ına göre `fitScale`'i hesaplar ve transform
22
+ * matrisi ile uygular — CSS `max-*` zincirlerine güvenmez.
23
+ *
24
+ * Klavye:
25
+ * Esc → close, ←/→ → prev/next, +/- → zoom, 0 → reset (fit), Space →
26
+ * 1× ↔ fit toggle.
13
27
  */
28
+
14
29
  export interface LightboxProps {
15
30
  media: Media
16
31
  onClose: () => void
17
32
  onPrev?: () => void
18
33
  onNext?: () => void
34
+ /** Outer container override — default fixed inset-0 black backdrop. */
19
35
  className?: string
20
36
  }
21
37
 
38
+ const MIN_SCALE = 0.05
39
+ const MAX_SCALE = 8
40
+
22
41
  export function Lightbox({
23
42
  media,
24
43
  onClose,
@@ -26,28 +45,212 @@ export function Lightbox({
26
45
  onNext,
27
46
  className,
28
47
  }: LightboxProps) {
48
+ const kind = detectKind(media)
49
+ const url =
50
+ kind === "image"
51
+ ? pickPresetThumbnailUrl(media, "preview") ?? media.url ?? media.downloadUrl
52
+ : media.url ?? media.downloadUrl
53
+
54
+ // Body scroll lock + key handlers — bu effect media değişse de aynı kalır.
55
+ const onCloseRef = useRef(onClose)
56
+ const onPrevRef = useRef(onPrev)
57
+ const onNextRef = useRef(onNext)
58
+ onCloseRef.current = onClose
59
+ onPrevRef.current = onPrev
60
+ onNextRef.current = onNext
61
+
29
62
  useEffect(() => {
30
- const onKey = (e: KeyboardEvent) => {
31
- if (e.key === "Escape") onClose()
32
- if (e.key === "ArrowLeft" && onPrev) onPrev()
33
- if (e.key === "ArrowRight" && onNext) onNext()
34
- }
35
- document.addEventListener("keydown", onKey)
36
63
  document.body.style.overflow = "hidden"
37
64
  return () => {
38
- document.removeEventListener("keydown", onKey)
39
65
  document.body.style.overflow = ""
40
66
  }
41
- }, [onClose, onPrev, onNext])
67
+ }, [])
42
68
 
43
- const kind = detectKind(media)
44
- // Lightbox modal büyük preview ama 4K/orijinal gerekmez. Image
45
- // için "preview" preset (~960px) kullan, video/audio/diğerlerinde
46
- // orijinal URL'i akıt.
47
- const url =
48
- kind === "image"
49
- ? pickPresetThumbnailUrl(media, "preview") ?? media.url ?? media.downloadUrl
50
- : media.url ?? media.downloadUrl
69
+ // ── Image-only zoom/pan state ──────────────────────────────────────────
70
+ const stageRef = useRef<HTMLDivElement | null>(null)
71
+ const imgRef = useRef<HTMLImageElement | null>(null)
72
+ const [natural, setNatural] = useState<{ w: number; h: number } | null>(null)
73
+ const [fitScale, setFitScale] = useState(1)
74
+ const [scale, setScale] = useState(1)
75
+ const [translate, setTranslate] = useState({ x: 0, y: 0 })
76
+ const dragStateRef = useRef<{
77
+ active: boolean
78
+ startX: number
79
+ startY: number
80
+ baseX: number
81
+ baseY: number
82
+ } | null>(null)
83
+ const [isDragging, setIsDragging] = useState(false)
84
+
85
+ // Yeni media → state sıfırla (fit recompute imgLoad'da gelir)
86
+ useEffect(() => {
87
+ setNatural(null)
88
+ setFitScale(1)
89
+ setScale(1)
90
+ setTranslate({ x: 0, y: 0 })
91
+ }, [media.id])
92
+
93
+ const recomputeFit = useCallback(() => {
94
+ const stage = stageRef.current
95
+ if (!stage || !natural) return
96
+ // Stage'in viewport içindeki boyutu — padding/border yok varsayıyoruz.
97
+ const sw = stage.clientWidth
98
+ const sh = stage.clientHeight
99
+ if (sw <= 0 || sh <= 0) return
100
+ const fit = Math.min(sw / natural.w, sh / natural.h, 1)
101
+ setFitScale(fit)
102
+ setScale(fit)
103
+ setTranslate({ x: 0, y: 0 })
104
+ }, [natural])
105
+
106
+ useLayoutEffect(() => {
107
+ recomputeFit()
108
+ }, [recomputeFit])
109
+
110
+ useEffect(() => {
111
+ const onResize = () => recomputeFit()
112
+ window.addEventListener("resize", onResize)
113
+ return () => window.removeEventListener("resize", onResize)
114
+ }, [recomputeFit])
115
+
116
+ const handleImgLoad = useCallback((e: React.SyntheticEvent<HTMLImageElement>) => {
117
+ const img = e.currentTarget
118
+ setNatural({ w: img.naturalWidth, h: img.naturalHeight })
119
+ }, [])
120
+
121
+ // Zoom around a pivot (cursor or center). Pivot stage-relative coords.
122
+ const zoomAt = useCallback(
123
+ (nextScale: number, pivot?: { x: number; y: number }) => {
124
+ const stage = stageRef.current
125
+ if (!stage) return
126
+ const clamped = Math.max(MIN_SCALE, Math.min(MAX_SCALE, nextScale))
127
+ const rect = stage.getBoundingClientRect()
128
+ const cx = pivot?.x ?? rect.width / 2
129
+ const cy = pivot?.y ?? rect.height / 2
130
+ // Image origin relative to stage center (current translate accounted)
131
+ // p = ((c - center) - t) / s → world coords. Yeni translate:
132
+ // t' = (c - center) - p * s'
133
+ const ox = cx - rect.width / 2 - translate.x
134
+ const oy = cy - rect.height / 2 - translate.y
135
+ const ratio = clamped / scale
136
+ const tx = cx - rect.width / 2 - ox * ratio
137
+ const ty = cy - rect.height / 2 - oy * ratio
138
+ setScale(clamped)
139
+ setTranslate({ x: tx, y: ty })
140
+ },
141
+ [scale, translate],
142
+ )
143
+
144
+ const zoomBy = useCallback(
145
+ (factor: number, pivot?: { x: number; y: number }) =>
146
+ zoomAt(scale * factor, pivot),
147
+ [scale, zoomAt],
148
+ )
149
+
150
+ const resetView = useCallback(() => {
151
+ setScale(fitScale)
152
+ setTranslate({ x: 0, y: 0 })
153
+ }, [fitScale])
154
+
155
+ const toggle1x = useCallback(() => {
156
+ if (Math.abs(scale - 1) < 0.001) {
157
+ resetView()
158
+ } else {
159
+ setScale(1)
160
+ setTranslate({ x: 0, y: 0 })
161
+ }
162
+ }, [scale, resetView])
163
+
164
+ // Wheel zoom (cursor-aware)
165
+ const handleWheel = useCallback(
166
+ (e: React.WheelEvent<HTMLDivElement>) => {
167
+ if (kind !== "image") return
168
+ e.preventDefault()
169
+ const stage = stageRef.current
170
+ if (!stage) return
171
+ const rect = stage.getBoundingClientRect()
172
+ const pivot = { x: e.clientX - rect.left, y: e.clientY - rect.top }
173
+ const factor = e.deltaY < 0 ? 1.12 : 1 / 1.12
174
+ zoomBy(factor, pivot)
175
+ },
176
+ [kind, zoomBy],
177
+ )
178
+
179
+ // Drag-to-pan
180
+ const onPointerDown = useCallback(
181
+ (e: React.PointerEvent<HTMLDivElement>) => {
182
+ if (kind !== "image") return
183
+ // Sadece sol tıklama (button 0) veya touch
184
+ if (e.button !== 0 && e.pointerType === "mouse") return
185
+ dragStateRef.current = {
186
+ active: true,
187
+ startX: e.clientX,
188
+ startY: e.clientY,
189
+ baseX: translate.x,
190
+ baseY: translate.y,
191
+ }
192
+ setIsDragging(true)
193
+ ;(e.target as HTMLElement).setPointerCapture?.(e.pointerId)
194
+ },
195
+ [kind, translate],
196
+ )
197
+
198
+ const onPointerMove = useCallback(
199
+ (e: React.PointerEvent<HTMLDivElement>) => {
200
+ const ds = dragStateRef.current
201
+ if (!ds?.active) return
202
+ e.preventDefault()
203
+ const dx = e.clientX - ds.startX
204
+ const dy = e.clientY - ds.startY
205
+ setTranslate({ x: ds.baseX + dx, y: ds.baseY + dy })
206
+ },
207
+ [],
208
+ )
209
+
210
+ const endDrag = useCallback(() => {
211
+ if (dragStateRef.current?.active) {
212
+ dragStateRef.current.active = false
213
+ setIsDragging(false)
214
+ }
215
+ }, [])
216
+
217
+ // Klavye
218
+ useEffect(() => {
219
+ const onKey = (e: KeyboardEvent) => {
220
+ if (
221
+ e.target instanceof HTMLElement &&
222
+ (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA")
223
+ ) {
224
+ return
225
+ }
226
+ if (e.key === "Escape") {
227
+ e.preventDefault()
228
+ onCloseRef.current()
229
+ } else if (e.key === "ArrowLeft" && onPrevRef.current) {
230
+ e.preventDefault()
231
+ onPrevRef.current()
232
+ } else if (e.key === "ArrowRight" && onNextRef.current) {
233
+ e.preventDefault()
234
+ onNextRef.current()
235
+ } else if (e.key === "+" || e.key === "=") {
236
+ e.preventDefault()
237
+ zoomBy(1.2)
238
+ } else if (e.key === "-" || e.key === "_") {
239
+ e.preventDefault()
240
+ zoomBy(1 / 1.2)
241
+ } else if (e.key === "0") {
242
+ e.preventDefault()
243
+ resetView()
244
+ } else if (e.key === " ") {
245
+ e.preventDefault()
246
+ toggle1x()
247
+ }
248
+ }
249
+ document.addEventListener("keydown", onKey)
250
+ return () => document.removeEventListener("keydown", onKey)
251
+ }, [zoomBy, resetView, toggle1x])
252
+
253
+ const canPan = kind === "image" && scale > fitScale + 0.001
51
254
 
52
255
  return (
53
256
  <div
@@ -58,63 +261,78 @@ export function Lightbox({
58
261
  }}
59
262
  className={
60
263
  className ||
61
- "fixed inset-0 z-50 flex items-center justify-center bg-black/90 p-4 backdrop-blur-sm"
264
+ "fixed inset-0 z-50 flex flex-col bg-black/95 backdrop-blur-sm"
62
265
  }
63
266
  >
64
- {/* Close button */}
65
- <button
66
- type="button"
67
- onClick={onClose}
68
- aria-label="Close"
69
- className="absolute right-4 top-4 rounded-full bg-white/10 p-2 text-white transition-colors hover:bg-white/20"
70
- >
71
- <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
72
- <path d="M18 6L6 18M6 6l12 12" />
73
- </svg>
74
- </button>
75
-
76
- {/* Prev */}
77
- {onPrev && (
78
- <button
79
- type="button"
80
- onClick={(e) => {
81
- e.stopPropagation()
82
- onPrev()
83
- }}
84
- aria-label="Previous"
85
- className="absolute left-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white transition-colors hover:bg-white/20"
86
- >
87
- <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
88
- <path d="M15 18l-6-6 6-6" />
89
- </svg>
90
- </button>
91
- )}
92
-
93
- {/* Next */}
94
- {onNext && (
267
+ {/* Top bar — close + filename */}
268
+ <div className="flex items-center justify-between gap-3 border-b border-white/10 bg-black/40 px-4 py-2.5">
269
+ <div className="flex min-w-0 items-center gap-3 text-xs text-white/70">
270
+ <span className="font-mono truncate max-w-md">
271
+ {media.fileName}
272
+ </span>
273
+ {media.size ? (
274
+ <span className="text-white/40">·</span>
275
+ ) : null}
276
+ {media.size ? <span>{formatBytes(media.size)}</span> : null}
277
+ {media.mimeType ? (
278
+ <>
279
+ <span className="text-white/40">·</span>
280
+ <span className="font-mono text-white/40">{media.mimeType}</span>
281
+ </>
282
+ ) : null}
283
+ </div>
95
284
  <button
96
285
  type="button"
97
- onClick={(e) => {
98
- e.stopPropagation()
99
- onNext()
100
- }}
101
- aria-label="Next"
102
- className="absolute right-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white transition-colors hover:bg-white/20"
286
+ onClick={onClose}
287
+ aria-label="Close"
288
+ className="rounded-full bg-white/10 p-1.5 text-white transition-colors hover:bg-white/20"
103
289
  >
104
- <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
105
- <path d="M9 6l6 6-6 6" />
290
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
291
+ <path d="M18 6L6 18M6 6l12 12" />
106
292
  </svg>
107
293
  </button>
108
- )}
294
+ </div>
109
295
 
110
- {/* Content */}
111
- <div className="flex max-h-full max-w-5xl flex-col items-center gap-3">
296
+ {/* Stage */}
297
+ <div
298
+ ref={stageRef}
299
+ onClick={(e) => {
300
+ if (e.target === e.currentTarget) onClose()
301
+ }}
302
+ onWheel={handleWheel}
303
+ onPointerDown={onPointerDown}
304
+ onPointerMove={onPointerMove}
305
+ onPointerUp={endDrag}
306
+ onPointerLeave={endDrag}
307
+ className="relative flex flex-1 min-h-0 items-center justify-center overflow-hidden select-none"
308
+ style={{
309
+ cursor:
310
+ kind === "image"
311
+ ? isDragging
312
+ ? "grabbing"
313
+ : canPan
314
+ ? "grab"
315
+ : "default"
316
+ : "default",
317
+ }}
318
+ >
112
319
  {kind === "image" && url && (
113
320
  // eslint-disable-next-line @next/next/no-img-element
114
321
  <img
322
+ ref={imgRef}
115
323
  src={url}
116
324
  alt={media.alt ?? media.fileName}
117
- className="max-h-[80vh] max-w-full rounded-lg object-contain shadow-2xl"
325
+ draggable={false}
326
+ onLoad={handleImgLoad}
327
+ onDoubleClick={toggle1x}
328
+ className="origin-center select-none"
329
+ style={{
330
+ transform: `translate(${translate.x}px, ${translate.y}px) scale(${scale})`,
331
+ transition: isDragging ? "none" : "transform 0.18s ease-out",
332
+ maxWidth: "none",
333
+ maxHeight: "none",
334
+ willChange: "transform",
335
+ }}
118
336
  />
119
337
  )}
120
338
  {kind === "video" && url && (
@@ -122,7 +340,7 @@ export function Lightbox({
122
340
  src={url}
123
341
  controls
124
342
  autoPlay
125
- className="max-h-[80vh] max-w-full rounded-lg shadow-2xl"
343
+ className="max-h-full max-w-full rounded-lg shadow-2xl"
126
344
  />
127
345
  )}
128
346
  {kind === "audio" && url && (
@@ -152,18 +370,91 @@ export function Lightbox({
152
370
  </div>
153
371
  )}
154
372
 
155
- <div className="flex items-center gap-3 rounded-md bg-black/40 px-3 py-1.5 text-xs text-white/80">
156
- <span className="font-mono truncate max-w-xs">{media.fileName}</span>
157
- <span>·</span>
158
- <span>{formatBytes(media.size ?? 0)}</span>
159
- {media.mimeType && (
160
- <>
161
- <span>·</span>
162
- <span className="font-mono opacity-70">{media.mimeType}</span>
163
- </>
164
- )}
165
- </div>
373
+ {/* Prev / Next nav overlay'da, alttaki bottom bar tarafından
374
+ gizlenmesin diye nav transform-y-50% */}
375
+ {onPrev && (
376
+ <button
377
+ type="button"
378
+ onClick={(e) => {
379
+ e.stopPropagation()
380
+ onPrev()
381
+ }}
382
+ aria-label="Previous"
383
+ className="absolute left-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white transition-colors hover:bg-white/20"
384
+ >
385
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
386
+ <path d="M15 18l-6-6 6-6" />
387
+ </svg>
388
+ </button>
389
+ )}
390
+ {onNext && (
391
+ <button
392
+ type="button"
393
+ onClick={(e) => {
394
+ e.stopPropagation()
395
+ onNext()
396
+ }}
397
+ aria-label="Next"
398
+ className="absolute right-4 top-1/2 -translate-y-1/2 rounded-full bg-white/10 p-3 text-white transition-colors hover:bg-white/20"
399
+ >
400
+ <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2">
401
+ <path d="M9 6l6 6-6 6" />
402
+ </svg>
403
+ </button>
404
+ )}
166
405
  </div>
406
+
407
+ {/* Bottom toolbar — image only (zoom controls + readout) */}
408
+ {kind === "image" && (
409
+ <div className="flex items-center justify-center gap-3 border-t border-white/10 bg-black/40 px-4 py-2.5">
410
+ <ToolbarBtn onClick={() => zoomBy(1 / 1.2)} title="Zoom out (−)">
411
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" width="16" height="16">
412
+ <circle cx="11" cy="11" r="7" />
413
+ <path d="M8 11h6M21 21l-4.3-4.3" />
414
+ </svg>
415
+ </ToolbarBtn>
416
+ <span className="font-mono text-[11px] text-white/60 min-w-[3.5rem] text-center">
417
+ {Math.round(scale * 100)}%
418
+ </span>
419
+ <ToolbarBtn onClick={() => zoomBy(1.2)} title="Zoom in (+)">
420
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" width="16" height="16">
421
+ <circle cx="11" cy="11" r="7" />
422
+ <path d="M8 11h6M11 8v6M21 21l-4.3-4.3" />
423
+ </svg>
424
+ </ToolbarBtn>
425
+ <span className="mx-2 h-5 w-px bg-white/15" />
426
+ <ToolbarBtn onClick={resetView} title="Fit (0)">
427
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" width="16" height="16">
428
+ <path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5" />
429
+ </svg>
430
+ </ToolbarBtn>
431
+ <ToolbarBtn onClick={toggle1x} title="100% (Space)">
432
+ <span className="font-mono text-[11px] font-medium">1:1</span>
433
+ </ToolbarBtn>
434
+ </div>
435
+ )}
167
436
  </div>
168
437
  )
169
438
  }
439
+
440
+ function ToolbarBtn({
441
+ children,
442
+ onClick,
443
+ title,
444
+ }: {
445
+ children: React.ReactNode
446
+ onClick: () => void
447
+ title: string
448
+ }) {
449
+ return (
450
+ <button
451
+ type="button"
452
+ onClick={onClick}
453
+ title={title}
454
+ aria-label={title}
455
+ className="inline-flex size-8 items-center justify-center rounded-md text-white/80 transition-colors hover:bg-white/10 hover:text-white"
456
+ >
457
+ {children}
458
+ </button>
459
+ )
460
+ }