@bwp-web/canvas 0.6.2 → 0.7.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/index.d.ts CHANGED
@@ -11,8 +11,12 @@ export { useCanvasTooltip } from './hooks';
11
11
  export type { UseCanvasTooltipOptions, CanvasTooltipState } from './hooks';
12
12
  export { useCanvasClick } from './hooks';
13
13
  export type { UseCanvasClickOptions } from './hooks';
14
- export { useObjectOverlay } from './hooks';
15
- export type { UseObjectOverlayOptions } from './hooks';
14
+ export { ObjectOverlay } from './overlay';
15
+ export type { ObjectOverlayProps } from './overlay';
16
+ export { OverlayContent } from './overlay';
17
+ export type { OverlayContentProps } from './overlay';
18
+ export { FixedSizeContent } from './overlay';
19
+ export type { FixedSizeContentProps } from './overlay';
16
20
  export type { Point2D, ShapeStyleOptions, SnappingOptions, InteractionModeOptions, SnappableInteractionOptions, DragBounds, ModeSetup, CanvasJSON, } from './types';
17
21
  export type { ObjectDataType } from './fabricAugmentation';
18
22
  export { createRectangle, createRectangleAtPoint, editRectangle, } from './shapes';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2976,18 +2976,24 @@ function useCanvasClick(canvasRef, onClick, options) {
2976
2976
  }, [canvasRef]);
2977
2977
  }
2978
2978
 
2979
- // src/hooks/useObjectOverlay.ts
2979
+ // src/overlay/ObjectOverlay.tsx
2980
2980
  import { useEffect as useEffect6, useRef as useRef7 } from "react";
2981
+ import { Stack } from "@mui/material";
2981
2982
  import { util as util4 } from "fabric";
