@excalidraw/common 0.18.0-60b2758 → 0.18.0-699826
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/dev/index.js +146 -24
- package/dist/dev/index.js.map +3 -3
- package/dist/prod/index.js +3 -3
- package/dist/types/common/src/appEventBus.d.ts +27 -0
- package/dist/types/common/src/colors.d.ts +13 -13
- package/dist/types/common/src/constants.d.ts +1 -2
- package/dist/types/common/src/index.d.ts +2 -0
- package/dist/types/common/src/utils.d.ts +1 -3
- package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
- package/dist/types/element/src/Scene.d.ts +7 -3
- package/dist/types/element/src/arrowheads.d.ts +3 -0
- package/dist/types/element/src/binding.d.ts +3 -4
- package/dist/types/element/src/bounds.d.ts +22 -3
- package/dist/types/element/src/duplicate.d.ts +1 -0
- package/dist/types/element/src/elbowArrow.d.ts +2 -0
- package/dist/types/element/src/frame.d.ts +7 -6
- package/dist/types/element/src/index.d.ts +1 -0
- package/dist/types/element/src/linearElementEditor.d.ts +5 -2
- package/dist/types/element/src/mutateElement.d.ts +2 -0
- package/dist/types/element/src/selection.d.ts +8 -4
- package/dist/types/element/src/shape.d.ts +1 -1
- package/dist/types/element/src/textElement.d.ts +1 -1
- package/dist/types/element/src/textWrapping.d.ts +26 -0
- package/dist/types/element/src/typeChecks.d.ts +1 -0
- package/dist/types/element/src/types.d.ts +4 -1
- package/dist/types/element/src/utils.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +17 -11
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +13 -9
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +139 -115
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +12 -8
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +19 -13
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +159 -0
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +12 -8
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionExport.d.ts +100 -364
- package/dist/types/excalidraw/actions/actionFrame.d.ts +24 -16
- package/dist/types/excalidraw/actions/actionGroup.d.ts +15 -11
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionLink.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionMenu.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionProperties.d.ts +15 -11
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +7 -5
- package/dist/types/excalidraw/actions/actionStyles.d.ts +6 -3
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +6 -4
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +6 -4
- package/dist/types/excalidraw/actions/index.d.ts +3 -0
- package/dist/types/excalidraw/actions/types.d.ts +1 -1
- package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
- package/dist/types/excalidraw/appState.d.ts +30 -26
- package/dist/types/excalidraw/clipboard.d.ts +4 -5
- package/dist/types/excalidraw/components/App.d.ts +53 -14
- package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
- package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
- package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
- package/dist/types/excalidraw/components/Range.d.ts +10 -4
- package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +4 -1
- package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
- package/dist/types/excalidraw/components/Toast.d.ts +8 -4
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -1
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
- package/dist/types/excalidraw/components/icons.d.ts +17 -8
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +9 -3
- package/dist/types/excalidraw/components/shapes.d.ts +7 -0
- package/dist/types/excalidraw/data/blob.d.ts +159 -156
- package/dist/types/excalidraw/data/filesystem.d.ts +3 -5
- package/dist/types/excalidraw/data/index.d.ts +2 -3
- package/dist/types/excalidraw/data/json.d.ts +90 -80
- package/dist/types/excalidraw/data/resave.d.ts +7 -2
- package/dist/types/excalidraw/eraser/index.d.ts +2 -3
- package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
- package/dist/types/excalidraw/lasso/index.d.ts +2 -3
- package/dist/types/excalidraw/renderer/animation.d.ts +4 -1
- package/dist/types/excalidraw/scene/Renderer.d.ts +425 -19
- package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
- package/dist/types/excalidraw/types.d.ts +103 -8
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +5 -1
- package/dist/types/fractional-indexing/src/index.d.ts +29 -0
- package/dist/types/math/src/constants.d.ts +0 -1
- package/dist/types/math/src/curve.d.ts +4 -1
- package/dist/types/math/src/point.d.ts +2 -1
- package/dist/types/utils/src/index.d.ts +1 -2
- package/package.json +1 -1
- package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
- package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
- package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -15
- package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -8
- package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +0 -24
- package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -11
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -84
- package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
- package/dist/types/excalidraw/index.d.ts +0 -48
- package/dist/types/excalidraw/polyfill.d.ts +0 -2
- package/dist/types/utils/src/bbox.d.ts +0 -9
- package/dist/types/utils/src/withinBounds.d.ts +0 -19
package/dist/dev/index.js
CHANGED
|
@@ -1394,7 +1394,10 @@ var cssInvert = (r, g, b, percent) => {
|
|
|
1394
1394
|
const invertedB = invertComponent(b);
|
|
1395
1395
|
return { r: invertedR, g: invertedG, b: invertedB };
|
|
1396
1396
|
};
|
|
1397
|
-
var applyDarkModeFilter = (color) => {
|
|
1397
|
+
var applyDarkModeFilter = (color, enable = true) => {
|
|
1398
|
+
if (!enable) {
|
|
1399
|
+
return color;
|
|
1400
|
+
}
|
|
1398
1401
|
const cached = DARK_MODE_COLORS_CACHE?.get(color);
|
|
1399
1402
|
if (cached) {
|
|
1400
1403
|
return cached;
|
|
@@ -1836,8 +1839,10 @@ var DEFAULT_UI_OPTIONS = {
|
|
|
1836
1839
|
var MAX_DECIMALS_FOR_SVG_EXPORT = 2;
|
|
1837
1840
|
var EXPORT_SCALES = [1, 2, 3];
|
|
1838
1841
|
var DEFAULT_EXPORT_PADDING = 10;
|
|
1839
|
-
var
|
|
1840
|
-
|
|
1842
|
+
var DEFAULT_IMAGE_OPTIONS = {
|
|
1843
|
+
maxWidthOrHeight: 1440,
|
|
1844
|
+
maxFileSizeBytes: 4 * 1024 * 1024
|
|
1845
|
+
};
|
|
1841
1846
|
var SVG_NS = "http://www.w3.org/2000/svg";
|
|
1842
1847
|
var SVG_DOCUMENT_PREAMBLE = `<?xml version="1.0" standalone="no"?>
|
|
1843
1848
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
@@ -2484,7 +2489,7 @@ var isInteractive = (target) => {
|
|
|
2484
2489
|
return isInputLike(target) || target instanceof Element && !!target.closest("label, button");
|
|
2485
2490
|
};
|
|
2486
2491
|
var isWritableElement = (target) => target instanceof HTMLElement && target.dataset.type === "wysiwyg" || target instanceof HTMLBRElement || // newline in wysiwyg
|
|
2487
|
-
target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password" || target.type === "search");
|
|
2492
|
+
target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password" || target.type === "search") || target instanceof HTMLElement && target.closest(".cm-editor") !== null;
|
|
2488
2493
|
var getFontFamilyString = ({
|
|
2489
2494
|
fontFamily
|
|
2490
2495
|
}) => {
|
|
@@ -2529,32 +2534,23 @@ var debounce = (fn, timeout) => {
|
|
|
2529
2534
|
};
|
|
2530
2535
|
return ret;
|
|
2531
2536
|
};
|
|
2532
|
-
var throttleRAF = (fn
|
|
2537
|
+
var throttleRAF = (fn) => {
|
|
2533
2538
|
let timerId = null;
|
|
2534
2539
|
let lastArgs = null;
|
|
2535
|
-
|
|
2536
|
-
const scheduleFunc = (args) => {
|
|
2540
|
+
const scheduleFunc = () => {
|
|
2537
2541
|
timerId = window.requestAnimationFrame(() => {
|
|
2538
2542
|
timerId = null;
|
|
2539
|
-
|
|
2543
|
+
const args = lastArgs;
|
|
2540
2544
|
lastArgs = null;
|
|
2541
|
-
if (
|
|
2542
|
-
|
|
2543
|
-
lastArgsTrailing = null;
|
|
2544
|
-
scheduleFunc(lastArgs);
|
|
2545
|
+
if (args) {
|
|
2546
|
+
fn(...args);
|
|
2545
2547
|
}
|
|
2546
2548
|
});
|
|
2547
2549
|
};
|
|
2548
2550
|
const ret = (...args) => {
|
|
2549
|
-
if (isTestEnv()) {
|
|
2550
|
-
fn(...args);
|
|
2551
|
-
return;
|
|
2552
|
-
}
|
|
2553
2551
|
lastArgs = args;
|
|
2554
2552
|
if (timerId === null) {
|
|
2555
|
-
scheduleFunc(
|
|
2556
|
-
} else if (opts?.trailing) {
|
|
2557
|
-
lastArgsTrailing = args;
|
|
2553
|
+
scheduleFunc();
|
|
2558
2554
|
}
|
|
2559
2555
|
};
|
|
2560
2556
|
ret.flush = () => {
|
|
@@ -2563,12 +2559,12 @@ var throttleRAF = (fn, opts) => {
|
|
|
2563
2559
|
timerId = null;
|
|
2564
2560
|
}
|
|
2565
2561
|
if (lastArgs) {
|
|
2566
|
-
fn(...
|
|
2567
|
-
lastArgs =
|
|
2562
|
+
fn(...lastArgs);
|
|
2563
|
+
lastArgs = null;
|
|
2568
2564
|
}
|
|
2569
2565
|
};
|
|
2570
2566
|
ret.cancel = () => {
|
|
2571
|
-
lastArgs =
|
|
2567
|
+
lastArgs = null;
|
|
2572
2568
|
if (timerId !== null) {
|
|
2573
2569
|
cancelAnimationFrame(timerId);
|
|
2574
2570
|
timerId = null;
|
|
@@ -3236,6 +3232,131 @@ var Emitter = class {
|
|
|
3236
3232
|
}
|
|
3237
3233
|
};
|
|
3238
3234
|
|
|
3235
|
+
// src/appEventBus.ts
|
|
3236
|
+
init_define_import_meta_env();
|
|
3237
|
+
var AppEventBus = class {
|
|
3238
|
+
constructor(behavior) {
|
|
3239
|
+
this.behavior = behavior;
|
|
3240
|
+
}
|
|
3241
|
+
emitters = /* @__PURE__ */ new Map();
|
|
3242
|
+
lastPayload = /* @__PURE__ */ new Map();
|
|
3243
|
+
emittedOnce = /* @__PURE__ */ new Set();
|
|
3244
|
+
getEmitter(name) {
|
|
3245
|
+
let emitter = this.emitters.get(name);
|
|
3246
|
+
if (!emitter) {
|
|
3247
|
+
emitter = new Emitter();
|
|
3248
|
+
this.emitters.set(name, emitter);
|
|
3249
|
+
}
|
|
3250
|
+
return emitter;
|
|
3251
|
+
}
|
|
3252
|
+
toPromiseValue(args) {
|
|
3253
|
+
return args.length === 1 ? args[0] : args;
|
|
3254
|
+
}
|
|
3255
|
+
on(name, callback) {
|
|
3256
|
+
const eventBehavior = this.behavior[name];
|
|
3257
|
+
const cachedPayload = this.lastPayload.get(name);
|
|
3258
|
+
if (callback) {
|
|
3259
|
+
if (eventBehavior.replay === "last" && cachedPayload) {
|
|
3260
|
+
queueMicrotask(() => callback(...cachedPayload));
|
|
3261
|
+
if (eventBehavior.cardinality === "once") {
|
|
3262
|
+
return () => {
|
|
3263
|
+
};
|
|
3264
|
+
}
|
|
3265
|
+
}
|
|
3266
|
+
return this.getEmitter(name).on(callback);
|
|
3267
|
+
}
|
|
3268
|
+
if (eventBehavior.cardinality !== "once" || eventBehavior.replay !== "last") {
|
|
3269
|
+
throw new Error(`Event "${String(name)}" requires a callback`);
|
|
3270
|
+
}
|
|
3271
|
+
if (cachedPayload) {
|
|
3272
|
+
return Promise.resolve(this.toPromiseValue(cachedPayload));
|
|
3273
|
+
}
|
|
3274
|
+
return new Promise((resolve) => {
|
|
3275
|
+
this.getEmitter(name).once((...args) => {
|
|
3276
|
+
resolve(this.toPromiseValue(args));
|
|
3277
|
+
});
|
|
3278
|
+
});
|
|
3279
|
+
}
|
|
3280
|
+
emit(name, ...args) {
|
|
3281
|
+
const eventBehavior = this.behavior[name];
|
|
3282
|
+
if (!isProdEnv()) {
|
|
3283
|
+
if (eventBehavior.cardinality === "once") {
|
|
3284
|
+
if (this.emittedOnce.has(name)) {
|
|
3285
|
+
throw new Error(`Event "${String(name)}" can only be emitted once`);
|
|
3286
|
+
}
|
|
3287
|
+
this.emittedOnce.add(name);
|
|
3288
|
+
}
|
|
3289
|
+
}
|
|
3290
|
+
if (eventBehavior.replay === "last") {
|
|
3291
|
+
this.lastPayload.set(name, args);
|
|
3292
|
+
}
|
|
3293
|
+
try {
|
|
3294
|
+
this.getEmitter(name).trigger(...args);
|
|
3295
|
+
} finally {
|
|
3296
|
+
if (eventBehavior.cardinality === "once") {
|
|
3297
|
+
this.getEmitter(name).clear();
|
|
3298
|
+
}
|
|
3299
|
+
}
|
|
3300
|
+
}
|
|
3301
|
+
clear() {
|
|
3302
|
+
this.lastPayload.clear();
|
|
3303
|
+
this.emittedOnce.clear();
|
|
3304
|
+
for (const emitter of this.emitters.values()) {
|
|
3305
|
+
emitter.clear();
|
|
3306
|
+
}
|
|
3307
|
+
this.emitters.clear();
|
|
3308
|
+
}
|
|
3309
|
+
};
|
|
3310
|
+
|
|
3311
|
+
// src/versionedSnapshotStore.ts
|
|
3312
|
+
init_define_import_meta_env();
|
|
3313
|
+
var VersionedSnapshotStore = class {
|
|
3314
|
+
constructor(initialValue, isEqual = Object.is) {
|
|
3315
|
+
this.isEqual = isEqual;
|
|
3316
|
+
this.value = initialValue;
|
|
3317
|
+
}
|
|
3318
|
+
version = 0;
|
|
3319
|
+
value;
|
|
3320
|
+
waiters = /* @__PURE__ */ new Set();
|
|
3321
|
+
subscribers = /* @__PURE__ */ new Set();
|
|
3322
|
+
getSnapshot() {
|
|
3323
|
+
return { version: this.version, value: this.value };
|
|
3324
|
+
}
|
|
3325
|
+
set(nextValue) {
|
|
3326
|
+
if (this.isEqual(this.value, nextValue)) {
|
|
3327
|
+
return false;
|
|
3328
|
+
}
|
|
3329
|
+
this.value = nextValue;
|
|
3330
|
+
this.version += 1;
|
|
3331
|
+
const snapshot = this.getSnapshot();
|
|
3332
|
+
for (const subscriber of this.subscribers) {
|
|
3333
|
+
subscriber(snapshot);
|
|
3334
|
+
}
|
|
3335
|
+
for (const waiter of this.waiters) {
|
|
3336
|
+
waiter(snapshot);
|
|
3337
|
+
}
|
|
3338
|
+
this.waiters.clear();
|
|
3339
|
+
return true;
|
|
3340
|
+
}
|
|
3341
|
+
update(updater) {
|
|
3342
|
+
return this.set(updater(this.value));
|
|
3343
|
+
}
|
|
3344
|
+
subscribe(subscriber) {
|
|
3345
|
+
this.subscribers.add(subscriber);
|
|
3346
|
+
return () => {
|
|
3347
|
+
this.subscribers.delete(subscriber);
|
|
3348
|
+
};
|
|
3349
|
+
}
|
|
3350
|
+
pull(sinceVersion = -1) {
|
|
3351
|
+
if (this.version !== sinceVersion) {
|
|
3352
|
+
return Promise.resolve(this.getSnapshot());
|
|
3353
|
+
}
|
|
3354
|
+
return new Promise((resolve) => {
|
|
3355
|
+
this.waiters.add(resolve);
|
|
3356
|
+
});
|
|
3357
|
+
}
|
|
3358
|
+
};
|
|
3359
|
+
|
|
3239
3360
|
// debug.ts
|
|
3240
3361
|
init_define_import_meta_env();
|
|
3241
3362
|
var lessPrecise = (num, precision = 5) => parseFloat(num.toPrecision(precision));
|
|
@@ -3409,6 +3530,7 @@ export {
|
|
|
3409
3530
|
ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO,
|
|
3410
3531
|
ARROW_LABEL_WIDTH_FRACTION,
|
|
3411
3532
|
ARROW_TYPE,
|
|
3533
|
+
AppEventBus,
|
|
3412
3534
|
BIND_MODE_TIMEOUT,
|
|
3413
3535
|
BOUND_TEXT_PADDING,
|
|
3414
3536
|
BinaryHeap,
|
|
@@ -3442,8 +3564,8 @@ export {
|
|
|
3442
3564
|
DEFAULT_FONT_SIZE,
|
|
3443
3565
|
DEFAULT_GRID_SIZE,
|
|
3444
3566
|
DEFAULT_GRID_STEP,
|
|
3567
|
+
DEFAULT_IMAGE_OPTIONS,
|
|
3445
3568
|
DEFAULT_LASER_COLOR,
|
|
3446
|
-
DEFAULT_MAX_IMAGE_WIDTH_OR_HEIGHT,
|
|
3447
3569
|
DEFAULT_PROPORTIONAL_RADIUS,
|
|
3448
3570
|
DEFAULT_REDUCED_GLOBAL_ALPHA,
|
|
3449
3571
|
DEFAULT_SIDEBAR,
|
|
@@ -3486,7 +3608,6 @@ export {
|
|
|
3486
3608
|
LINE_CONFIRM_THRESHOLD,
|
|
3487
3609
|
LINE_POLYGON_POINT_MERGE_DISTANCE,
|
|
3488
3610
|
LOCAL_FONT_PROTOCOL,
|
|
3489
|
-
MAX_ALLOWED_FILE_BYTES,
|
|
3490
3611
|
MAX_CUSTOM_COLORS_USED_IN_CANVAS,
|
|
3491
3612
|
MAX_DECIMALS_FOR_SVG_EXPORT,
|
|
3492
3613
|
MAX_ZOOM,
|
|
@@ -3534,6 +3655,7 @@ export {
|
|
|
3534
3655
|
VERSIONS,
|
|
3535
3656
|
VERSION_TIMEOUT,
|
|
3536
3657
|
VERTICAL_ALIGN,
|
|
3658
|
+
VersionedSnapshotStore,
|
|
3537
3659
|
WINDOWS_EMOJI_FALLBACK_FONT,
|
|
3538
3660
|
YOUTUBE_STATES,
|
|
3539
3661
|
ZOOM_STEP,
|