@markup-canvas/react 1.0.8 → 1.0.9

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,2 @@
1
1
  export { useMarkupCanvas } from "./useMarkupCanvas.js";
2
+ export { useMarkupCanvasWindow } from "./useMarkupCanvasWindow.js";
@@ -0,0 +1,43 @@
1
+ import type { MarkupCanvas, Transform } from "@markup-canvas/core";
2
+ import type { UseMarkupCanvasOptions } from "../types/index.js";
3
+ interface UseMarkupCanvasWindowOptions extends UseMarkupCanvasOptions {
4
+ canvasName?: string;
5
+ onCanvasReady?: (canvas: MarkupCanvas) => void;
6
+ onCanvasUnavailable?: () => void;
7
+ }
8
+ export declare function useMarkupCanvasWindow(options?: UseMarkupCanvasWindowOptions): {
9
+ canvas: MarkupCanvas | null;
10
+ transform: Transform;
11
+ zoom: number;
12
+ pan: {
13
+ x: number;
14
+ y: number;
15
+ };
16
+ isReady: boolean;
17
+ zoomIn: (factor?: number) => void;
18
+ zoomOut: (factor?: number) => void;
19
+ resetZoom: () => void;
20
+ panLeft: (distance?: number) => void;
21
+ panRight: (distance?: number) => void;
22
+ panUp: (distance?: number) => void;
23
+ panDown: (distance?: number) => void;
24
+ fitToContent: () => void;
25
+ centerContent: () => void;
26
+ resetView: () => void;
27
+ setTransitionMode: (enabled: boolean) => void;
28
+ toggleTransitionMode: () => boolean;
29
+ themeMode: "light" | "dark";
30
+ updateThemeMode: (mode: "light" | "dark") => void;
31
+ toggleThemeMode: () => "light" | "dark";
32
+ toggleRulers: () => void;
33
+ showRulers: () => void;
34
+ hideRulers: () => void;
35
+ areRulersVisible: () => boolean;
36
+ showRulersState: boolean;
37
+ toggleGrid: () => void;
38
+ showGrid: () => void;
39
+ hideGrid: () => void;
40
+ isGridVisible: () => boolean;
41
+ showGridState: boolean;
42
+ };
43
+ export {};
package/dist/index.cjs.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Markup Canvas React
3
3
  * React components and hooks for markup-canvas
4
- * @version 1.0.8
4
+ * @version 1.0.9
5
5
  */
6
6
  'use strict';
7
7
 
