@bwp-web/canvas 0.9.0 → 0.9.2

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":"ViewCanvasContext.d.ts","sourceRoot":"","sources":["../../src/context/ViewCanvasContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAGhC,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtE,qDAAqD;AACrD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,sBAAsB,EACtB,MAAM,GAAG,UAAU,CACpB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,sBAAsB,EACtB,WAAW,GAAG,MAAM,GAAG,UAAU,CAClC,CAAC;AAOF,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,2CA+BzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAe7D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,sBAAsB,GAAG,IAAI,CAcxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,uBAAuB,CAQ/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,oBAAoB,CAQzD"}
1
+ {"version":3,"file":"ViewCanvasContext.d.ts","sourceRoot":"","sources":["../../src/context/ViewCanvasContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3E,OAAO,EACL,aAAa,EACb,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAGhC,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtE,qDAAqD;AACrD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,sBAAsB,EACtB,MAAM,GAAG,UAAU,CACpB,CAAC;AAEF,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,sBAAsB,EACtB,WAAW,GAAG,MAAM,GAAG,UAAU,CAClC,CAAC;AAOF,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,GACT,EAAE,uBAAuB,2CAgCzB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,IAAI,sBAAsB,CAe7D;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,sBAAsB,GAAG,IAAI,CAcxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,uBAAuB,CAQ/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,IAAI,oBAAoB,CAQzD"}
@@ -46,6 +46,7 @@ export interface UseViewCanvasOptions {
46
46
  /**
47
47
  * Whether the background image should have an Invert filter applied.
48
48
  * Reactive — changes are applied automatically without remounting.
49
+ * Has no effect when the canvas data sets `lockLightMode: true`.
49
50
  */
50
51
  invertBackground?: boolean;
51
52
  }
@@ -93,5 +94,7 @@ export declare function useViewCanvas(options?: UseViewCanvasOptions): {
93
94
  setObjectStyles: (styles: Record<string, ViewObjectStyle>) => void;
94
95
  /** Apply a visual style to all objects whose `data.type` matches. */
95
96
  setObjectStyleByType: (type: string, style: ViewObjectStyle) => void;
97
+ /** Whether the canvas is locked to light mode. Read from loaded canvas data. */
98
+ lockLightMode: boolean | undefined;
96
99
  };
97
100
  //# sourceMappingURL=useViewCanvas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewCanvas.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCanvas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,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;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;IACxC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB;IA0KtD,8CAA8C;sBA/JvC,YAAY;IAiKnB,oDAAoD;;IAEpD,qCAAqC;;IAErC,0EAA0E;;IAE1E,qDAAqD;;IAErD,yBAAyB;;QAjFzB,wFAAwF;;QAExF,2DAA2D;;QAE3D,0DAA0D;;QAE1D,uDAAuD;;QAEvD,6DAA6D;;;IA2E7D,8DAA8D;yBA7D1B,MAAM,SAAS,eAAe;IA+DlE,sFAAsF;8BAtD/E,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAwDtC,qEAAqE;iCAjChE,MAAM,SAAS,eAAe;EAwCxC"}
1
+ {"version":3,"file":"useViewCanvas.d.ts","sourceRoot":"","sources":["../../src/hooks/useViewCanvas.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,aAAa,CAAC;AASrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,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;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAC9B;;;;;OAKG;IACH,UAAU,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC;IACxC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAUD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,oBAAoB;IAoLtD,8CAA8C;sBAtKvC,YAAY;IAwKnB,oDAAoD;;IAEpD,qCAAqC;;IAErC,0EAA0E;;IAE1E,qDAAqD;;IAErD,yBAAyB;;QAjFzB,wFAAwF;;QAExF,2DAA2D;;QAE3D,0DAA0D;;QAE1D,uDAAuD;;QAEvD,6DAA6D;;;IA2E7D,8DAA8D;yBA7D1B,MAAM,SAAS,eAAe;IA+DlE,sFAAsF;8BAtD/E,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAwDtC,qEAAqE;iCAjChE,MAAM,SAAS,eAAe;IAmCnC,gFAAgF;;EAOrF"}
package/dist/index.cjs CHANGED
@@ -2904,6 +2904,9 @@ function useViewCanvas(options) {
2904
2904
  const [zoom, setZoom] = (0, import_react4.useState)(1);
2905
2905
  const [objects, setObjects] = (0, import_react4.useState)([]);
2906
2906
  const [isLoading, setIsLoading] = (0, import_react4.useState)(false);
2907
+ const [lockLightMode, setLockLightMode] = (0, import_react4.useState)(
2908
+ void 0
2909
+ );
2907
2910
  const onReady = (0, import_react4.useCallback)(
2908
2911
  (canvas) => {
2909
2912
  canvasRef.current = canvas;
@@ -2948,8 +2951,14 @@ function useViewCanvas(options) {
2948
2951
  initPromise.then(async () => {
2949
2952
  const onReadyResult = opts?.onReady?.(canvas);
2950
2953
  await Promise.resolve(onReadyResult);
2954
+ if (canvas.lockLightMode !== void 0) {
2955
+ setLockLightMode(canvas.lockLightMode);
2956
+ }
2951
2957
  if (opts?.invertBackground !== void 0) {
2952
- setBackgroundInverted(canvas, opts.invertBackground);
2958
+ setBackgroundInverted(
2959
+ canvas,
2960
+ opts.invertBackground && !canvas.lockLightMode
2961
+ );
2953
2962
  }
2954
2963
  if (opts?.autoFitToBackground !== false && canvas.backgroundImage) {
2955
2964
  fitViewportToBackground(canvas);
@@ -2963,8 +2972,8 @@ function useViewCanvas(options) {
2963
2972
  (0, import_react4.useEffect)(() => {
2964
2973
  const canvas = canvasRef.current;
2965
2974
  if (!canvas || options?.invertBackground === void 0) return;
2966
- setBackgroundInverted(canvas, options.invertBackground);
2967
- }, [options?.invertBackground]);
2975
+ setBackgroundInverted(canvas, options.invertBackground && !lockLightMode);
2976
+ }, [options?.invertBackground, lockLightMode]);
2968
2977
  const { resetViewport: resetViewport2, zoomIn, zoomOut, panToObject, zoomToFit } = useViewportActions(canvasRef, viewportRef, setZoom);
2969
2978
  const viewport = (0, import_react4.useMemo)(
2970
2979
  () => ({
@@ -3047,11 +3056,13 @@ function useViewCanvas(options) {
3047
3056
  /** Batch-update multiple objects' visual styles in one render. Keyed by `data.id`. */
3048
3057
  setObjectStyles,
3049
3058
  /** Apply a visual style to all objects whose `data.type` matches. */
3050
- setObjectStyleByType
3059
+ setObjectStyleByType,
3060
+ /** Whether the canvas is locked to light mode. Read from loaded canvas data. */
3061
+ lockLightMode
3051
3062
  }),
3052
3063
  // Only reactive state in deps — refs and stable callbacks are omitted
3053
3064
  // eslint-disable-next-line react-hooks/exhaustive-deps
3054
- [zoom, objects, isLoading, viewport]
3065
+ [zoom, objects, isLoading, viewport, lockLightMode]
3055
3066
  );
3056
3067
  }
3057
3068
 
@@ -3324,11 +3335,12 @@ function ViewCanvasProvider({
3324
3335
  isLoading: canvas.isLoading,
3325
3336
  setObjectStyle: canvas.setObjectStyle,
3326
3337
  setObjectStyles: canvas.setObjectStyles,
3327
- setObjectStyleByType: canvas.setObjectStyleByType
3338
+ setObjectStyleByType: canvas.setObjectStyleByType,
3339
+ lockLightMode: canvas.lockLightMode
3328
3340
  }),
3329
3341
  // Only reactive state — stable callbacks omitted
3330
3342
  // eslint-disable-next-line react-hooks/exhaustive-deps
3331
- [canvas.objects, canvas.isLoading]
3343
+ [canvas.objects, canvas.isLoading, canvas.lockLightMode]
3332
3344
  );
3333
3345
  return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(CanvasRefContext.Provider, { value: canvas.canvasRef, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ViewViewportContext.Provider, { value: viewportValue, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ViewStateContext.Provider, { value: stateValue, children }) }) });
3334
3346
  }