lcms-pdf-annotation 1.0.2 → 1.0.3

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 CHANGED
@@ -258,13 +258,107 @@ function Toolbar() {
258
258
  | `color` | `string` | Current pen / shape color |
259
259
  | `highlighterColor` | `string` | Current highlighter color |
260
260
  | `lineWidths` | `{ PEN: number, HIGHLIGHTER: number, ERASER: number }` | Line widths per tool type |
261
- | `boards` | `Array<{ id, shapes, page, rotation }>` | All board data |
261
+ | `boards` | `Array<{ id, shapes, page, rotation, zoom }>` | All board data (zoom defaults to 1) |
262
262
  | `currentBoardIndex` | `number` | Index of the currently active board |
263
263
  | `history` | `historyItem[]` | Undo/redo history stack |
264
264
  | `undoIndex` | `number` | Current position in the history stack |
265
265
 
266
266
  ---
267
267
 
268
+ ### Zoom (Page Scale)
269
+
270
+ Each board has an independent zoom level (default `1.0`, range `0.1–5`).
271
+
272
+ ```tsx
273
+ import {
274
+ zoomIn,
275
+ zoomOut,
276
+ setZoom,
277
+ resetZoom,
278
+ getZoom,
279
+ getBoardZoom,
280
+ } from 'crystal-draw';
281
+
282
+ // Zoom in/out by a step (default step = 0.1). Returns the new zoom level.
283
+ const z1 = zoomIn(); // 1.0 → 1.1
284
+ const z2 = zoomOut(0.25); // 1.1 → 0.85
285
+
286
+ // Set an exact zoom level (clamped to [0.1, 5])
287
+ setZoom(1.5); // 150 %
288
+ setZoom(0.5); // 50 %
289
+
290
+ // Reset zoom to 100 %
291
+ resetZoom();
292
+
293
+ // Read the current zoom level
294
+ const zoom = getZoom(); // e.g. 1.5
295
+ const zoom2 = getBoardZoom(2); // zoom of board at index 2
296
+
297
+ // All functions accept an optional boardIndex (defaults to currentBoardIndex)
298
+ zoomIn(0.1, 0); // zoom board 0 in by 0.1
299
+ zoomOut(0.2, 1); // zoom board 1 out by 0.2
300
+ setZoom(2, 0); // set board 0 to 200 %
301
+ resetZoom(1); // reset board 1
302
+ ```
303
+
304
+ #### Via `ref` (imperative API)
305
+
306
+ ```tsx
307
+ import CrystalDraw, { CrystalDrawRef } from 'crystal-draw';
308
+ import { useRef, useState } from 'react';
309
+
310
+ function App() {
311
+ const boardRef = useRef<CrystalDrawRef>(null);
312
+ const [zoom, setCurrentZoom] = useState(1);
313
+
314
+ return (
315
+ <>
316
+ <button onClick={() => { const z = boardRef.current?.zoomIn(); if (z != null) setCurrentZoom(z); }}>
317
+ Zoom In
318
+ </button>
319
+ <button onClick={() => { const z = boardRef.current?.zoomOut(); if (z != null) setCurrentZoom(z); }}>
320
+ Zoom Out
321
+ </button>
322
+ <button onClick={() => { boardRef.current?.resetZoom(); setCurrentZoom(1); }}>
323
+ Reset
324
+ </button>
325
+ <span>{Math.round(zoom * 100)}%</span>
326
+
327
+ <div style={{ width: '100vw', height: '100vh' }}>
328
+ <CrystalDraw ref={boardRef} onZoomChange={(z) => setCurrentZoom(z)} />
329
+ </div>
330
+ </>
331
+ );
332
+ }
333
+ ```
334
+
335
+ #### Via `getZoomCallbacks` prop
336
+
337
+ ```tsx
338
+ import CrystalDraw, { ZoomCallbacks } from 'crystal-draw';
339
+
340
+ function App() {
341
+ let controls: ZoomCallbacks | null = null;
342
+
343
+ return (
344
+ <>
345
+ <button onClick={() => controls?.zoomIn()}>+</button>
346
+ <button onClick={() => controls?.zoomOut()}>-</button>
347
+ <div style={{ width: '100vw', height: '100vh' }}>
348
+ <CrystalDraw
349
+ onZoomChange={(zoom, boardIndex) =>
350
+ console.log(`Board ${boardIndex} zoom: ${zoom}`)
351
+ }
352
+ getZoomCallbacks={(cb) => { controls = cb; }}
353
+ />
354
+ </div>
355
+ </>
356
+ );
357
+ }
358
+ ```
359
+
360
+ ---
361
+
268
362
  ## Full Example — Custom Toolbar
269
363
 
270
364
  ```tsx
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { BoardItem, internalState, LineElement, Point, RotationDirection, ToolTypes } from './interface.js';
1
+ import { BoardItem, CrystalDrawProps, CrystalDrawRef, internalState, LineElement, Point, RotationDirection, ToolTypes, ZoomAction, ZoomCallbacks } from './interface.js';
2
2
  import './index.css';
3
3
  export declare const useBoundStore: import("zustand").UseBoundStore<import("zustand").StoreApi<internalState>>;
4
4
  export declare const setTool: (tool: ToolTypes) => void;
@@ -20,9 +20,18 @@ export declare const rotateClockwise: (boardIndex?: number) => Promise<void>;
20
20
  export declare const rotateAntiClockwise: (boardIndex?: number) => Promise<void>;
21
21
  export declare const rotateCounterClockwise: (boardIndex?: number) => Promise<void>;
22
22
  export declare const getBoardRotation: (boardIndex?: number) => number;
23
- export type { BoardItem, internalState, LineElement, Point, RotationDirection, ToolTypes };
24
- declare const CrystalDraw: ({ className, style }: {
25
- className?: string;
26
- style?: React.CSSProperties;
27
- }) => import("react").JSX.Element | null;
23
+ /** Zoom in the current (or specified) board by `step` (default 0.1). Returns the new zoom level. */
24
+ export declare const zoomIn: (step?: number, boardIndex?: number) => number;
25
+ /** Zoom out the current (or specified) board by `step` (default 0.1). Returns the new zoom level. */
26
+ export declare const zoomOut: (step?: number, boardIndex?: number) => number;
27
+ /** Set an exact zoom value (clamped to [0.1, 5]) for the current (or specified) board. Returns the clamped value. */
28
+ export declare const setZoom: (zoom: number, boardIndex?: number) => number;
29
+ /** Reset zoom to 1 for the current (or specified) board. Returns 1. */
30
+ export declare const resetZoom: (boardIndex?: number) => number;
31
+ /** Get the current zoom level for the current (or specified) board. */
32
+ export declare const getZoom: (boardIndex?: number) => number;
33
+ /** Alias for getZoom — returns the zoom level for the specified board. */
34
+ export declare const getBoardZoom: (boardIndex?: number) => number;
35
+ export type { BoardItem, CrystalDrawProps, CrystalDrawRef, internalState, LineElement, Point, RotationDirection, ToolTypes, ZoomAction, ZoomCallbacks, };
36
+ declare const CrystalDraw: import("react").ForwardRefExoticComponent<CrystalDrawProps & import("react").RefAttributes<CrystalDrawRef>>;
28
37
  export default CrystalDraw;
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { forwardRef, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
3
3
  import { create } from 'zustand';
4
4
  import debounce from 'lodash/debounce.js';
5
5
  import { COLORS, LINEWIDTH, TOOLS, TOOLS_CLASSES } from './constants.js';
@@ -11,7 +11,8 @@ const initialBoardState = {
11
11
  shapes: [],
12
12
  page: null,
13
13
  initialPage: null,
14
- rotation: 0
14
+ rotation: 0,
15
+ zoom: 1
15
16
  };
16
17
  export const useBoundStore = create()((set, get) => ({
17
18
  tool: TOOLS.PEN,
@@ -36,7 +37,8 @@ export const useBoundStore = create()((set, get) => ({
36
37
  shapes: [],
37
38
  page: null,
38
39
  initialPage: null,
39
- rotation: 0
40
+ rotation: 0,
41
+ zoom: 1
40
42
  });
41
43
  return { boards, currentBoardIndex: newBoardIndex };
42
44
  });
@@ -128,6 +130,73 @@ export const useBoundStore = create()((set, get) => ({
128
130
  rotateAntiClockwise: async (boardIndex) => {
129
131
  await get().rotateBoard('anti-clockwise', boardIndex);
130
132
  },
133
+ zoomIn: (step = 0.1, boardIndex) => {
134
+ const state = get();
135
+ const idx = typeof boardIndex !== 'undefined' ? boardIndex : state.currentBoardIndex;
136
+ const board = state.boards[idx];
137
+ if (!board)
138
+ return 1;
139
+ const newZoom = Math.min(5, +(((board.zoom ?? 1) + step)).toFixed(4));
140
+ set((s) => {
141
+ const boards = [...s.boards];
142
+ if (!boards[idx])
143
+ return {};
144
+ boards[idx] = { ...boards[idx], zoom: newZoom };
145
+ return { boards };
146
+ });
147
+ return newZoom;
148
+ },
149
+ zoomOut: (step = 0.1, boardIndex) => {
150
+ const state = get();
151
+ const idx = typeof boardIndex !== 'undefined' ? boardIndex : state.currentBoardIndex;
152
+ const board = state.boards[idx];
153
+ if (!board)
154
+ return 1;
155
+ const newZoom = Math.max(0.1, +(((board.zoom ?? 1) - step)).toFixed(4));
156
+ set((s) => {
157
+ const boards = [...s.boards];
158
+ if (!boards[idx])
159
+ return {};
160
+ boards[idx] = { ...boards[idx], zoom: newZoom };
161
+ return { boards };
162
+ });
163
+ return newZoom;
164
+ },
165
+ setZoom: (zoom, boardIndex) => {
166
+ const state = get();
167
+ const idx = typeof boardIndex !== 'undefined' ? boardIndex : state.currentBoardIndex;
168
+ const clamped = Math.min(5, Math.max(0.1, zoom));
169
+ set((s) => {
170
+ const boards = [...s.boards];
171
+ if (!boards[idx])
172
+ return {};
173
+ boards[idx] = { ...boards[idx], zoom: clamped };
174
+ return { boards };
175
+ });
176
+ return clamped;
177
+ },
178
+ resetZoom: (boardIndex) => {
179
+ const state = get();
180
+ const idx = typeof boardIndex !== 'undefined' ? boardIndex : state.currentBoardIndex;
181
+ set((s) => {
182
+ const boards = [...s.boards];
183
+ if (!boards[idx])
184
+ return {};
185
+ boards[idx] = { ...boards[idx], zoom: 1 };
186
+ return { boards };
187
+ });
188
+ return 1;
189
+ },
190
+ getZoom: (boardIndex) => {
191
+ const state = get();
192
+ const idx = typeof boardIndex !== 'undefined' ? boardIndex : state.currentBoardIndex;
193
+ return state.boards[idx]?.zoom ?? 1;
194
+ },
195
+ getBoardZoom: (boardIndex) => {
196
+ const state = get();
197
+ const idx = typeof boardIndex !== 'undefined' ? boardIndex : state.currentBoardIndex;
198
+ return state.boards[idx]?.zoom ?? 1;
199
+ },
131
200
  setTool: (tool) => set({ tool }),
132
201
  setColor: (color) => set({ color }),
133
202
  setCurrentBoardIndex: (currentBoardIndex) => set({ currentBoardIndex }),
@@ -261,6 +330,7 @@ export const useBoundStore = create()((set, get) => ({
261
330
  page: page.dataUrl, // base64 data URL — already in memory, no network needed
262
331
  initialPage: page.dataUrl,
263
332
  rotation: 0,
333
+ zoom: 1,
264
334
  setCurrentBoardIndex: index
265
335
  }));
266
336
  let boards = [...state.boards];
@@ -352,6 +422,7 @@ const InternalBoard = ({ boardIndex }) => {
352
422
  const updateShape = useBoundStore((state) => state.updateShape);
353
423
  const shapes = useBoundStore((state) => state.boards?.[CurrentBoard]?.shapes);
354
424
  const page = useBoundStore((state) => state.boards?.[CurrentBoard]?.page);
425
+ const zoom = useBoundStore((state) => state.boards?.[CurrentBoard]?.zoom ?? 1);
355
426
  const setupCanvasRef = useRef(() => null);
356
427
  const canvasRef = useRef(null);
357
428
  const backgroundDivRef = useRef(null);
@@ -895,42 +966,48 @@ const InternalBoard = ({ boardIndex }) => {
895
966
  };
896
967
  }
897
968
  }, [handleMouseDown, handleMouseMove, handleMouseUp, handleDoubleClick]);
898
- return (_jsxs("div", { className: "relative overflow-hidden", id: `crystal-board-container-${CurrentBoard}`, style: { minHeight: "100%", width: "100%", backgroundColor: 'white' }, children: [_jsx("div", { ref: backgroundDivRef, className: "flex w-full h-full flex-col z-0", style: page ? { backgroundImage: `url(${page})`, backgroundSize: 'contain', backgroundPosition: 'center', backgroundRepeat: 'no-repeat' } : {} }), _jsx("canvas", { ref: canvasRef, className: "absolute h-full w-full left-0 top-0 z-10 bg-transparent" }), _jsxs("div", { ref: textInputRef, className: 'absolute z-20 gap-1', style: { display: 'none' }, children: [_jsxs("div", { className: "flex bg-white text-black shadow-md rounded border border-gray-200 p-1 gap-2 items-center mb-1 w-max", children: [_jsx("div", { className: "cursor-move p-1 hover:bg-gray-100 rounded text-gray-500", onMouseDown: handleTextInputMouseDown, children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "9", cy: "12", r: "1" }), _jsx("circle", { cx: "9", cy: "5", r: "1" }), _jsx("circle", { cx: "9", cy: "19", r: "1" }), _jsx("circle", { cx: "15", cy: "12", r: "1" }), _jsx("circle", { cx: "15", cy: "5", r: "1" }), _jsx("circle", { cx: "15", cy: "19", r: "1" })] }) }), _jsxs("select", { value: fontFamily, onChange: (e) => {
899
- setFontFamily(e.target.value);
900
- if (textInputRef.current)
901
- textInputRef.current.style.fontFamily = e.target.value;
902
- }, className: "text-sm outline-none bg-transparent cursor-pointer", children: [_jsx("option", { value: "Arial", children: "Arial" }), _jsx("option", { value: "Times New Roman", children: "Times" }), _jsx("option", { value: "Courier New", children: "Courier" }), _jsx("option", { value: "Verdana", children: "Verdana" })] }), _jsx("select", { value: fontSize, onChange: (e) => {
903
- setFontSize(e.target.value);
904
- if (textInputRef.current)
905
- textInputRef.current.style.fontSize = `${e.target.value}px`;
906
- }, className: "text-sm outline-none bg-transparent cursor-pointer", children: [12, 16, 20, 24, 28, 32, 40, 48].map(size => (_jsxs("option", { value: size, children: [size, "px"] }, size))) }), _jsx("button", { className: "p-1 rounded cursor-pointer hover:bg-gray-100 flex items-center justify-center text-green-600 outline-none", onClick: submitText, onDoubleClick: submitText, onKeyDown: (e) => {
907
- if (e.key === 'Enter') {
908
- submitText();
909
- }
910
- }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }) })] }), _jsx("div", { ref: editableDivRef, contentEditable: true, suppressContentEditableWarning: true, className: "outline-none max-w-[400px] whitespace-pre-wrap overflow-x-clip min-w-[50px] border border-dashed border-gray-400 bg-transparent px-1 py-0.5", onBeforeInput: (e) => {
911
- const currentText = editableDivRef.current?.innerText || '';
912
- const nativeEvent = e.nativeEvent;
913
- const incomingText = nativeEvent.data || '';
914
- if (currentText.length + incomingText.length > 200) {
969
+ return (_jsx("div", { className: "relative overflow-hidden", id: `crystal-board-container-${CurrentBoard}`, style: { minHeight: "100%", width: "100%", backgroundColor: 'white' }, children: _jsxs("div", { style: {
970
+ width: '100%',
971
+ height: '100%',
972
+ transform: `scale(${zoom})`,
973
+ transformOrigin: 'top left',
974
+ position: 'relative',
975
+ }, children: [_jsx("div", { ref: backgroundDivRef, className: "flex w-full h-full flex-col z-0", style: page ? { backgroundImage: `url(${page})`, backgroundSize: 'contain', backgroundPosition: 'center', backgroundRepeat: 'no-repeat' } : {} }), _jsx("canvas", { ref: canvasRef, className: "absolute h-full w-full left-0 top-0 z-10 bg-transparent" }), _jsxs("div", { ref: textInputRef, className: 'absolute z-20 gap-1', style: { display: 'none' }, children: [_jsxs("div", { className: "flex bg-white text-black shadow-md rounded border border-gray-200 p-1 gap-2 items-center mb-1 w-max", children: [_jsx("div", { className: "cursor-move p-1 hover:bg-gray-100 rounded text-gray-500", onMouseDown: handleTextInputMouseDown, children: _jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "9", cy: "12", r: "1" }), _jsx("circle", { cx: "9", cy: "5", r: "1" }), _jsx("circle", { cx: "9", cy: "19", r: "1" }), _jsx("circle", { cx: "15", cy: "12", r: "1" }), _jsx("circle", { cx: "15", cy: "5", r: "1" }), _jsx("circle", { cx: "15", cy: "19", r: "1" })] }) }), _jsxs("select", { value: fontFamily, onChange: (e) => {
976
+ setFontFamily(e.target.value);
977
+ if (textInputRef.current)
978
+ textInputRef.current.style.fontFamily = e.target.value;
979
+ }, className: "text-sm outline-none bg-transparent cursor-pointer", children: [_jsx("option", { value: "Arial", children: "Arial" }), _jsx("option", { value: "Times New Roman", children: "Times" }), _jsx("option", { value: "Courier New", children: "Courier" }), _jsx("option", { value: "Verdana", children: "Verdana" })] }), _jsx("select", { value: fontSize, onChange: (e) => {
980
+ setFontSize(e.target.value);
981
+ if (textInputRef.current)
982
+ textInputRef.current.style.fontSize = `${e.target.value}px`;
983
+ }, className: "text-sm outline-none bg-transparent cursor-pointer", children: [12, 16, 20, 24, 28, 32, 40, 48].map(size => (_jsxs("option", { value: size, children: [size, "px"] }, size))) }), _jsx("button", { className: "p-1 rounded cursor-pointer hover:bg-gray-100 flex items-center justify-center text-green-600 outline-none", onClick: submitText, onDoubleClick: submitText, onKeyDown: (e) => {
984
+ if (e.key === 'Enter') {
985
+ submitText();
986
+ }
987
+ }, children: _jsx("svg", { xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) }) })] }), _jsx("div", { ref: editableDivRef, contentEditable: true, suppressContentEditableWarning: true, className: "outline-none max-w-[400px] whitespace-pre-wrap overflow-x-clip min-w-[50px] border border-dashed border-gray-400 bg-transparent px-1 py-0.5", onBeforeInput: (e) => {
988
+ const currentText = editableDivRef.current?.innerText || '';
989
+ const nativeEvent = e.nativeEvent;
990
+ const incomingText = nativeEvent.data || '';
991
+ if (currentText.length + incomingText.length > 200) {
992
+ e.preventDefault();
993
+ }
994
+ }, onPaste: (e) => {
915
995
  e.preventDefault();
916
- }
917
- }, onPaste: (e) => {
918
- e.preventDefault();
919
- const pastedText = e.clipboardData.getData('text/plain');
920
- const currentText = editableDivRef.current?.innerText || '';
921
- const remaining = 200 - currentText.length;
922
- if (remaining <= 0)
923
- return;
924
- const trimmedPaste = pastedText.slice(0, remaining);
925
- document.execCommand('insertText', false, trimmedPaste);
926
- }, onInput: (e) => setText(e.currentTarget.innerText || '') }), _jsxs("div", { className: "text-xs mt-0.5 px-1", style: { color: text.length >= 200 ? '#ef4444' : '#9ca3af' }, children: [text.length, "/200"] })] }), _jsx("div", { ref: laserRef, className: "pointer-events-none absolute z-20" }), selectedShape && editingIndex === null && (_jsxs("button", { className: "absolute z-30 bg-blue-500 text-white px-3 py-2 rounded-full text-xs font-semibold shadow-lg hover:bg-blue-600 flex items-center gap-1 cursor-pointer", style: {
927
- left: `${calculateBoundingBox(selectedShape, canvasRef.current).maxX * canvasRef.current.width}px`,
928
- top: `${calculateBoundingBox(selectedShape, canvasRef.current).minY * canvasRef.current.height - 10}px`,
929
- transform: 'translate(-100%, -100%)'
930
- }, id: 'text-edit', onClick: (e) => {
931
- e.stopPropagation();
932
- handleEditButtonClick();
933
- }, children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), _jsx("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })] }), "Edit"] }))] }));
996
+ const pastedText = e.clipboardData.getData('text/plain');
997
+ const currentText = editableDivRef.current?.innerText || '';
998
+ const remaining = 200 - currentText.length;
999
+ if (remaining <= 0)
1000
+ return;
1001
+ const trimmedPaste = pastedText.slice(0, remaining);
1002
+ document.execCommand('insertText', false, trimmedPaste);
1003
+ }, onInput: (e) => setText(e.currentTarget.innerText || '') }), _jsxs("div", { className: "text-xs mt-0.5 px-1", style: { color: text.length >= 200 ? '#ef4444' : '#9ca3af' }, children: [text.length, "/200"] })] }), _jsx("div", { ref: laserRef, className: "pointer-events-none absolute z-20" }), selectedShape && editingIndex === null && (_jsxs("button", { className: "absolute z-30 bg-blue-500 text-white px-3 py-2 rounded-full text-xs font-semibold shadow-lg hover:bg-blue-600 flex items-center gap-1 cursor-pointer", style: {
1004
+ left: `${calculateBoundingBox(selectedShape, canvasRef.current).maxX * canvasRef.current.width}px`,
1005
+ top: `${calculateBoundingBox(selectedShape, canvasRef.current).minY * canvasRef.current.height - 10}px`,
1006
+ transform: 'translate(-100%, -100%)'
1007
+ }, id: 'text-edit', onClick: (e) => {
1008
+ e.stopPropagation();
1009
+ handleEditButtonClick();
1010
+ }, children: [_jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" }), _jsx("path", { d: "M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z" })] }), "Edit"] }))] }) }));
934
1011
  };
935
1012
  const Board = memo(InternalBoard);
936
1013
  export const setTool = (tool) => useBoundStore.getState().setTool(tool);
@@ -956,14 +1033,67 @@ export const getBoardRotation = (boardIndex) => {
956
1033
  const index = typeof boardIndex !== 'undefined' ? boardIndex : state.currentBoardIndex;
957
1034
  return state.boards[index]?.rotation || 0;
958
1035
  };
959
- const CrystalDraw = ({ className, style }) => {
1036
+ // ─── Zoom exports ────────────────────────────────────────────────────────────
1037
+ /** Zoom in the current (or specified) board by `step` (default 0.1). Returns the new zoom level. */
1038
+ export const zoomIn = (step, boardIndex) => useBoundStore.getState().zoomIn(step, boardIndex);
1039
+ /** Zoom out the current (or specified) board by `step` (default 0.1). Returns the new zoom level. */
1040
+ export const zoomOut = (step, boardIndex) => useBoundStore.getState().zoomOut(step, boardIndex);
1041
+ /** Set an exact zoom value (clamped to [0.1, 5]) for the current (or specified) board. Returns the clamped value. */
1042
+ export const setZoom = (zoom, boardIndex) => useBoundStore.getState().setZoom(zoom, boardIndex);
1043
+ /** Reset zoom to 1 for the current (or specified) board. Returns 1. */
1044
+ export const resetZoom = (boardIndex) => useBoundStore.getState().resetZoom(boardIndex);
1045
+ /** Get the current zoom level for the current (or specified) board. */
1046
+ export const getZoom = (boardIndex) => useBoundStore.getState().getZoom(boardIndex);
1047
+ /** Alias for getZoom — returns the zoom level for the specified board. */
1048
+ export const getBoardZoom = (boardIndex) => useBoundStore.getState().getBoardZoom(boardIndex);
1049
+ // ─── CrystalDraw Component ───────────────────────────────────────────────────
1050
+ const CrystalDrawInner = ({ className, style, onZoomChange, getZoomCallbacks }, ref) => {
960
1051
  const boards = useBoundStore((state) => state.boards);
961
1052
  const tool = useBoundStore((state) => state.tool);
962
1053
  const generatePDF = useBoundStore((state) => state.generatePdf);
1054
+ const currentBoardIndex = useBoundStore((state) => state.currentBoardIndex);
1055
+ const currentZoom = useBoundStore((state) => state.boards?.[state.currentBoardIndex]?.zoom ?? 1);
1056
+ // Notify consumer whenever current board's zoom changes
1057
+ useEffect(() => {
1058
+ onZoomChange?.(currentZoom, currentBoardIndex);
1059
+ }, [currentZoom, currentBoardIndex, onZoomChange]);
1060
+ // Build zoom (and full board control) callbacks once and hand them to the consumer
1061
+ const zoomCallbacks = useMemo(() => ({
1062
+ zoomIn: (step, boardIndex) => useBoundStore.getState().zoomIn(step, boardIndex),
1063
+ zoomOut: (step, boardIndex) => useBoundStore.getState().zoomOut(step, boardIndex),
1064
+ setZoom: (zoom, boardIndex) => useBoundStore.getState().setZoom(zoom, boardIndex),
1065
+ resetZoom: (boardIndex) => useBoundStore.getState().resetZoom(boardIndex),
1066
+ getZoom: (boardIndex) => useBoundStore.getState().getZoom(boardIndex),
1067
+ getBoardZoom: (boardIndex) => useBoundStore.getState().getBoardZoom(boardIndex),
1068
+ }), []);
1069
+ useEffect(() => {
1070
+ getZoomCallbacks?.(zoomCallbacks);
1071
+ }, [getZoomCallbacks, zoomCallbacks]);
1072
+ // Expose all controls via ref
1073
+ useImperativeHandle(ref, () => ({
1074
+ ...zoomCallbacks,
1075
+ rotateClockwise: (boardIndex) => useBoundStore.getState().rotateClockwise(boardIndex),
1076
+ rotateAntiClockwise: (boardIndex) => useBoundStore.getState().rotateAntiClockwise(boardIndex),
1077
+ rotateBoard: (direction, boardIndex) => useBoundStore.getState().rotateBoard(direction, boardIndex),
1078
+ getBoardRotation: (boardIndex) => {
1079
+ const state = useBoundStore.getState();
1080
+ const idx = typeof boardIndex !== 'undefined' ? boardIndex : state.currentBoardIndex;
1081
+ return state.boards[idx]?.rotation || 0;
1082
+ },
1083
+ undo: () => useBoundStore.getState().undo(),
1084
+ redo: () => useBoundStore.getState().redo(),
1085
+ clearBoard: (boardId) => useBoundStore.getState().clearBoard(boardId),
1086
+ addBoard: () => useBoundStore.getState().addBoard(),
1087
+ removeBoard: (boardId) => useBoundStore.getState().removeBoard(boardId),
1088
+ setTool: (tool) => useBoundStore.getState().setTool(tool),
1089
+ setColor: (color) => useBoundStore.getState().setColor(color),
1090
+ setCurrentBoardIndex: (idx) => useBoundStore.getState().setCurrentBoardIndex(idx),
1091
+ }), [zoomCallbacks]);
963
1092
  if (boards.length > 0) {
964
1093
  return (_jsx(_Fragment, { children: _jsx("div", { className: `${TOOLS_CLASSES[tool]} ${className || ''}`, style: style, id: "crystal--draw-container", children: generatePDF ? (boards.map((board, index) => _jsx(Board, { boardIndex: index }, board.id))) : (_jsx(Board, {})) }) }));
965
1094
  }
966
1095
  return null;
967
1096
  };
1097
+ const CrystalDraw = forwardRef(CrystalDrawInner);
968
1098
  export default CrystalDraw;
969
1099
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
@@ -6,8 +6,38 @@ export interface BoardItem {
6
6
  page: any;
7
7
  initialPage?: any;
8
8
  rotation?: number;
9
+ zoom?: number;
9
10
  setCurrentBoardIndex?: number;
10
11
  }
12
+ export type ZoomAction = 'in' | 'out' | 'reset';
13
+ export interface ZoomCallbacks {
14
+ zoomIn: (step?: number, boardIndex?: number) => number;
15
+ zoomOut: (step?: number, boardIndex?: number) => number;
16
+ setZoom: (zoom: number, boardIndex?: number) => number;
17
+ resetZoom: (boardIndex?: number) => number;
18
+ getZoom: (boardIndex?: number) => number;
19
+ getBoardZoom: (boardIndex?: number) => number;
20
+ }
21
+ export interface CrystalDrawProps {
22
+ className?: string;
23
+ style?: React.CSSProperties;
24
+ onZoomChange?: (zoom: number, boardIndex: number) => void;
25
+ getZoomCallbacks?: (callbacks: ZoomCallbacks) => void;
26
+ }
27
+ export interface CrystalDrawRef extends ZoomCallbacks {
28
+ rotateClockwise: (boardIndex?: number) => Promise<void>;
29
+ rotateAntiClockwise: (boardIndex?: number) => Promise<void>;
30
+ rotateBoard: (direction?: RotationDirection, boardIndex?: number) => Promise<void>;
31
+ getBoardRotation: (boardIndex?: number) => number;
32
+ undo: VoidFunction;
33
+ redo: VoidFunction;
34
+ clearBoard: (boardId: number) => void;
35
+ addBoard: () => void;
36
+ removeBoard: (boardId: number) => void;
37
+ setTool: (tool: ToolTypes) => void;
38
+ setColor: (color: string) => void;
39
+ setCurrentBoardIndex: (currentBoardIndex: number) => void;
40
+ }
11
41
  export interface internalState {
12
42
  tool: ToolTypes;
13
43
  color: string;
@@ -28,6 +58,12 @@ export interface internalState {
28
58
  rotateBoard: (direction?: RotationDirection, boardIndex?: number) => Promise<void>;
29
59
  rotateClockwise: (boardIndex?: number) => Promise<void>;
30
60
  rotateAntiClockwise: (boardIndex?: number) => Promise<void>;
61
+ zoomIn: (step?: number, boardIndex?: number) => number;
62
+ zoomOut: (step?: number, boardIndex?: number) => number;
63
+ setZoom: (zoom: number, boardIndex?: number) => number;
64
+ resetZoom: (boardIndex?: number) => number;
65
+ getZoom: (boardIndex?: number) => number;
66
+ getBoardZoom: (boardIndex?: number) => number;
31
67
  setTool: (tool: ToolTypes) => void;
32
68
  setColor: (color: string) => void;
33
69
  setCurrentBoardIndex: (currentBoardIndex: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lcms-pdf-annotation",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [