@bwp-web/canvas 0.4.0

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.
Files changed (73) hide show
  1. package/dist/Canvas/Canvas.d.ts +11 -0
  2. package/dist/Canvas/Canvas.d.ts.map +1 -0
  3. package/dist/Canvas/index.d.ts +3 -0
  4. package/dist/Canvas/index.d.ts.map +1 -0
  5. package/dist/alignment/cursorSnapping.d.ts +55 -0
  6. package/dist/alignment/cursorSnapping.d.ts.map +1 -0
  7. package/dist/alignment/index.d.ts +9 -0
  8. package/dist/alignment/index.d.ts.map +1 -0
  9. package/dist/alignment/objectAlignment.d.ts +27 -0
  10. package/dist/alignment/objectAlignment.d.ts.map +1 -0
  11. package/dist/alignment/objectAlignmentMath.d.ts +35 -0
  12. package/dist/alignment/objectAlignmentMath.d.ts.map +1 -0
  13. package/dist/alignment/objectAlignmentRendering.d.ts +21 -0
  14. package/dist/alignment/objectAlignmentRendering.d.ts.map +1 -0
  15. package/dist/alignment/objectAlignmentUtils.d.ts +44 -0
  16. package/dist/alignment/objectAlignmentUtils.d.ts.map +1 -0
  17. package/dist/alignment/rotationSnap.d.ts +16 -0
  18. package/dist/alignment/rotationSnap.d.ts.map +1 -0
  19. package/dist/alignment/snapPoints.d.ts +18 -0
  20. package/dist/alignment/snapPoints.d.ts.map +1 -0
  21. package/dist/background.d.ts +79 -0
  22. package/dist/background.d.ts.map +1 -0
  23. package/dist/constants.d.ts +34 -0
  24. package/dist/constants.d.ts.map +1 -0
  25. package/dist/fabricAugmentation.d.ts +15 -0
  26. package/dist/fabricAugmentation.d.ts.map +1 -0
  27. package/dist/hooks/index.d.ts +5 -0
  28. package/dist/hooks/index.d.ts.map +1 -0
  29. package/dist/hooks/shared.d.ts +20 -0
  30. package/dist/hooks/shared.d.ts.map +1 -0
  31. package/dist/hooks/useEditCanvas.d.ts +126 -0
  32. package/dist/hooks/useEditCanvas.d.ts.map +1 -0
  33. package/dist/hooks/useViewCanvas.d.ts +66 -0
  34. package/dist/hooks/useViewCanvas.d.ts.map +1 -0
  35. package/dist/index.cjs +2424 -0
  36. package/dist/index.cjs.map +1 -0
  37. package/dist/index.d.ts +38 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +2365 -0
  40. package/dist/index.js.map +1 -0
  41. package/dist/interactions/clickToCreate.d.ts +10 -0
  42. package/dist/interactions/clickToCreate.d.ts.map +1 -0
  43. package/dist/interactions/dragToCreate.d.ts +20 -0
  44. package/dist/interactions/dragToCreate.d.ts.map +1 -0
  45. package/dist/interactions/drawToCreate.d.ts +28 -0
  46. package/dist/interactions/drawToCreate.d.ts.map +1 -0
  47. package/dist/interactions/index.d.ts +9 -0
  48. package/dist/interactions/index.d.ts.map +1 -0
  49. package/dist/interactions/interactionSnapping.d.ts +34 -0
  50. package/dist/interactions/interactionSnapping.d.ts.map +1 -0
  51. package/dist/interactions/shared.d.ts +13 -0
  52. package/dist/interactions/shared.d.ts.map +1 -0
  53. package/dist/interactions/vertexEdit.d.ts +18 -0
  54. package/dist/interactions/vertexEdit.d.ts.map +1 -0
  55. package/dist/keyboard.d.ts +13 -0
  56. package/dist/keyboard.d.ts.map +1 -0
  57. package/dist/serialization.d.ts +52 -0
  58. package/dist/serialization.d.ts.map +1 -0
  59. package/dist/shapes/circle.d.ts +36 -0
  60. package/dist/shapes/circle.d.ts.map +1 -0
  61. package/dist/shapes/index.d.ts +4 -0
  62. package/dist/shapes/index.d.ts.map +1 -0
  63. package/dist/shapes/polygon.d.ts +37 -0
  64. package/dist/shapes/polygon.d.ts.map +1 -0
  65. package/dist/shapes/rectangle.d.ts +31 -0
  66. package/dist/shapes/rectangle.d.ts.map +1 -0
  67. package/dist/styles.d.ts +46 -0
  68. package/dist/styles.d.ts.map +1 -0
  69. package/dist/types.d.ts +48 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/viewport.d.ts +51 -0
  72. package/dist/viewport.d.ts.map +1 -0
  73. package/package.json +51 -0
