@bwp-web/canvas 0.8.3 → 0.9.1
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/dist/context/CanvasRefContext.d.ts +17 -0
- package/dist/context/CanvasRefContext.d.ts.map +1 -0
- package/dist/context/EditCanvasContext.d.ts +37 -5
- package/dist/context/EditCanvasContext.d.ts.map +1 -1
- package/dist/context/ViewCanvasContext.d.ts +37 -5
- package/dist/context/ViewCanvasContext.d.ts.map +1 -1
- package/dist/context/index.d.ts +4 -4
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/useCanvasRef.d.ts +4 -2
- package/dist/context/useCanvasRef.d.ts.map +1 -1
- package/dist/hooks/useViewCanvas.d.ts +2 -0
- package/dist/hooks/useViewCanvas.d.ts.map +1 -1
- package/dist/index.cjs +194 -77
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +163 -50
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -12,9 +12,11 @@ export type { UseCanvasTooltipOptions, CanvasTooltipState } from './hooks';
|
|
|
12
12
|
export { useCanvasClick } from './hooks';
|
|
13
13
|
export type { UseCanvasClickOptions } from './hooks';
|
|
14
14
|
export { EditCanvasProvider, useEditCanvasContext } from './context';
|
|
15
|
-
export
|
|
15
|
+
export { useEditCanvasViewport, useEditCanvasState } from './context';
|
|
16
|
+
export type { EditCanvasProviderProps, EditCanvasContextValue, EditCanvasViewportValue, EditCanvasStateValue, } from './context';
|
|
16
17
|
export { ViewCanvasProvider, useViewCanvasContext } from './context';
|
|
17
|
-
export
|
|
18
|
+
export { useViewCanvasViewport, useViewCanvasState } from './context';
|
|
19
|
+
export type { ViewCanvasProviderProps, ViewCanvasContextValue, ViewCanvasViewportValue, ViewCanvasStateValue, } from './context';
|
|
18
20
|
export { useCanvasRef } from './context';
|
|
19
21
|
export { ObjectOverlay } from './overlay';
|
|
20
22
|
export type { ObjectOverlayProps } from './overlay';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,YAAY,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EACV,uBAAuB,EACvB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -2826,6 +2826,9 @@ function useViewCanvas(options) {
|
|
|
2826
2826
|
const [zoom, setZoom] = useState2(1);
|
|
2827
2827
|
const [objects, setObjects] = useState2([]);
|
|
2828
2828
|
const [isLoading, setIsLoading] = useState2(false);
|
|
2829
|
+
const [lockLightMode, setLockLightMode] = useState2(
|
|
2830
|
+
void 0
|
|
2831
|
+
);
|
|
2829
2832
|
const onReady = useCallback2(
|
|
2830
2833
|
(canvas) => {
|
|
2831
2834
|
canvasRef.current = canvas;
|
|
@@ -2873,6 +2876,9 @@ function useViewCanvas(options) {
|
|
|
2873
2876
|
if (opts?.invertBackground !== void 0) {
|
|
2874
2877
|
setBackgroundInverted(canvas, opts.invertBackground);
|
|
2875
2878
|
}
|
|
2879
|
+
if (canvas.lockLightMode !== void 0) {
|
|
2880
|
+
setLockLightMode(canvas.lockLightMode);
|
|
2881
|
+
}
|
|
2876
2882
|
if (opts?.autoFitToBackground !== false && canvas.backgroundImage) {
|
|
2877
2883
|
fitViewportToBackground(canvas);
|
|
2878
2884
|
syncZoom(canvasRef, setZoom);
|
|
@@ -2969,70 +2975,29 @@ function useViewCanvas(options) {
|
|
|
2969
2975
|
/** Batch-update multiple objects' visual styles in one render. Keyed by `data.id`. */
|
|
2970
2976
|
setObjectStyles,
|
|
2971
2977
|
/** Apply a visual style to all objects whose `data.type` matches. */
|
|
2972
|
-
setObjectStyleByType
|
|
2978
|
+
setObjectStyleByType,
|
|
2979
|
+
/** Whether the canvas is locked to light mode. Read from loaded canvas data. */
|
|
2980
|
+
lockLightMode
|
|
2973
2981
|
}),
|
|
2974
2982
|
// Only reactive state in deps — refs and stable callbacks are omitted
|
|
2975
2983
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
2976
|
-
[zoom, objects, isLoading, viewport]
|
|
2984
|
+
[zoom, objects, isLoading, viewport, lockLightMode]
|
|
2977
2985
|
);
|
|
2978
2986
|
}
|
|
2979
2987
|
|
|
2980
2988
|
// src/hooks/useCanvasEvents.ts
|
|
2981
2989
|
import { useEffect as useEffect4, useRef as useRef4 } from "react";
|
|
2982
2990
|
|
|
2983
|
-
// src/context/
|
|
2991
|
+
// src/context/CanvasRefContext.ts
|
|
2984
2992
|
import { createContext, useContext } from "react";
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
options,
|
|
2989
|
-
children
|
|
2990
|
-
}) {
|
|
2991
|
-
const canvas = useViewCanvas(options);
|
|
2992
|
-
return /* @__PURE__ */ jsx2(ViewCanvasContext.Provider, { value: canvas, children });
|
|
2993
|
-
}
|
|
2994
|
-
function useViewCanvasContext() {
|
|
2995
|
-
const ctx = useContext(ViewCanvasContext);
|
|
2996
|
-
if (ctx === null) {
|
|
2997
|
-
throw new Error(
|
|
2998
|
-
"useViewCanvasContext must be used within a <ViewCanvasProvider>"
|
|
2999
|
-
);
|
|
3000
|
-
}
|
|
3001
|
-
return ctx;
|
|
3002
|
-
}
|
|
3003
|
-
function useViewCanvasContextSafe() {
|
|
3004
|
-
return useContext(ViewCanvasContext);
|
|
3005
|
-
}
|
|
3006
|
-
|
|
3007
|
-
// src/context/EditCanvasContext.tsx
|
|
3008
|
-
import { createContext as createContext2, useContext as useContext2 } from "react";
|
|
3009
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
3010
|
-
var EditCanvasContext = createContext2(null);
|
|
3011
|
-
function EditCanvasProvider({
|
|
3012
|
-
options,
|
|
3013
|
-
children
|
|
3014
|
-
}) {
|
|
3015
|
-
const canvas = useEditCanvas(options);
|
|
3016
|
-
return /* @__PURE__ */ jsx3(EditCanvasContext.Provider, { value: canvas, children });
|
|
3017
|
-
}
|
|
3018
|
-
function useEditCanvasContext() {
|
|
3019
|
-
const ctx = useContext2(EditCanvasContext);
|
|
3020
|
-
if (ctx === null) {
|
|
3021
|
-
throw new Error(
|
|
3022
|
-
"useEditCanvasContext must be used within an <EditCanvasProvider>"
|
|
3023
|
-
);
|
|
3024
|
-
}
|
|
3025
|
-
return ctx;
|
|
3026
|
-
}
|
|
3027
|
-
function useEditCanvasContextSafe() {
|
|
3028
|
-
return useContext2(EditCanvasContext);
|
|
2993
|
+
var CanvasRefContext = createContext(null);
|
|
2994
|
+
function useCanvasRefContext() {
|
|
2995
|
+
return useContext(CanvasRefContext);
|
|
3029
2996
|
}
|
|
3030
2997
|
|
|
3031
2998
|
// src/context/useCanvasRef.ts
|
|
3032
2999
|
function useCanvasRef() {
|
|
3033
|
-
|
|
3034
|
-
const editCtx = useEditCanvasContextSafe();
|
|
3035
|
-
return viewCtx?.canvasRef ?? editCtx?.canvasRef ?? null;
|
|
3000
|
+
return useCanvasRefContext();
|
|
3036
3001
|
}
|
|
3037
3002
|
|
|
3038
3003
|
// src/hooks/useCanvasEvents.ts
|
|
@@ -3187,6 +3152,150 @@ function useCanvasClick(canvasRefOrOnClick, onClickOrOptions, maybeOptions) {
|
|
|
3187
3152
|
}, [resolvedCanvasRef]);
|
|
3188
3153
|
}
|
|
3189
3154
|
|
|
3155
|
+
// src/context/EditCanvasContext.tsx
|
|
3156
|
+
import { createContext as createContext2, useContext as useContext2, useMemo as useMemo4 } from "react";
|
|
3157
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
3158
|
+
var EditViewportContext = createContext2(null);
|
|
3159
|
+
var EditStateContext = createContext2(null);
|
|
3160
|
+
function EditCanvasProvider({
|
|
3161
|
+
options,
|
|
3162
|
+
children
|
|
3163
|
+
}) {
|
|
3164
|
+
const canvas = useEditCanvas(options);
|
|
3165
|
+
const viewportValue = useMemo4(
|
|
3166
|
+
() => ({ zoom: canvas.zoom, viewport: canvas.viewport }),
|
|
3167
|
+
[canvas.zoom, canvas.viewport]
|
|
3168
|
+
);
|
|
3169
|
+
const stateValue = useMemo4(
|
|
3170
|
+
() => ({
|
|
3171
|
+
onReady: canvas.onReady,
|
|
3172
|
+
objects: canvas.objects,
|
|
3173
|
+
isLoading: canvas.isLoading,
|
|
3174
|
+
selected: canvas.selected,
|
|
3175
|
+
isEditingVertices: canvas.isEditingVertices,
|
|
3176
|
+
setMode: canvas.setMode,
|
|
3177
|
+
setBackground: canvas.setBackground,
|
|
3178
|
+
isDirty: canvas.isDirty,
|
|
3179
|
+
resetDirty: canvas.resetDirty,
|
|
3180
|
+
markDirty: canvas.markDirty,
|
|
3181
|
+
undo: canvas.undo,
|
|
3182
|
+
redo: canvas.redo,
|
|
3183
|
+
canUndo: canvas.canUndo,
|
|
3184
|
+
canRedo: canvas.canRedo,
|
|
3185
|
+
lockLightMode: canvas.lockLightMode,
|
|
3186
|
+
setLockLightMode: canvas.setLockLightMode
|
|
3187
|
+
}),
|
|
3188
|
+
// Only reactive state — stable callbacks omitted
|
|
3189
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3190
|
+
[
|
|
3191
|
+
canvas.objects,
|
|
3192
|
+
canvas.isLoading,
|
|
3193
|
+
canvas.selected,
|
|
3194
|
+
canvas.isEditingVertices,
|
|
3195
|
+
canvas.isDirty,
|
|
3196
|
+
canvas.canUndo,
|
|
3197
|
+
canvas.canRedo,
|
|
3198
|
+
canvas.lockLightMode
|
|
3199
|
+
]
|
|
3200
|
+
);
|
|
3201
|
+
return /* @__PURE__ */ jsx2(CanvasRefContext.Provider, { value: canvas.canvasRef, children: /* @__PURE__ */ jsx2(EditViewportContext.Provider, { value: viewportValue, children: /* @__PURE__ */ jsx2(EditStateContext.Provider, { value: stateValue, children }) }) });
|
|
3202
|
+
}
|
|
3203
|
+
function useEditCanvasContext() {
|
|
3204
|
+
const canvasRef = useContext2(CanvasRefContext);
|
|
3205
|
+
const viewport = useContext2(EditViewportContext);
|
|
3206
|
+
const state = useContext2(EditStateContext);
|
|
3207
|
+
if (canvasRef === null || viewport === null || state === null) {
|
|
3208
|
+
throw new Error(
|
|
3209
|
+
"useEditCanvasContext must be used within an <EditCanvasProvider>"
|
|
3210
|
+
);
|
|
3211
|
+
}
|
|
3212
|
+
return useMemo4(
|
|
3213
|
+
() => ({ canvasRef, ...viewport, ...state }),
|
|
3214
|
+
[canvasRef, viewport, state]
|
|
3215
|
+
);
|
|
3216
|
+
}
|
|
3217
|
+
function useEditCanvasViewport() {
|
|
3218
|
+
const ctx = useContext2(EditViewportContext);
|
|
3219
|
+
if (ctx === null) {
|
|
3220
|
+
throw new Error(
|
|
3221
|
+
"useEditCanvasViewport must be used within an <EditCanvasProvider>"
|
|
3222
|
+
);
|
|
3223
|
+
}
|
|
3224
|
+
return ctx;
|
|
3225
|
+
}
|
|
3226
|
+
function useEditCanvasState() {
|
|
3227
|
+
const ctx = useContext2(EditStateContext);
|
|
3228
|
+
if (ctx === null) {
|
|
3229
|
+
throw new Error(
|
|
3230
|
+
"useEditCanvasState must be used within an <EditCanvasProvider>"
|
|
3231
|
+
);
|
|
3232
|
+
}
|
|
3233
|
+
return ctx;
|
|
3234
|
+
}
|
|
3235
|
+
|
|
3236
|
+
// src/context/ViewCanvasContext.tsx
|
|
3237
|
+
import { createContext as createContext3, useContext as useContext3, useMemo as useMemo5 } from "react";
|
|
3238
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
3239
|
+
var ViewViewportContext = createContext3(null);
|
|
3240
|
+
var ViewStateContext = createContext3(null);
|
|
3241
|
+
function ViewCanvasProvider({
|
|
3242
|
+
options,
|
|
3243
|
+
children
|
|
3244
|
+
}) {
|
|
3245
|
+
const canvas = useViewCanvas(options);
|
|
3246
|
+
const viewportValue = useMemo5(
|
|
3247
|
+
() => ({ zoom: canvas.zoom, viewport: canvas.viewport }),
|
|
3248
|
+
[canvas.zoom, canvas.viewport]
|
|
3249
|
+
);
|
|
3250
|
+
const stateValue = useMemo5(
|
|
3251
|
+
() => ({
|
|
3252
|
+
onReady: canvas.onReady,
|
|
3253
|
+
objects: canvas.objects,
|
|
3254
|
+
isLoading: canvas.isLoading,
|
|
3255
|
+
setObjectStyle: canvas.setObjectStyle,
|
|
3256
|
+
setObjectStyles: canvas.setObjectStyles,
|
|
3257
|
+
setObjectStyleByType: canvas.setObjectStyleByType,
|
|
3258
|
+
lockLightMode: canvas.lockLightMode
|
|
3259
|
+
}),
|
|
3260
|
+
// Only reactive state — stable callbacks omitted
|
|
3261
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
3262
|
+
[canvas.objects, canvas.isLoading, canvas.lockLightMode]
|
|
3263
|
+
);
|
|
3264
|
+
return /* @__PURE__ */ jsx3(CanvasRefContext.Provider, { value: canvas.canvasRef, children: /* @__PURE__ */ jsx3(ViewViewportContext.Provider, { value: viewportValue, children: /* @__PURE__ */ jsx3(ViewStateContext.Provider, { value: stateValue, children }) }) });
|
|
3265
|
+
}
|
|
3266
|
+
function useViewCanvasContext() {
|
|
3267
|
+
const canvasRef = useContext3(CanvasRefContext);
|
|
3268
|
+
const viewport = useContext3(ViewViewportContext);
|
|
3269
|
+
const state = useContext3(ViewStateContext);
|
|
3270
|
+
if (canvasRef === null || viewport === null || state === null) {
|
|
3271
|
+
throw new Error(
|
|
3272
|
+
"useViewCanvasContext must be used within a <ViewCanvasProvider>"
|
|
3273
|
+
);
|
|
3274
|
+
}
|
|
3275
|
+
return useMemo5(
|
|
3276
|
+
() => ({ canvasRef, ...viewport, ...state }),
|
|
3277
|
+
[canvasRef, viewport, state]
|
|
3278
|
+
);
|
|
3279
|
+
}
|
|
3280
|
+
function useViewCanvasViewport() {
|
|
3281
|
+
const ctx = useContext3(ViewViewportContext);
|
|
3282
|
+
if (ctx === null) {
|
|
3283
|
+
throw new Error(
|
|
3284
|
+
"useViewCanvasViewport must be used within a <ViewCanvasProvider>"
|
|
3285
|
+
);
|
|
3286
|
+
}
|
|
3287
|
+
return ctx;
|
|
3288
|
+
}
|
|
3289
|
+
function useViewCanvasState() {
|
|
3290
|
+
const ctx = useContext3(ViewStateContext);
|
|
3291
|
+
if (ctx === null) {
|
|
3292
|
+
throw new Error(
|
|
3293
|
+
"useViewCanvasState must be used within a <ViewCanvasProvider>"
|
|
3294
|
+
);
|
|
3295
|
+
}
|
|
3296
|
+
return ctx;
|
|
3297
|
+
}
|
|
3298
|
+
|
|
3190
3299
|
// src/overlay/ObjectOverlay.tsx
|
|
3191
3300
|
import { useEffect as useEffect7, useRef as useRef7 } from "react";
|
|
3192
3301
|
import { Stack } from "@mui/material";
|
|
@@ -3594,8 +3703,12 @@ export {
|
|
|
3594
3703
|
useCanvasTooltip,
|
|
3595
3704
|
useEditCanvas,
|
|
3596
3705
|
useEditCanvasContext,
|
|
3706
|
+
useEditCanvasState,
|
|
3707
|
+
useEditCanvasViewport,
|
|
3597
3708
|
useViewCanvas,
|
|
3598
3709
|
useViewCanvasContext,
|
|
3710
|
+
useViewCanvasState,
|
|
3711
|
+
useViewCanvasViewport,
|
|
3599
3712
|
util5 as util
|
|
3600
3713
|
};
|
|
3601
3714
|
//# sourceMappingURL=index.js.map
|