2982
- function useObjectOverlay(canvasRef, object, options) {
2983
- const containerRef = useRef7(null);
2984
- const optionsRef = useRef7(options);
2985
- optionsRef.current = options;
2983
+ import { jsx as jsx2 } from "react/jsx-runtime";
2984
+ function ObjectOverlay({
2985
+ canvasRef,
2986
+ object,
2987
+ sx,
2988
+ children,
2989
+ ...rest
2990
+ }) {
2991
+ const stackRef = useRef7(null);
2986
2992
  useEffect6(() => {
2987
2993
  const canvas = canvasRef.current;
2988
2994
  if (!canvas || !object) return;
2989
2995
  function update() {
2990
- const el = containerRef.current;
2996
+ const el = stackRef.current;
2991
2997
  if (!el || !canvas || !object) return;
2992
2998
  const zoom = canvas.getZoom();
2993
2999
  const vt = canvas.viewportTransform;
@@ -2999,32 +3005,11 @@ function useObjectOverlay(canvasRef, object, options) {
2999
3005
  const screenWidth = actualWidth * zoom;
3000
3006
  const screenHeight = actualHeight * zoom;
3001
3007
  const angle = object.angle ?? 0;
3002
- const opts = optionsRef.current;
3003
- if (opts?.autoScaleContent !== false) {
3004
- el.style.left = `${screenCoords.x - actualWidth / 2}px`;
3005
- el.style.top = `${screenCoords.y - actualHeight / 2}px`;
3006
- el.style.width = `${actualWidth}px`;
3007
- el.style.height = `${actualHeight}px`;
3008
- el.style.transformOrigin = "center center";
3009
- el.style.transform = angle !== 0 ? `scale(${zoom}) rotate(${angle}deg)` : `scale(${zoom})`;
3010
- el.style.rotate = "";
3011
- el.style.setProperty("--overlay-scale", String(zoom));
3012
- if (opts?.textSelector) {
3013
- const textMinScale = opts?.textMinScale ?? 0.5;
3014
- const textEls = el.querySelectorAll(opts.textSelector);
3015
- const display = zoom < textMinScale ? "none" : "";
3016
- textEls.forEach((t) => {
3017
- t.style.display = display;
3018
- });
3019
- }
3020
- } else {
3021
- el.style.left = `${screenCoords.x - screenWidth / 2}px`;
3022
- el.style.top = `${screenCoords.y - screenHeight / 2}px`;
3023
- el.style.width = `${screenWidth}px`;
3024
- el.style.height = `${screenHeight}px`;
3025
- el.style.transform = "";
3026
- el.style.rotate = angle !== 0 ? `${angle}deg` : "";
3027
- }
3008
+ el.style.left = `${screenCoords.x - screenWidth / 2}px`;
3009
+ el.style.top = `${screenCoords.y - screenHeight / 2}px`;
3010
+ el.style.width = `${screenWidth}px`;
3011
+ el.style.height = `${screenHeight}px`;
3012
+ el.style.transform = angle !== 0 ? `rotate(${angle}deg)` : "";
3028
3013
  }
3029
3014
  update();
3030
3015
  canvas.on("after:render", update);
@@ -3038,7 +3023,169 @@ function useObjectOverlay(canvasRef, object, options) {
3038
3023
  object.off("rotating", update);
3039
3024
  };
3040
3025
  }, [canvasRef, object]);
3041
- return containerRef;
3026
+ if (!object) return null;
3027
+ return /* @__PURE__ */ jsx2(
3028
+ Stack,
3029
+ {
3030
+ ref: stackRef,
3031
+ sx: {
3032
+ position: "absolute",
3033
+ pointerEvents: "none",
3034
+ alignItems: "center",
3035
+ justifyContent: "center",
3036
+ zIndex: 1,
3037
+ overflow: "hidden",
3038
+ ...sx
3039
+ },
3040
+ ...rest,
3041
+ children
3042
+ }
3043
+ );
3044
+ }
3045
+
3046
+ // src/overlay/OverlayContent.tsx
3047
+ import { Stack as Stack2 } from "@mui/material";
3048
+ import { useEffect as useEffect7, useRef as useRef8 } from "react";
3049
+ import { jsx as jsx3 } from "react/jsx-runtime";
3050
+ function OverlayContent({
3051
+ children,
3052
+ padding = 4,
3053
+ maxScale = 2,
3054
+ sx,
3055
+ ...rest
3056
+ }) {
3057
+ const outerRef = useRef8(null);
3058
+ const innerRef = useRef8(null);
3059
+ useEffect7(() => {
3060
+ const outer = outerRef.current;
3061
+ const inner = innerRef.current;
3062
+ if (!outer || !inner) return;
3063
+ function fit() {
3064
+ if (!outer || !inner) return;
3065
+ const containerW = outer.clientWidth;
3066
+ const containerH = outer.clientHeight;
3067
+ const natW = inner.scrollWidth;
3068
+ const natH = inner.scrollHeight;
3069
+ if (natW === 0 || natH === 0 || containerW <= 0 || containerH <= 0) {
3070
+ inner.style.transform = "";
3071
+ inner.style.removeProperty("--overlay-scale");
3072
+ return;
3073
+ }
3074
+ const scale = Math.min(
3075
+ containerW / (natW + padding * 2),
3076
+ containerH / (natH + padding * 2),
3077
+ maxScale
3078
+ );
3079
+ inner.style.transform = `scale(${scale})`;
3080
+ inner.style.setProperty("--overlay-scale", String(scale));
3081
+ }
3082
+ const observer = new ResizeObserver(fit);
3083
+ observer.observe(outer);
3084
+ observer.observe(inner);
3085
+ fit();
3086
+ return () => observer.disconnect();
3087
+ }, [padding, maxScale]);
3088
+ return /* @__PURE__ */ jsx3(
3089
+ Stack2,
3090
+ {
3091
+ ref: outerRef,
3092
+ sx: {
3093
+ width: "100%",
3094
+ height: "100%",
3095
+ alignItems: "center",
3096
+ justifyContent: "center",
3097
+ overflow: "hidden",
3098
+ ...sx
3099
+ },
3100
+ ...rest,
3101
+ children: /* @__PURE__ */ jsx3(
3102
+ Stack2,
3103
+ {
3104
+ ref: innerRef,
3105
+ sx: {
3106
+ alignItems: "center",
3107
+ transformOrigin: "center center",
3108
+ flexShrink: 0,
3109
+ width: "max-content"
3110
+ },
3111
+ children
3112
+ }
3113
+ )
3114
+ }
3115
+ );
3116
+ }
3117
+
3118
+ // src/overlay/FixedSizeContent.tsx
3119
+ import { Stack as Stack3 } from "@mui/material";
3120
+ import { useEffect as useEffect8, useRef as useRef9 } from "react";
3121
+ import { jsx as jsx4 } from "react/jsx-runtime";
3122
+ function FixedSizeContent({
3123
+ children,
3124
+ hideOnOverflow = true,
3125
+ truncationPadding = 4,
3126
+ sx,
3127
+ ...rest
3128
+ }) {
3129
+ const ref = useRef9(null);
3130
+ const totalContentHeightRef = useRef9(0);
3131
+ useEffect8(() => {
3132
+ const el = ref.current;
3133
+ if (!el) return;
3134
+ let clipAncestor = el.parentElement;
3135
+ while (clipAncestor) {
3136
+ if (getComputedStyle(clipAncestor).overflow === "hidden") break;
3137
+ clipAncestor = clipAncestor.parentElement;
3138
+ }
3139
+ if (!clipAncestor) return;
3140
+ const ancestor = clipAncestor;
3141
+ totalContentHeightRef.current = el.parentElement?.scrollHeight ?? 0;
3142
+ function check() {
3143
+ requestAnimationFrame(() => {
3144
+ if (!el) return;
3145
+ const containerRect = ancestor.getBoundingClientRect();
3146
+ el.style.maxWidth = `${Math.max(0, containerRect.width - truncationPadding * 2)}px`;
3147
+ if (!hideOnOverflow) return;
3148
+ const fits = containerRect.height >= totalContentHeightRef.current;
3149
+ if (fits && el.style.display === "none") {
3150
+ el.style.display = "";
3151
+ totalContentHeightRef.current = el.parentElement?.scrollHeight ?? 0;
3152
+ if (containerRect.height < totalContentHeightRef.current) {
3153
+ el.style.display = "none";
3154
+ }
3155
+ } else if (!fits && el.style.display !== "none") {
3156
+ el.style.display = "none";
3157
+ }
3158
+ if (el.style.display !== "none") {
3159
+ totalContentHeightRef.current = el.parentElement?.scrollHeight ?? 0;
3160
+ }
3161
+ });
3162
+ }
3163
+ const observer = new ResizeObserver(check);
3164
+ observer.observe(ancestor);
3165
+ check();
3166
+ return () => observer.disconnect();
3167
+ }, [hideOnOverflow, truncationPadding]);
3168
+ return /* @__PURE__ */ jsx4(
3169
+ Stack3,
3170
+ {
3171
+ ref,
3172
+ sx: {
3173
+ transform: "scale(calc(1 / var(--overlay-scale, 1)))",
3174
+ transformOrigin: "center center",
3175
+ flexShrink: 0,
3176
+ width: "max-content",
3177
+ overflow: "hidden",
3178
+ "& > *": {
3179
+ maxWidth: "100%",
3180
+ overflow: "hidden",
3181
+ textOverflow: "ellipsis"
3182
+ },
3183
+ ...sx
3184
+ },
3185
+ ...rest,
3186
+ children
3187
+ }
3188
+ );
3042
3189
  }
3043
3190
 
3044
3191
  // src/index.ts
@@ -3062,6 +3209,9 @@ export {
3062
3209
  Canvas2 as FabricCanvas,
3063
3210
  FabricImage3 as FabricImage,
3064
3211
  FabricObject5 as FabricObject,
3212
+ FixedSizeContent,
3213
+ ObjectOverlay,
3214
+ OverlayContent,
3065
3215
  Point9 as Point,
3066
3216
  Polygon5 as Polygon,
3067
3217
  Rect6 as Rect,
@@ -3107,7 +3257,6 @@ export {
3107
3257
  useCanvasEvents,
3108
3258
  useCanvasTooltip,
3109
3259
  useEditCanvas,
3110
- useObjectOverlay,
3111
3260
  useViewCanvas,
3112
3261
  util5 as util
3113
3262
  };