@@ -0,0 +1,66 @@
1
+ import { Canvas as FabricCanvas } from 'fabric';
2
+ import { type PanAndZoomOptions } from '../viewport';
3
+ /** Visual properties that can be updated on view-canvas objects. */
4
+ export interface ViewObjectStyle {
5
+ fill?: string;
6
+ stroke?: string;
7
+ strokeWidth?: number;
8
+ opacity?: number;
9
+ visible?: boolean;
10
+ }
11
+ export interface UseViewCanvasOptions {
12
+ /** Configure pan and zoom. Pass `false` to disable, or options to customize. Default: enabled. */
13
+ panAndZoom?: boolean | PanAndZoomOptions;
14
+ /**
15
+ * Keep stroke widths visually constant as the user zooms in/out.
16
+ * Pass `false` to disable. Default: enabled.
17
+ */
18
+ scaledStrokes?: boolean;
19
+ /** Called after the canvas is initialized and viewport is set up. */
20
+ onReady?: (canvas: FabricCanvas) => void | Promise<void>;
21
+ /**
22
+ * Automatically fit the viewport to the background image after `onReady`
23
+ * completes, if a background image is present. Also applies when
24
+ * `viewport.reset` is called while a background image is set.
25
+ * Pass `false` to disable. Default: enabled.
26
+ */
27
+ autoFitToBackground?: boolean;
28
+ }
29
+ /**
30
+ * Hook that provides a view-only canvas experience.
31
+ *
32
+ * Like {@link useEditCanvas} but without create, edit, delete, or selection
33
+ * capabilities. The canvas is always in pan mode — click and drag to pan,
34
+ * scroll to zoom.
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * const canvas = useViewCanvas();
39
+ *
40
+ * return <Canvas onReady={canvas.onReady} width={800} height={600} />;
41
+ * ```
42
+ */
43
+ export declare function useViewCanvas(options?: UseViewCanvasOptions): {
44
+ /** Pass this to `<Canvas onReady={...} />` */
45
+ onReady: (canvas: FabricCanvas) => void;
46
+ /** Ref to the underlying Fabric canvas instance. */
47
+ canvasRef: import("react").RefObject<FabricCanvas | null>;
48
+ /** Current zoom level (reactive). */
49
+ zoom: number;
50
+ /** Viewport controls. */
51
+ viewport: {
52
+ /** Reset viewport to default (no pan, zoom = 1), or fit to background if one is set. */
53
+ reset: () => void;
54
+ /** Zoom in toward the canvas center. Default step: 0.2. */
55
+ zoomIn: (step?: number) => void;
56
+ /** Zoom out from the canvas center. Default step: 0.2. */
57
+ zoomOut: (step?: number) => void;
58
+ };
59
+ /** Update a single object's visual style by its `data.id`. */
60
+ setObjectStyle: (id: string, style: ViewObjectStyle) => void;
61
+ /** Batch-update multiple objects' visual styles in one render. Keyed by `data.id`. */
62
+ setObjectStyles: (styles: Record<string, ViewObjectStyle>) => void;
63
+ /** Apply a visual style to all objects whose `data.type` matches. */
64
+ setObjectStyleByType: (type: string, style: ViewObjectStyle) => void;
65
+ };
66
+ //# sourceMappingURL=useViewCanvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useViewCanvas.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCanvas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,YAAY,EAA2B,MAAM,QAAQ,CAAC;AACzE,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AAKrB,oEAAoE;AACpE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,kGAAkG;IAClG,UAAU,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACzC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qEAAqE;IACrE,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAuBD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB;IAgHxD,8CAA8C;sBAzGrC,YAAY;IA2GrB,oDAAoD;;IAEpD,qCAAqC;;IAErC,yBAAyB;;QAEvB,wFAAwF;;QAExF,2DAA2D;;QAE3D,0DAA0D;;;IAG5D,8DAA8D;yBA/DxB,MAAM,SAAS,eAAe;IAiEpE,sFAAsF;8BAxD7E,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IA0DxC,qEAAqE;iCAnC9D,MAAM,SAAS,eAAe;EAsCxC"}