@@ -94,7 +94,7 @@ const MarkupCanvas = react.forwardRef(({ children, className, style, onTransform
94
94
  MarkupCanvas.displayName = "MarkupCanvas";
95
95
 
96
96
  function useMarkupCanvas(canvasRef, options = {}) {
97
- const [canvasInstance, setCanvasInstance] = react.useState(null);
97
+ const [instance, setInstance] = react.useState(null);
98
98
  const [transform, setTransform] = react.useState({ scale: 1, translateX: 0, translateY: 0 });
99
99
  const [zoom, setZoom] = react.useState(1);
100
100
  const [pan, setPan] = react.useState({ x: 0, y: 0 });
@@ -103,7 +103,7 @@ function useMarkupCanvas(canvasRef, options = {}) {
103
103
  const optionsRef = react.useRef(options);
104
104
  optionsRef.current = options;
105
105
  const handleCanvasInstance = react.useCallback((canvas) => {
106
- setCanvasInstance(canvas);
106
+ setInstance(canvas);
107
107
  optionsRef.current.onReady?.(canvas);
108
108
  }, []);
109
109
  const handleTransform = react.useCallback((newTransform) => {
@@ -123,30 +123,30 @@ function useMarkupCanvas(canvasRef, options = {}) {
123
123
  optionsRef.current.onReady?.(canvas);
124
124
  }, []);
125
125
  react.useEffect(() => {
126
- console.log("useEffect", canvasInstance);
127
- if (!canvasInstance) {
126
+ console.log("useEffect", instance);
127
+ if (!instance) {
128
128
  return;
129
129
  }
130
- canvasInstance.on("transform", handleTransform);
131
- canvasInstance.on("zoom", handleZoom);
132
- canvasInstance.on("pan", handlePan);
133
- canvasInstance.on("ready", handleReady);
134
- if (canvasInstance.transform) {
135
- setTransform(canvasInstance.transform);
136
- setZoom(canvasInstance.transform.scale);
137
- setPan({ x: canvasInstance.transform.translateX, y: canvasInstance.transform.translateY });
130
+ instance.on("transform", handleTransform);
131
+ instance.on("zoom", handleZoom);
132
+ instance.on("pan", handlePan);
133
+ instance.on("ready", handleReady);
134
+ if (instance.transform) {
135
+ setTransform(instance.transform);
136
+ setZoom(instance.transform.scale);
137
+ setPan({ x: instance.transform.translateX, y: instance.transform.translateY });
138
138
  }
139
- if (canvasInstance.isReady) {
139
+ if (instance.isReady) {
140
140
  setIsReady(true);
141
- optionsRef.current.onReady?.(canvasInstance);
141
+ optionsRef.current.onReady?.(instance);
142
142
  }
143
143
  return () => {
144
- canvasInstance.off("transform", handleTransform);
145
- canvasInstance.off("zoom", handleZoom);
146
- canvasInstance.off("pan", handlePan);
147
- canvasInstance.off("ready", handleReady);
144
+ instance.off("transform", handleTransform);
145
+ instance.off("zoom", handleZoom);
146
+ instance.off("pan", handlePan);
147
+ instance.off("ready", handleReady);
148
148
  };
149
- }, [canvasInstance]);
149
+ }, [instance, handleTransform, handleZoom, handlePan, handleReady]);
150
150
  const zoomIn = react.useCallback((factor = 0.5) => {
151
151
  canvasRef.current?.zoomIn(factor);
152
152
  }, [canvasRef]);
@@ -225,6 +225,235 @@ function useMarkupCanvas(canvasRef, options = {}) {
225
225
  };
226
226
  }
227
227
 
228
+ function useMarkupCanvasWindow(options = {}) {
229
+ const { canvasName = "markupCanvas" } = options;
230
+ const [instance, setInstance] = react.useState(null);
231
+ const [transform, setTransform] = react.useState({ scale: 1, translateX: 0, translateY: 0 });
232
+ const [zoom, setZoom] = react.useState(1);
233
+ const [pan, setPan] = react.useState({ x: 0, y: 0 });
234
+ const [isReady, setIsReady] = react.useState(false);
235
+ const [themeMode, setThemeModeState] = react.useState("light");
236
+ const [showRulersState, setShowRulersState] = react.useState(false);
237
+ const [showGridState, setShowGridState] = react.useState(false);
238
+ const optionsRef = react.useRef(options);
239
+ optionsRef.current = options;
240
+ const handleCanvasInstance = react.useCallback((canvas) => {
241
+ setInstance(canvas);
242
+ optionsRef.current.onReady?.(canvas);
243
+ }, []);
244
+ const handleTransform = react.useCallback((newTransform) => {
245
+ setTransform(newTransform);
246
+ optionsRef.current.onTransformChange?.(newTransform);
247
+ }, []);
248
+ const handleZoom = react.useCallback((newZoom) => {
249
+ setZoom(newZoom);
250
+ optionsRef.current.onZoomChange?.(newZoom);
251
+ }, []);
252
+ const handlePan = react.useCallback((newPan) => {
253
+ setPan(newPan);
254
+ optionsRef.current.onPanChange?.(newPan);
255
+ }, []);
256
+ const handleReady = react.useCallback((canvas) => {
257
+ setIsReady(true);
258
+ optionsRef.current.onReady?.(canvas);
259
+ }, []);
260
+ // Get instance from window binding
261
+ react.useEffect(() => {
262
+ if (typeof window === "undefined") {
263
+ optionsRef.current.onCanvasUnavailable?.();
264
+ return;
265
+ }
266
+ const windowInstance = window[canvasName];
267
+ if (windowInstance && typeof windowInstance === "object") {
268
+ handleCanvasInstance(windowInstance);
269
+ optionsRef.current.onCanvasReady?.(windowInstance);
270
+ // Set initial state from instance
271
+ if (windowInstance.transform) {
272
+ setTransform(windowInstance.transform);
273
+ setZoom(windowInstance.transform.scale);
274
+ setPan({ x: windowInstance.transform.translateX, y: windowInstance.transform.translateY });
275
+ }
276
+ if (windowInstance.isReady) {
277
+ setIsReady(true);
278
+ optionsRef.current.onReady?.(windowInstance);
279
+ }
280
+ const config = windowInstance.getConfig();
281
+ setThemeModeState(config.themeMode || "light");
282
+ if (windowInstance.areRulersVisible?.()) {
283
+ setShowRulersState(true);
284
+ }
285
+ if (windowInstance.isGridVisible?.()) {
286
+ setShowGridState(true);
287
+ }
288
+ }
289
+ else {
290
+ optionsRef.current.onCanvasUnavailable?.();
291
+ }
292
+ }, [canvasName, handleCanvasInstance]);
293
+ // Set up event listeners on canvas instance
294
+ react.useEffect(() => {
295
+ if (!instance) {
296
+ return;
297
+ }
298
+ instance.on("transform", handleTransform);
299
+ instance.on("zoom", handleZoom);
300
+ instance.on("pan", handlePan);
301
+ instance.on("ready", handleReady);
302
+ return () => {
303
+ instance.off("transform", handleTransform);
304
+ instance.off("zoom", handleZoom);
305
+ instance.off("pan", handlePan);
306
+ instance.off("ready", handleReady);
307
+ };
308
+ }, [instance, handleTransform, handleZoom, handlePan, handleReady]);
309
+ // Listen to window messages for state updates
310
+ react.useEffect(() => {
311
+ const handleMessage = (event) => {
312
+ if (event.data.source === "markup-canvas" && event.data.canvasName === canvasName) {
313
+ switch (event.data.event) {
314
+ case "transform":
315
+ handleTransform(event.data.data);
316
+ break;
317
+ case "zoom":
318
+ handleZoom(event.data.data);
319
+ break;
320
+ case "pan":
321
+ handlePan(event.data.data);
322
+ break;
323
+ case "ready":
324
+ handleReady(event.data.data);
325
+ break;
326
+ }
327
+ }
328
+ };
329
+ window.addEventListener("message", handleMessage);
330
+ return () => {
331
+ window.removeEventListener("message", handleMessage);
332
+ };
333
+ }, [canvasName, handleTransform, handleZoom, handlePan, handleReady]);
334
+ // Action methods
335
+ const zoomIn = react.useCallback((factor = 0.5) => {
336
+ instance?.zoomIn(factor);
337
+ }, [instance]);
338
+ const zoomOut = react.useCallback((factor = 0.5) => {
339
+ instance?.zoomOut(factor);
340
+ }, [instance]);
341
+ const resetZoom = react.useCallback(() => {
342
+ instance?.resetZoom();
343
+ }, [instance]);
344
+ const panLeft = react.useCallback((distance) => {
345
+ instance?.panLeft(distance);
346
+ }, [instance]);
347
+ const panRight = react.useCallback((distance) => {
348
+ instance?.panRight(distance);
349
+ }, [instance]);
350
+ const panUp = react.useCallback((distance) => {
351
+ instance?.panUp(distance);
352
+ }, [instance]);
353
+ const panDown = react.useCallback((distance) => {
354
+ instance?.panDown(distance);
355
+ }, [instance]);
356
+ const fitToContent = react.useCallback(() => {
357
+ instance?.fitToScreen();
358
+ }, [instance]);
359
+ const centerContent = react.useCallback(() => {
360
+ instance?.centerContent();
361
+ }, [instance]);
362
+ const resetView = react.useCallback(() => {
363
+ instance?.resetView();
364
+ }, [instance]);
365
+ const setTransitionMode = react.useCallback((enabled) => {
366
+ instance?.updateConfig({ enableTransition: enabled });
367
+ }, [instance]);
368
+ const toggleTransitionMode = react.useCallback(() => {
369
+ if (instance) {
370
+ const currentConfig = instance.getConfig();
371
+ const newEnableTransition = !currentConfig.enableTransition;
372
+ instance.updateConfig({ enableTransition: newEnableTransition });
373
+ return newEnableTransition;
374
+ }
375
+ return false;
376
+ }, [instance]);
377
+ const updateThemeMode = react.useCallback((mode) => {
378
+ setThemeModeState(mode);
379
+ instance?.updateThemeMode(mode);
380
+ }, [instance]);
381
+ const toggleThemeMode = react.useCallback(() => {
382
+ const newMode = themeMode === "light" ? "dark" : "light";
383
+ updateThemeMode(newMode);
384
+ return newMode;
385
+ }, [themeMode, updateThemeMode]);
386
+ const showRulers = react.useCallback(() => {
387
+ if (instance?.showRulers?.()) {
388
+ setShowRulersState(true);
389
+ }
390
+ }, [instance]);
391
+ const hideRulers = react.useCallback(() => {
392
+ if (instance?.hideRulers?.()) {
393
+ setShowRulersState(false);
394
+ }
395
+ }, [instance]);
396
+ const toggleRulers = react.useCallback(() => {
397
+ if (instance?.toggleRulers?.()) {
398
+ setShowRulersState((prev) => !prev);
399
+ }
400
+ }, [instance]);
401
+ const areRulersVisible = react.useCallback(() => {
402
+ return instance?.areRulersVisible?.() ?? false;
403
+ }, [instance]);
404
+ const showGrid = react.useCallback(() => {
405
+ if (instance?.showGrid?.()) {
406
+ setShowGridState(true);
407
+ }
408
+ }, [instance]);
409
+ const hideGrid = react.useCallback(() => {
410
+ if (instance?.hideGrid?.()) {
411
+ setShowGridState(false);
412
+ }
413
+ }, [instance]);
414
+ const toggleGrid = react.useCallback(() => {
415
+ if (instance?.toggleGrid?.()) {
416
+ setShowGridState((prev) => !prev);
417
+ }
418
+ }, [instance]);
419
+ const isGridVisible = react.useCallback(() => {
420
+ return instance?.isGridVisible?.() ?? false;
421
+ }, [instance]);
422
+ return {
423
+ canvas: instance,
424
+ transform,
425
+ zoom,
426
+ pan,
427
+ isReady,
428
+ zoomIn,
429
+ zoomOut,
430
+ resetZoom,
431
+ panLeft,
432
+ panRight,
433
+ panUp,
434
+ panDown,
435
+ fitToContent,
436
+ centerContent,
437
+ resetView,
438
+ setTransitionMode,
439
+ toggleTransitionMode,
440
+ themeMode,
441
+ updateThemeMode,
442
+ toggleThemeMode,
443
+ toggleRulers,
444
+ showRulers,
445
+ hideRulers,
446
+ areRulersVisible,
447
+ showRulersState,
448
+ toggleGrid,
449
+ showGrid,
450
+ hideGrid,
451
+ isGridVisible,
452
+ showGridState,
453
+ };
454
+ }
455
+
228
456
  exports.MarkupCanvas = MarkupCanvas;
229
457
  exports.useMarkupCanvas = useMarkupCanvas;
458
+ exports.useMarkupCanvasWindow = useMarkupCanvasWindow;
230
459
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../src/components/MarkupCanvas.tsx","../src/hooks/useMarkupCanvas.ts"],"sourcesContent":[null,null],"names":["forwardRef","useRef","useState","useImperativeHandle","useCallback","useMemo","useEffect","CoreMarkupCanvas","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../src/components/MarkupCanvas.tsx","../src/hooks/useMarkupCanvas.ts","../src/hooks/useMarkupCanvasWindow.ts"],"sourcesContent":[null,null,null],"names":["forwardRef","useRef","useState","useImperativeHandle","useCallback","useMemo","useEffect","CoreMarkupCanvas","_jsx"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export type { MarkupCanvas as CoreMarkupCanvas, MarkupCanvasConfig, Transform } from "@markup-canvas/core";
2
2
  export type { MarkupCanvasProps } from "./components/index.js";
3
3
  export { MarkupCanvas } from "./components/index.js";
4
- export { useMarkupCanvas } from "./hooks/index.js";
4
+ export { useMarkupCanvas, useMarkupCanvasWindow } from "./hooks/index.js";
5
5
  export type { CanvasEventHandlers, MarkupCanvasRef, UseMarkupCanvasOptions } from "./types/index.js";
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Markup Canvas React
3
3
  * React components and hooks for markup-canvas
4
- * @version 1.0.8
4
+ * @version 1.0.9
5
5
  */
6
6
  import { jsx } from 'react/jsx-runtime';
7
7
  import { MarkupCanvas as MarkupCanvas$1 } from '@markup-canvas/core';
@@ -92,7 +92,7 @@ const MarkupCanvas = forwardRef(({ children, className, style, onTransformChange
92
92
  MarkupCanvas.displayName = "MarkupCanvas";
93
93
 
94
94
  function useMarkupCanvas(canvasRef, options = {}) {
95
- const [canvasInstance, setCanvasInstance] = useState(null);
95
+ const [instance, setInstance] = useState(null);
96
96
  const [transform, setTransform] = useState({ scale: 1, translateX: 0, translateY: 0 });
97
97
  const [zoom, setZoom] = useState(1);
98
98
  const [pan, setPan] = useState({ x: 0, y: 0 });
@@ -101,7 +101,7 @@ function useMarkupCanvas(canvasRef, options = {}) {
101
101
  const optionsRef = useRef(options);
102
102
  optionsRef.current = options;
103
103
  const handleCanvasInstance = useCallback((canvas) => {
104
- setCanvasInstance(canvas);
104
+ setInstance(canvas);
105
105
  optionsRef.current.onReady?.(canvas);
106
106
  }, []);
107
107
  const handleTransform = useCallback((newTransform) => {
@@ -121,30 +121,30 @@ function useMarkupCanvas(canvasRef, options = {}) {
121
121
  optionsRef.current.onReady?.(canvas);
122
122
  }, []);
123
123
  useEffect(() => {
124
- console.log("useEffect", canvasInstance);
125
- if (!canvasInstance) {
124
+ console.log("useEffect", instance);
125
+ if (!instance) {
126
126
  return;
127
127
  }
128
- canvasInstance.on("transform", handleTransform);
129
- canvasInstance.on("zoom", handleZoom);
130
- canvasInstance.on("pan", handlePan);
131
- canvasInstance.on("ready", handleReady);
132
- if (canvasInstance.transform) {
133
- setTransform(canvasInstance.transform);
134
- setZoom(canvasInstance.transform.scale);
135
- setPan({ x: canvasInstance.transform.translateX, y: canvasInstance.transform.translateY });
128
+ instance.on("transform", handleTransform);
129
+ instance.on("zoom", handleZoom);
130
+ instance.on("pan", handlePan);
131
+ instance.on("ready", handleReady);
132
+ if (instance.transform) {
133
+ setTransform(instance.transform);
134
+ setZoom(instance.transform.scale);
135
+ setPan({ x: instance.transform.translateX, y: instance.transform.translateY });
136
136
  }
137
- if (canvasInstance.isReady) {
137
+ if (instance.isReady) {
138
138
  setIsReady(true);
139
- optionsRef.current.onReady?.(canvasInstance);
139
+ optionsRef.current.onReady?.(instance);
140
140
  }
141
141
  return () => {
142
- canvasInstance.off("transform", handleTransform);
143
- canvasInstance.off("zoom", handleZoom);
144
- canvasInstance.off("pan", handlePan);
145
- canvasInstance.off("ready", handleReady);
142
+ instance.off("transform", handleTransform);
143
+ instance.off("zoom", handleZoom);
144
+ instance.off("pan", handlePan);
145
+ instance.off("ready", handleReady);
146
146
  };
147
- }, [canvasInstance]);
147
+ }, [instance, handleTransform, handleZoom, handlePan, handleReady]);
148
148
  const zoomIn = useCallback((factor = 0.5) => {
149
149
  canvasRef.current?.zoomIn(factor);
150
150
  }, [canvasRef]);
@@ -223,5 +223,233 @@ function useMarkupCanvas(canvasRef, options = {}) {
223
223
  };
224
224
  }
225
225
 
226
- export { MarkupCanvas, useMarkupCanvas };
226
+ function useMarkupCanvasWindow(options = {}) {
227
+ const { canvasName = "markupCanvas" } = options;
228
+ const [instance, setInstance] = useState(null);
229
+ const [transform, setTransform] = useState({ scale: 1, translateX: 0, translateY: 0 });
230
+ const [zoom, setZoom] = useState(1);
231
+ const [pan, setPan] = useState({ x: 0, y: 0 });
232
+ const [isReady, setIsReady] = useState(false);
233
+ const [themeMode, setThemeModeState] = useState("light");
234
+ const [showRulersState, setShowRulersState] = useState(false);
235
+ const [showGridState, setShowGridState] = useState(false);
236
+ const optionsRef = useRef(options);
237
+ optionsRef.current = options;
238
+ const handleCanvasInstance = useCallback((canvas) => {
239
+ setInstance(canvas);
240
+ optionsRef.current.onReady?.(canvas);
241
+ }, []);
242
+ const handleTransform = useCallback((newTransform) => {
243
+ setTransform(newTransform);
244
+ optionsRef.current.onTransformChange?.(newTransform);
245
+ }, []);
246
+ const handleZoom = useCallback((newZoom) => {
247
+ setZoom(newZoom);
248
+ optionsRef.current.onZoomChange?.(newZoom);
249
+ }, []);
250
+ const handlePan = useCallback((newPan) => {
251
+ setPan(newPan);
252
+ optionsRef.current.onPanChange?.(newPan);
253
+ }, []);
254
+ const handleReady = useCallback((canvas) => {
255
+ setIsReady(true);
256
+ optionsRef.current.onReady?.(canvas);
257
+ }, []);
258
+ // Get instance from window binding
259
+ useEffect(() => {
260
+ if (typeof window === "undefined") {
261
+ optionsRef.current.onCanvasUnavailable?.();
262
+ return;
263
+ }
264
+ const windowInstance = window[canvasName];
265
+ if (windowInstance && typeof windowInstance === "object") {
266
+ handleCanvasInstance(windowInstance);
267
+ optionsRef.current.onCanvasReady?.(windowInstance);
268
+ // Set initial state from instance
269
+ if (windowInstance.transform) {
270
+ setTransform(windowInstance.transform);
271
+ setZoom(windowInstance.transform.scale);
272
+ setPan({ x: windowInstance.transform.translateX, y: windowInstance.transform.translateY });
273
+ }
274
+ if (windowInstance.isReady) {
275
+ setIsReady(true);
276
+ optionsRef.current.onReady?.(windowInstance);
277
+ }
278
+ const config = windowInstance.getConfig();
279
+ setThemeModeState(config.themeMode || "light");
280
+ if (windowInstance.areRulersVisible?.()) {
281
+ setShowRulersState(true);
282
+ }
283
+ if (windowInstance.isGridVisible?.()) {
284
+ setShowGridState(true);
285
+ }
286
+ }
287
+ else {
288
+ optionsRef.current.onCanvasUnavailable?.();
289
+ }
290
+ }, [canvasName, handleCanvasInstance]);
291
+ // Set up event listeners on canvas instance
292
+ useEffect(() => {
293
+ if (!instance) {
294
+ return;
295
+ }
296
+ instance.on("transform", handleTransform);
297
+ instance.on("zoom", handleZoom);
298
+ instance.on("pan", handlePan);
299
+ instance.on("ready", handleReady);
300
+ return () => {
301
+ instance.off("transform", handleTransform);
302
+ instance.off("zoom", handleZoom);
303
+ instance.off("pan", handlePan);
304
+ instance.off("ready", handleReady);
305
+ };
306
+ }, [instance, handleTransform, handleZoom, handlePan, handleReady]);
307
+ // Listen to window messages for state updates
308
+ useEffect(() => {
309
+ const handleMessage = (event) => {
310
+ if (event.data.source === "markup-canvas" && event.data.canvasName === canvasName) {
311
+ switch (event.data.event) {
312
+ case "transform":
313
+ handleTransform(event.data.data);
314
+ break;
315
+ case "zoom":
316
+ handleZoom(event.data.data);
317
+ break;
318
+ case "pan":
319
+ handlePan(event.data.data);
320
+ break;
321
+ case "ready":
322
+ handleReady(event.data.data);
323
+ break;
324
+ }
325
+ }
326
+ };
327
+ window.addEventListener("message", handleMessage);
328
+ return () => {
329
+ window.removeEventListener("message", handleMessage);
330
+ };
331
+ }, [canvasName, handleTransform, handleZoom, handlePan, handleReady]);
332
+ // Action methods
333
+ const zoomIn = useCallback((factor = 0.5) => {
334
+ instance?.zoomIn(factor);
335
+ }, [instance]);
336
+ const zoomOut = useCallback((factor = 0.5) => {
337
+ instance?.zoomOut(factor);
338
+ }, [instance]);
339
+ const resetZoom = useCallback(() => {
340
+ instance?.resetZoom();
341
+ }, [instance]);
342
+ const panLeft = useCallback((distance) => {
343
+ instance?.panLeft(distance);
344
+ }, [instance]);
345
+ const panRight = useCallback((distance) => {
346
+ instance?.panRight(distance);
347
+ }, [instance]);
348
+ const panUp = useCallback((distance) => {
349
+ instance?.panUp(distance);
350
+ }, [instance]);
351
+ const panDown = useCallback((distance) => {
352
+ instance?.panDown(distance);
353
+ }, [instance]);
354
+ const fitToContent = useCallback(() => {
355
+ instance?.fitToScreen();
356
+ }, [instance]);
357
+ const centerContent = useCallback(() => {
358
+ instance?.centerContent();
359
+ }, [instance]);
360
+ const resetView = useCallback(() => {
361
+ instance?.resetView();
362
+ }, [instance]);
363
+ const setTransitionMode = useCallback((enabled) => {
364
+ instance?.updateConfig({ enableTransition: enabled });
365
+ }, [instance]);
366
+ const toggleTransitionMode = useCallback(() => {
367
+ if (instance) {
368
+ const currentConfig = instance.getConfig();
369
+ const newEnableTransition = !currentConfig.enableTransition;
370
+ instance.updateConfig({ enableTransition: newEnableTransition });
371
+ return newEnableTransition;
372
+ }
373
+ return false;
374
+ }, [instance]);
375
+ const updateThemeMode = useCallback((mode) => {
376
+ setThemeModeState(mode);
377
+ instance?.updateThemeMode(mode);
378
+ }, [instance]);
379
+ const toggleThemeMode = useCallback(() => {
380
+ const newMode = themeMode === "light" ? "dark" : "light";
381
+ updateThemeMode(newMode);
382
+ return newMode;
383
+ }, [themeMode, updateThemeMode]);
384
+ const showRulers = useCallback(() => {
385
+ if (instance?.showRulers?.()) {
386
+ setShowRulersState(true);
387
+ }
388
+ }, [instance]);
389
+ const hideRulers = useCallback(() => {
390
+ if (instance?.hideRulers?.()) {
391
+ setShowRulersState(false);
392
+ }
393
+ }, [instance]);
394
+ const toggleRulers = useCallback(() => {
395
+ if (instance?.toggleRulers?.()) {
396
+ setShowRulersState((prev) => !prev);
397
+ }
398
+ }, [instance]);
399
+ const areRulersVisible = useCallback(() => {
400
+ return instance?.areRulersVisible?.() ?? false;
401
+ }, [instance]);
402
+ const showGrid = useCallback(() => {
403
+ if (instance?.showGrid?.()) {
404
+ setShowGridState(true);
405
+ }
406
+ }, [instance]);
407
+ const hideGrid = useCallback(() => {
408
+ if (instance?.hideGrid?.()) {
409
+ setShowGridState(false);
410
+ }
411
+ }, [instance]);
412
+ const toggleGrid = useCallback(() => {
413
+ if (instance?.toggleGrid?.()) {
414
+ setShowGridState((prev) => !prev);
415
+ }
416
+ }, [instance]);
417
+ const isGridVisible = useCallback(() => {
418
+ return instance?.isGridVisible?.() ?? false;
419
+ }, [instance]);
420
+ return {
421
+ canvas: instance,
422
+ transform,
423
+ zoom,
424
+ pan,
425
+ isReady,
426
+ zoomIn,
427
+ zoomOut,
428
+ resetZoom,
429
+ panLeft,
430
+ panRight,
431
+ panUp,
432
+ panDown,
433
+ fitToContent,
434
+ centerContent,
435
+ resetView,
436
+ setTransitionMode,
437
+ toggleTransitionMode,
438
+ themeMode,
439
+ updateThemeMode,
440
+ toggleThemeMode,
441
+ toggleRulers,
442
+ showRulers,
443
+ hideRulers,
444
+ areRulersVisible,
445
+ showRulersState,
446
+ toggleGrid,
447
+ showGrid,
448
+ hideGrid,
449
+ isGridVisible,
450
+ showGridState,
451
+ };
452
+ }
453
+
454
+ export { MarkupCanvas, useMarkupCanvas, useMarkupCanvasWindow };
227
455
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/components/MarkupCanvas.tsx","../src/hooks/useMarkupCanvas.ts"],"sourcesContent":[null,null],"names":["CoreMarkupCanvas","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/components/MarkupCanvas.tsx","../src/hooks/useMarkupCanvas.ts","../src/hooks/useMarkupCanvasWindow.ts"],"sourcesContent":[null,null,null],"names":["CoreMarkupCanvas","_jsx"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@markup-canvas/react",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
4
4
  "description": "React components and hooks for markup-canvas",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs.js",
@@ -22,7 +22,7 @@
22
22
  "peerDependencies": {
23
23
  "react": ">=18.0.0",
24
24
  "react-dom": ">=18.0.0",
25
- "@markup-canvas/core": "1.0.8"
25
+ "@markup-canvas/core": "1.0.9"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@biomejs/biome": "2.2.6",
@@ -1 +1,2 @@
1
1
  export { useMarkupCanvas } from "./useMarkupCanvas.js";
2
+ export { useMarkupCanvasWindow } from "./useMarkupCanvasWindow.js";
@@ -3,7 +3,7 @@ import { type RefObject, useCallback, useEffect, useRef, useState } from "react"
3
3
  import type { MarkupCanvasRef, UseMarkupCanvasOptions } from "../types/index.js";
4
4
 
5
5
  export function useMarkupCanvas(canvasRef: RefObject<MarkupCanvasRef | null>, options: UseMarkupCanvasOptions = {}) {
6
- const [canvasInstance, setCanvasInstance] = useState<MarkupCanvas | null>(null);
6
+ const [instance, setInstance] = useState<MarkupCanvas | null>(null);
7
7
  const [transform, setTransform] = useState<Transform>({ scale: 1, translateX: 0, translateY: 0 });
8
8
  const [zoom, setZoom] = useState(1);
9
9
  const [pan, setPan] = useState({ x: 0, y: 0 });
@@ -14,7 +14,7 @@ export function useMarkupCanvas(canvasRef: RefObject<MarkupCanvasRef | null>, op
14
14
  optionsRef.current = options;
15
15
 
16
16
  const handleCanvasInstance = useCallback((canvas: MarkupCanvas) => {
17
- setCanvasInstance(canvas);
17
+ setInstance(canvas);
18
18
  optionsRef.current.onReady?.(canvas);
19
19
  }, []);
20
20
 
@@ -39,35 +39,35 @@ export function useMarkupCanvas(canvasRef: RefObject<MarkupCanvasRef | null>, op
39
39
  }, []);
40
40
 
41
41
  useEffect(() => {
42
- console.log("useEffect", canvasInstance);
42
+ console.log("useEffect", instance);
43
43
 
44
- if (!canvasInstance) {
44
+ if (!instance) {
45
45
  return;
46
46
  }
47
47
 
48
- canvasInstance.on("transform", handleTransform);
49
- canvasInstance.on("zoom", handleZoom);
50
- canvasInstance.on("pan", handlePan);
51
- canvasInstance.on("ready", handleReady);
48
+ instance.on("transform", handleTransform);
49
+ instance.on("zoom", handleZoom);
50
+ instance.on("pan", handlePan);
51
+ instance.on("ready", handleReady);
52
52
 
53
- if (canvasInstance.transform) {
54
- setTransform(canvasInstance.transform);
55
- setZoom(canvasInstance.transform.scale);
56
- setPan({ x: canvasInstance.transform.translateX, y: canvasInstance.transform.translateY });
53
+ if (instance.transform) {
54
+ setTransform(instance.transform);
55
+ setZoom(instance.transform.scale);
56
+ setPan({ x: instance.transform.translateX, y: instance.transform.translateY });
57
57
  }
58
58
 
59
- if (canvasInstance.isReady) {
59
+ if (instance.isReady) {
60
60
  setIsReady(true);
61
- optionsRef.current.onReady?.(canvasInstance);
61
+ optionsRef.current.onReady?.(instance);
62
62
  }
63
63
 
64
64
  return () => {
65
- canvasInstance.off("transform", handleTransform);
66
- canvasInstance.off("zoom", handleZoom);
67
- canvasInstance.off("pan", handlePan);
68
- canvasInstance.off("ready", handleReady);
65
+ instance.off("transform", handleTransform);
66
+ instance.off("zoom", handleZoom);
67
+ instance.off("pan", handlePan);
68
+ instance.off("ready", handleReady);
69
69
  };
70
- }, [canvasInstance]);
70
+ }, [instance, handleTransform, handleZoom, handlePan, handleReady]);
71
71
 
72
72
  const zoomIn = useCallback(
73
73
  (factor = 0.5) => {
@@ -0,0 +1,304 @@
1
+ import type { MarkupCanvas, Transform } from "@markup-canvas/core";
2
+ import { useCallback, useEffect, useRef, useState } from "react";
3
+ import type { UseMarkupCanvasOptions } from "../types/index.js";
4
+
5
+ interface UseMarkupCanvasWindowOptions extends UseMarkupCanvasOptions {
6
+ canvasName?: string;
7
+ onCanvasReady?: (canvas: MarkupCanvas) => void;
8
+ onCanvasUnavailable?: () => void;
9
+ }
10
+
11
+ export function useMarkupCanvasWindow(options: UseMarkupCanvasWindowOptions = {}) {
12
+ const { canvasName = "markupCanvas" } = options;
13
+
14
+ const [instance, setInstance] = useState<MarkupCanvas | null>(null);
15
+ const [transform, setTransform] = useState<Transform>({ scale: 1, translateX: 0, translateY: 0 });
16
+ const [zoom, setZoom] = useState(1);
17
+ const [pan, setPan] = useState({ x: 0, y: 0 });
18
+ const [isReady, setIsReady] = useState(false);
19
+ const [themeMode, setThemeModeState] = useState<"light" | "dark">("light");
20
+ const [showRulersState, setShowRulersState] = useState(false);
21
+ const [showGridState, setShowGridState] = useState(false);
22
+
23
+ const optionsRef = useRef(options);
24
+ optionsRef.current = options;
25
+
26
+ const handleCanvasInstance = useCallback((canvas: MarkupCanvas) => {
27
+ setInstance(canvas);
28
+ optionsRef.current.onReady?.(canvas);
29
+ }, []);
30
+
31
+ const handleTransform = useCallback((newTransform: Transform) => {
32
+ setTransform(newTransform);
33
+ optionsRef.current.onTransformChange?.(newTransform);
34
+ }, []);
35
+
36
+ const handleZoom = useCallback((newZoom: number) => {
37
+ setZoom(newZoom);
38
+ optionsRef.current.onZoomChange?.(newZoom);
39
+ }, []);
40
+
41
+ const handlePan = useCallback((newPan: { x: number; y: number }) => {
42
+ setPan(newPan);
43
+ optionsRef.current.onPanChange?.(newPan);
44
+ }, []);
45
+
46
+ const handleReady = useCallback((canvas: MarkupCanvas) => {
47
+ setIsReady(true);
48
+ optionsRef.current.onReady?.(canvas);
49
+ }, []);
50
+
51
+ // Get instance from window binding
52
+ useEffect(() => {
53
+ if (typeof window === "undefined") {
54
+ optionsRef.current.onCanvasUnavailable?.();
55
+ return;
56
+ }
57
+
58
+ const windowInstance = (window as unknown as Record<string, unknown>)[canvasName] as MarkupCanvas | undefined;
59
+ if (windowInstance && typeof windowInstance === "object") {
60
+ handleCanvasInstance(windowInstance);
61
+ optionsRef.current.onCanvasReady?.(windowInstance);
62
+
63
+ // Set initial state from instance
64
+ if (windowInstance.transform) {
65
+ setTransform(windowInstance.transform);
66
+ setZoom(windowInstance.transform.scale);
67
+ setPan({ x: windowInstance.transform.translateX, y: windowInstance.transform.translateY });
68
+ }
69
+
70
+ if (windowInstance.isReady) {
71
+ setIsReady(true);
72
+ optionsRef.current.onReady?.(windowInstance);
73
+ }
74
+
75
+ const config = windowInstance.getConfig();
76
+ setThemeModeState(config.themeMode || "light");
77
+
78
+ if (windowInstance.areRulersVisible?.()) {
79
+ setShowRulersState(true);
80
+ }
81
+ if (windowInstance.isGridVisible?.()) {
82
+ setShowGridState(true);
83
+ }
84
+ } else {
85
+ optionsRef.current.onCanvasUnavailable?.();
86
+ }
87
+ }, [canvasName, handleCanvasInstance]);
88
+
89
+ // Set up event listeners on canvas instance
90
+ useEffect(() => {
91
+ if (!instance) {
92
+ return;
93
+ }
94
+
95
+ instance.on("transform", handleTransform);
96
+ instance.on("zoom", handleZoom);
97
+ instance.on("pan", handlePan);
98
+ instance.on("ready", handleReady);
99
+
100
+ return () => {
101
+ instance.off("transform", handleTransform);
102
+ instance.off("zoom", handleZoom);
103
+ instance.off("pan", handlePan);
104
+ instance.off("ready", handleReady);
105
+ };
106
+ }, [instance, handleTransform, handleZoom, handlePan, handleReady]);
107
+
108
+ // Listen to window messages for state updates
109
+ useEffect(() => {
110
+ const handleMessage = (event: MessageEvent) => {
111
+ if (event.data.source === "markup-canvas" && event.data.canvasName === canvasName) {
112
+ switch (event.data.event) {
113
+ case "transform":
114
+ handleTransform(event.data.data);
115
+ break;
116
+ case "zoom":
117
+ handleZoom(event.data.data);
118
+ break;
119
+ case "pan":
120
+ handlePan(event.data.data);
121
+ break;
122
+ case "ready":
123
+ handleReady(event.data.data);
124
+ break;
125
+ default:
126
+ break;
127
+ }
128
+ }
129
+ };
130
+
131
+ window.addEventListener("message", handleMessage);
132
+
133
+ return () => {
134
+ window.removeEventListener("message", handleMessage);
135
+ };
136
+ }, [canvasName, handleTransform, handleZoom, handlePan, handleReady]);
137
+
138
+ // Action methods
139
+ const zoomIn = useCallback(
140
+ (factor = 0.5) => {
141
+ instance?.zoomIn(factor);
142
+ },
143
+ [instance]
144
+ );
145
+
146
+ const zoomOut = useCallback(
147
+ (factor = 0.5) => {
148
+ instance?.zoomOut(factor);
149
+ },
150
+ [instance]
151
+ );
152
+
153
+ const resetZoom = useCallback(() => {
154
+ instance?.resetZoom();
155
+ }, [instance]);
156
+
157
+ const panLeft = useCallback(
158
+ (distance?: number) => {
159
+ instance?.panLeft(distance);
160
+ },
161
+ [instance]
162
+ );
163
+
164
+ const panRight = useCallback(
165
+ (distance?: number) => {
166
+ instance?.panRight(distance);
167
+ },
168
+ [instance]
169
+ );
170
+
171
+ const panUp = useCallback(
172
+ (distance?: number) => {
173
+ instance?.panUp(distance);
174
+ },
175
+ [instance]
176
+ );
177
+
178
+ const panDown = useCallback(
179
+ (distance?: number) => {
180
+ instance?.panDown(distance);
181
+ },
182
+ [instance]
183
+ );
184
+
185
+ const fitToContent = useCallback(() => {
186
+ instance?.fitToScreen();
187
+ }, [instance]);
188
+
189
+ const centerContent = useCallback(() => {
190
+ instance?.centerContent();
191
+ }, [instance]);
192
+
193
+ const resetView = useCallback(() => {
194
+ instance?.resetView();
195
+ }, [instance]);
196
+
197
+ const setTransitionMode = useCallback(
198
+ (enabled: boolean) => {
199
+ instance?.updateConfig({ enableTransition: enabled });
200
+ },
201
+ [instance]
202
+ );
203
+
204
+ const toggleTransitionMode = useCallback(() => {
205
+ if (instance) {
206
+ const currentConfig = instance.getConfig();
207
+ const newEnableTransition = !currentConfig.enableTransition;
208
+ instance.updateConfig({ enableTransition: newEnableTransition });
209
+ return newEnableTransition;
210
+ }
211
+ return false;
212
+ }, [instance]);
213
+
214
+ const updateThemeMode = useCallback(
215
+ (mode: "light" | "dark") => {
216
+ setThemeModeState(mode);
217
+ instance?.updateThemeMode(mode);
218
+ },
219
+ [instance]
220
+ );
221
+
222
+ const toggleThemeMode = useCallback(() => {
223
+ const newMode = themeMode === "light" ? "dark" : "light";
224
+ updateThemeMode(newMode);
225
+ return newMode;
226
+ }, [themeMode, updateThemeMode]);
227
+
228
+ const showRulers = useCallback(() => {
229
+ if (instance?.showRulers?.()) {
230
+ setShowRulersState(true);
231
+ }
232
+ }, [instance]);
233
+
234
+ const hideRulers = useCallback(() => {
235
+ if (instance?.hideRulers?.()) {
236
+ setShowRulersState(false);
237
+ }
238
+ }, [instance]);
239
+
240
+ const toggleRulers = useCallback(() => {
241
+ if (instance?.toggleRulers?.()) {
242
+ setShowRulersState((prev) => !prev);
243
+ }
244
+ }, [instance]);
245
+
246
+ const areRulersVisible = useCallback(() => {
247
+ return instance?.areRulersVisible?.() ?? false;
248
+ }, [instance]);
249
+
250
+ const showGrid = useCallback(() => {
251
+ if (instance?.showGrid?.()) {
252
+ setShowGridState(true);
253
+ }
254
+ }, [instance]);
255
+
256
+ const hideGrid = useCallback(() => {
257
+ if (instance?.hideGrid?.()) {
258
+ setShowGridState(false);
259
+ }
260
+ }, [instance]);
261
+
262
+ const toggleGrid = useCallback(() => {
263
+ if (instance?.toggleGrid?.()) {
264
+ setShowGridState((prev) => !prev);
265
+ }
266
+ }, [instance]);
267
+
268
+ const isGridVisible = useCallback(() => {
269
+ return instance?.isGridVisible?.() ?? false;
270
+ }, [instance]);
271
+
272
+ return {
273
+ canvas: instance,
274
+ transform,
275
+ zoom,
276
+ pan,
277
+ isReady,
278
+ zoomIn,
279
+ zoomOut,
280
+ resetZoom,
281
+ panLeft,
282
+ panRight,
283
+ panUp,
284
+ panDown,
285
+ fitToContent,
286
+ centerContent,
287
+ resetView,
288
+ setTransitionMode,
289
+ toggleTransitionMode,
290
+ themeMode,
291
+ updateThemeMode,
292
+ toggleThemeMode,
293
+ toggleRulers,
294
+ showRulers,
295
+ hideRulers,
296
+ areRulersVisible,
297
+ showRulersState,
298
+ toggleGrid,
299
+ showGrid,
300
+ hideGrid,
301
+ isGridVisible,
302
+ showGridState,
303
+ };
304
+ }
package/src/index.ts CHANGED
@@ -3,6 +3,6 @@ export type { MarkupCanvas as CoreMarkupCanvas, MarkupCanvasConfig, Transform }
3
3
  export type { MarkupCanvasProps } from "./components/index.js";
4
4
  export { MarkupCanvas } from "./components/index.js";
5
5
  // Hooks
6
- export { useMarkupCanvas } from "./hooks/index.js";
6
+ export { useMarkupCanvas, useMarkupCanvasWindow } from "./hooks/index.js";
7
7
  // Types
8
8
  export type { CanvasEventHandlers, MarkupCanvasRef, UseMarkupCanvasOptions } from "./types/index.js";