@bwp-web/canvas 0.7.0 → 0.8.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.
- package/dist/index.cjs +84 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -1
- package/dist/index.js.map +1 -1
- package/dist/overlay/FixedSizeContent.d.ts.map +1 -1
- package/dist/overlay/ObjectOverlay.d.ts.map +1 -1
- package/dist/overlay/OverlayBadge.d.ts +51 -0
- package/dist/overlay/OverlayBadge.d.ts.map +1 -0
- package/dist/overlay/OverlayContent.d.ts.map +1 -1
- package/dist/overlay/index.d.ts +2 -0
- package/dist/overlay/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -32,6 +32,7 @@ __export(index_exports, {
|
|
|
32
32
|
FabricObject: () => import_fabric19.FabricObject,
|
|
33
33
|
FixedSizeContent: () => FixedSizeContent,
|
|
34
34
|
ObjectOverlay: () => ObjectOverlay,
|
|
35
|
+
OverlayBadge: () => OverlayBadge,
|
|
35
36
|
OverlayContent: () => OverlayContent,
|
|
36
37
|
Point: () => import_fabric19.Point,
|
|
37
38
|
Polygon: () => import_fabric19.Polygon,
|
|
@@ -3103,7 +3104,6 @@ function ObjectOverlay({
|
|
|
3103
3104
|
alignItems: "center",
|
|
3104
3105
|
justifyContent: "center",
|
|
3105
3106
|
zIndex: 1,
|
|
3106
|
-
overflow: "hidden",
|
|
3107
3107
|
...sx
|
|
3108
3108
|
},
|
|
3109
3109
|
...rest,
|
|
@@ -3172,6 +3172,7 @@ function OverlayContent({
|
|
|
3172
3172
|
{
|
|
3173
3173
|
ref: innerRef,
|
|
3174
3174
|
sx: {
|
|
3175
|
+
alignItems: "center",
|
|
3175
3176
|
transformOrigin: "center center",
|
|
3176
3177
|
flexShrink: 0,
|
|
3177
3178
|
width: "max-content"
|
|
@@ -3243,6 +3244,7 @@ function FixedSizeContent({
|
|
|
3243
3244
|
flexShrink: 0,
|
|
3244
3245
|
width: "max-content",
|
|
3245
3246
|
overflow: "hidden",
|
|
3247
|
+
alignItems: "center",
|
|
3246
3248
|
"& > *": {
|
|
3247
3249
|
maxWidth: "100%",
|
|
3248
3250
|
overflow: "hidden",
|
|
@@ -3256,6 +3258,86 @@ function FixedSizeContent({
|
|
|
3256
3258
|
);
|
|
3257
3259
|
}
|
|
3258
3260
|
|
|
3261
|
+
// src/overlay/OverlayBadge.tsx
|
|
3262
|
+
var import_material4 = require("@mui/material");
|
|
3263
|
+
var import_react11 = require("react");
|
|
3264
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
3265
|
+
function toPx(v) {
|
|
3266
|
+
if (v === void 0) return void 0;
|
|
3267
|
+
return typeof v === "number" ? `${v}px` : v;
|
|
3268
|
+
}
|
|
3269
|
+
function OverlayBadge({
|
|
3270
|
+
children,
|
|
3271
|
+
maxScale = 2,
|
|
3272
|
+
minScale = 0.75,
|
|
3273
|
+
top,
|
|
3274
|
+
right,
|
|
3275
|
+
bottom,
|
|
3276
|
+
left,
|
|
3277
|
+
sx,
|
|
3278
|
+
...rest
|
|
3279
|
+
}) {
|
|
3280
|
+
const ref = (0, import_react11.useRef)(null);
|
|
3281
|
+
const baseSize = (0, import_react11.useRef)(null);
|
|
3282
|
+
(0, import_react11.useEffect)(() => {
|
|
3283
|
+
const el = ref.current;
|
|
3284
|
+
if (!el) return;
|
|
3285
|
+
const ancestor = el.parentElement;
|
|
3286
|
+
if (!ancestor) return;
|
|
3287
|
+
function update() {
|
|
3288
|
+
requestAnimationFrame(() => {
|
|
3289
|
+
if (!el || !ancestor) return;
|
|
3290
|
+
const containerW = ancestor.clientWidth;
|
|
3291
|
+
const containerH = ancestor.clientHeight;
|
|
3292
|
+
if (containerW <= 0 || containerH <= 0) {
|
|
3293
|
+
el.style.transform = "";
|
|
3294
|
+
return;
|
|
3295
|
+
}
|
|
3296
|
+
if (!baseSize.current) {
|
|
3297
|
+
baseSize.current = { w: containerW, h: containerH };
|
|
3298
|
+
}
|
|
3299
|
+
const ratio = Math.min(
|
|
3300
|
+
containerW / baseSize.current.w,
|
|
3301
|
+
containerH / baseSize.current.h
|
|
3302
|
+
);
|
|
3303
|
+
const ownScale = Math.max(minScale, Math.min(ratio, maxScale));
|
|
3304
|
+
const overlayScale = parseFloat(
|
|
3305
|
+
getComputedStyle(el).getPropertyValue("--overlay-scale")
|
|
3306
|
+
) || 1;
|
|
3307
|
+
el.style.transform = `scale(${ownScale / overlayScale})`;
|
|
3308
|
+
});
|
|
3309
|
+
}
|
|
3310
|
+
const observer = new ResizeObserver(update);
|
|
3311
|
+
observer.observe(ancestor);
|
|
3312
|
+
update();
|
|
3313
|
+
return () => {
|
|
3314
|
+
observer.disconnect();
|
|
3315
|
+
baseSize.current = null;
|
|
3316
|
+
};
|
|
3317
|
+
}, [maxScale, minScale]);
|
|
3318
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
3319
|
+
import_material4.Stack,
|
|
3320
|
+
{
|
|
3321
|
+
ref,
|
|
3322
|
+
sx: {
|
|
3323
|
+
position: "absolute",
|
|
3324
|
+
top: toPx(top),
|
|
3325
|
+
right: toPx(right),
|
|
3326
|
+
bottom: toPx(bottom),
|
|
3327
|
+
left: toPx(left),
|
|
3328
|
+
transformOrigin: "center center",
|
|
3329
|
+
pointerEvents: "auto",
|
|
3330
|
+
width: "max-content",
|
|
3331
|
+
height: "max-content",
|
|
3332
|
+
flexShrink: 0,
|
|
3333
|
+
...sx
|
|
3334
|
+
},
|
|
3335
|
+
...rest,
|
|
3336
|
+
children
|
|
3337
|
+
}
|
|
3338
|
+
);
|
|
3339
|
+
}
|
|
3340
|
+
|
|
3259
3341
|
// src/index.ts
|
|
3260
3342
|
var import_fabric19 = require("fabric");
|
|
3261
3343
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -3272,6 +3354,7 @@ var import_fabric19 = require("fabric");
|
|
|
3272
3354
|
FabricObject,
|
|
3273
3355
|
FixedSizeContent,
|
|
3274
3356
|
ObjectOverlay,
|
|
3357
|
+
OverlayBadge,
|
|
3275
3358
|
OverlayContent,
|
|
3276
3359
|
Point,
|
|
3277
3360
|
Polygon,
|