@excalidraw/common 0.18.0-4e471c107 → 0.18.0-5fffc47
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 +91 -25
- package/dist/dev/index.js.map +2 -2
- package/dist/prod/index.js +3 -3
- package/dist/types/common/src/constants.d.ts +24 -4
- package/dist/types/common/src/utils.d.ts +3 -0
- package/dist/types/element/src/Scene.d.ts +6 -2
- package/dist/types/element/src/align.d.ts +2 -1
- package/dist/types/element/src/bounds.d.ts +1 -1
- package/dist/types/element/src/delta.d.ts +16 -4
- package/dist/types/element/src/distribute.d.ts +2 -1
- package/dist/types/element/src/groups.d.ts +1 -0
- package/dist/types/element/src/index.d.ts +1 -0
- package/dist/types/element/src/linearElementEditor.d.ts +2 -1
- package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
- package/dist/types/element/src/renderElement.d.ts +4 -1
- package/dist/types/element/src/store.d.ts +6 -1
- package/dist/types/element/src/textElement.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +21 -9
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +14 -6
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +94 -41
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +45 -20
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +24 -12
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +14 -6
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionExport.d.ts +63 -27
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +16 -7
- package/dist/types/excalidraw/actions/actionFrame.d.ts +28 -12
- package/dist/types/excalidraw/actions/actionGroup.d.ts +14 -6
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +41 -6
- package/dist/types/excalidraw/actions/actionLink.d.ts +6 -2
- package/dist/types/excalidraw/actions/actionMenu.d.ts +7 -371
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +14 -6
- package/dist/types/excalidraw/actions/actionProperties.d.ts +122 -53
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionStyles.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +7 -3
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +7 -3
- package/dist/types/excalidraw/actions/index.d.ts +2 -2
- package/dist/types/excalidraw/actions/types.d.ts +1 -1
- package/dist/types/excalidraw/appState.d.ts +5 -1
- package/dist/types/excalidraw/clipboard.d.ts +64 -1
- package/dist/types/excalidraw/components/Actions.d.ts +17 -7
- package/dist/types/excalidraw/components/App.d.ts +10 -8
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +1 -0
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
- package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
- package/dist/types/excalidraw/components/Ellipsify.d.ts +4 -0
- package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -1
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
- package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
- package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
- package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
- package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +11 -0
- package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +1 -2
- package/dist/types/excalidraw/components/TextField.d.ts +1 -0
- package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +4 -2
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +2 -1
- package/dist/types/excalidraw/components/icons.d.ts +5 -0
- package/dist/types/excalidraw/components/shapes.d.ts +129 -1
- package/dist/types/excalidraw/data/blob.d.ts +3 -7
- package/dist/types/excalidraw/data/reconcile.d.ts +1 -0
- package/dist/types/excalidraw/data/restore.d.ts +6 -1
- package/dist/types/excalidraw/data/types.d.ts +4 -1
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
- package/dist/types/excalidraw/index.d.ts +2 -1
- package/dist/types/excalidraw/renderer/staticScene.d.ts +4 -1
- package/dist/types/excalidraw/types.d.ts +16 -6
- package/dist/types/math/src/segment.d.ts +1 -0
- package/package.json +1 -1
package/dist/dev/index.js
CHANGED
|
@@ -281,49 +281,48 @@ var BinaryHeap = class {
|
|
|
281
281
|
content = [];
|
|
282
282
|
sinkDown(idx) {
|
|
283
283
|
const node = this.content[idx];
|
|
284
|
+
const nodeScore = this.scoreFunction(node);
|
|
284
285
|
while (idx > 0) {
|
|
285
286
|
const parentN = (idx + 1 >> 1) - 1;
|
|
286
287
|
const parent = this.content[parentN];
|
|
287
|
-
if (
|
|
288
|
-
this.content[parentN] = node;
|
|
288
|
+
if (nodeScore < this.scoreFunction(parent)) {
|
|
289
289
|
this.content[idx] = parent;
|
|
290
290
|
idx = parentN;
|
|
291
291
|
} else {
|
|
292
292
|
break;
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
|
+
this.content[idx] = node;
|
|
295
296
|
}
|
|
296
297
|
bubbleUp(idx) {
|
|
297
298
|
const length = this.content.length;
|
|
298
299
|
const node = this.content[idx];
|
|
299
300
|
const score = this.scoreFunction(node);
|
|
300
301
|
while (true) {
|
|
301
|
-
const
|
|
302
|
-
const
|
|
303
|
-
let
|
|
304
|
-
let
|
|
302
|
+
const child1N = (idx + 1 << 1) - 1;
|
|
303
|
+
const child2N = child1N + 1;
|
|
304
|
+
let smallestIdx = idx;
|
|
305
|
+
let smallestScore = score;
|
|
305
306
|
if (child1N < length) {
|
|
306
|
-
const
|
|
307
|
-
child1Score
|
|
308
|
-
|
|
309
|
-
|
|
307
|
+
const child1Score = this.scoreFunction(this.content[child1N]);
|
|
308
|
+
if (child1Score < smallestScore) {
|
|
309
|
+
smallestIdx = child1N;
|
|
310
|
+
smallestScore = child1Score;
|
|
310
311
|
}
|
|
311
312
|
}
|
|
312
313
|
if (child2N < length) {
|
|
313
|
-
const
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
swap = child2N;
|
|
314
|
+
const child2Score = this.scoreFunction(this.content[child2N]);
|
|
315
|
+
if (child2Score < smallestScore) {
|
|
316
|
+
smallestIdx = child2N;
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
|
-
if (
|
|
320
|
-
this.content[idx] = this.content[swap];
|
|
321
|
-
this.content[swap] = node;
|
|
322
|
-
idx = swap;
|
|
323
|
-
} else {
|
|
319
|
+
if (smallestIdx === idx) {
|
|
324
320
|
break;
|
|
325
321
|
}
|
|
322
|
+
this.content[idx] = this.content[smallestIdx];
|
|
323
|
+
idx = smallestIdx;
|
|
326
324
|
}
|
|
325
|
+
this.content[idx] = node;
|
|
327
326
|
}
|
|
328
327
|
push(node) {
|
|
329
328
|
this.content.push(node);
|
|
@@ -647,13 +646,17 @@ var isAndroid = /\b(android)\b/i.test(navigator.userAgent);
|
|
|
647
646
|
var isFirefox = typeof window !== "undefined" && "netscape" in window && navigator.userAgent.indexOf("rv:") > 1 && navigator.userAgent.indexOf("Gecko") > 1;
|
|
648
647
|
var isChrome = navigator.userAgent.indexOf("Chrome") !== -1;
|
|
649
648
|
var isSafari = !isChrome && navigator.userAgent.indexOf("Safari") !== -1;
|
|
650
|
-
var isIOS = /iPad|iPhone
|
|
649
|
+
var isIOS = /iPad|iPhone/i.test(navigator.platform) || // iPadOS 13+
|
|
651
650
|
navigator.userAgent.includes("Mac") && "ontouchend" in document;
|
|
652
651
|
var isBrave = () => navigator.brave?.isBrave?.name === "isBrave";
|
|
652
|
+
var isMobile = isIOS || /android|webos|ipod|blackberry|iemobile|opera mini/i.test(
|
|
653
|
+
navigator.userAgent
|
|
654
|
+
) || /android|ios|ipod|blackberry|windows phone/i.test(navigator.platform);
|
|
653
655
|
var supportsResizeObserver = typeof window !== "undefined" && "ResizeObserver" in window;
|
|
654
656
|
var APP_NAME = "Excalidraw";
|
|
655
657
|
var TEXT_AUTOWRAP_THRESHOLD = 36;
|
|
656
658
|
var DRAGGING_THRESHOLD = 10;
|
|
659
|
+
var MINIMUM_ARROW_SIZE = 20;
|
|
657
660
|
var LINE_CONFIRM_THRESHOLD = 8;
|
|
658
661
|
var ELEMENT_SHIFT_TRANSLATE_AMOUNT = 5;
|
|
659
662
|
var ELEMENT_TRANSLATE_AMOUNT = 1;
|
|
@@ -730,10 +733,12 @@ var ENV = {
|
|
|
730
733
|
PRODUCTION: "production"
|
|
731
734
|
};
|
|
732
735
|
var CLASSES = {
|
|
736
|
+
SIDEBAR: "sidebar",
|
|
733
737
|
SHAPE_ACTIONS_MENU: "App-menu__left",
|
|
734
738
|
ZOOM_ACTIONS: "zoom-actions",
|
|
735
739
|
SEARCH_MENU_INPUT_WRAPPER: "layer-ui__search-inputWrapper",
|
|
736
|
-
CONVERT_ELEMENT_TYPE_POPUP: "ConvertElementTypePopup"
|
|
740
|
+
CONVERT_ELEMENT_TYPE_POPUP: "ConvertElementTypePopup",
|
|
741
|
+
SHAPE_ACTIONS_THEME_SCOPE: "shape-actions-theme-scope"
|
|
737
742
|
};
|
|
738
743
|
var CJK_HAND_DRAWN_FALLBACK_FONT = "Xiaolai";
|
|
739
744
|
var WINDOWS_EMOJI_FALLBACK_FONT = "Segoe UI Emoji";
|
|
@@ -828,13 +833,19 @@ var IMAGE_MIME_TYPES = {
|
|
|
828
833
|
avif: "image/avif",
|
|
829
834
|
jfif: "image/jfif"
|
|
830
835
|
};
|
|
831
|
-
var
|
|
836
|
+
var STRING_MIME_TYPES = {
|
|
832
837
|
text: "text/plain",
|
|
833
838
|
html: "text/html",
|
|
834
839
|
json: "application/json",
|
|
835
840
|
// excalidraw data
|
|
836
841
|
excalidraw: "application/vnd.excalidraw+json",
|
|
842
|
+
// LEGACY: fully-qualified library JSON data
|
|
837
843
|
excalidrawlib: "application/vnd.excalidrawlib+json",
|
|
844
|
+
// list of excalidraw library item ids
|
|
845
|
+
excalidrawlibIds: "application/vnd.excalidrawlib.ids+json"
|
|
846
|
+
};
|
|
847
|
+
var MIME_TYPES = {
|
|
848
|
+
...STRING_MIME_TYPES,
|
|
838
849
|
// image-encoded excalidraw data
|
|
839
850
|
"excalidraw.svg": "image/svg+xml",
|
|
840
851
|
"excalidraw.png": "image/png",
|
|
@@ -893,9 +904,12 @@ var DEFAULT_UI_OPTIONS = {
|
|
|
893
904
|
image: true
|
|
894
905
|
}
|
|
895
906
|
};
|
|
896
|
-
var
|
|
907
|
+
var MQ_MAX_MOBILE = 599;
|
|
897
908
|
var MQ_MAX_WIDTH_LANDSCAPE = 1e3;
|
|
898
909
|
var MQ_MAX_HEIGHT_LANDSCAPE = 500;
|
|
910
|
+
var MQ_MIN_TABLET = MQ_MAX_MOBILE + 1;
|
|
911
|
+
var MQ_MAX_TABLET = 1400;
|
|
912
|
+
var MQ_MIN_WIDTH_DESKTOP = 1440;
|
|
899
913
|
var MQ_RIGHT_SIDEBAR_MIN_WIDTH = 1229;
|
|
900
914
|
var MAX_DECIMALS_FOR_SVG_EXPORT = 2;
|
|
901
915
|
var EXPORT_SCALES = [1, 2, 3];
|
|
@@ -1016,6 +1030,10 @@ var UserIdleState = /* @__PURE__ */ ((UserIdleState2) => {
|
|
|
1016
1030
|
return UserIdleState2;
|
|
1017
1031
|
})(UserIdleState || {});
|
|
1018
1032
|
var LINE_POLYGON_POINT_MERGE_DISTANCE = 20;
|
|
1033
|
+
var DOUBLE_TAP_POSITION_THRESHOLD = 35;
|
|
1034
|
+
var MOBILE_ACTION_BUTTON_BG = {
|
|
1035
|
+
background: "var(--mobile-action-button-bg)"
|
|
1036
|
+
};
|
|
1019
1037
|
|
|
1020
1038
|
// src/font-metadata.ts
|
|
1021
1039
|
init_define_import_meta_env();
|
|
@@ -1416,7 +1434,7 @@ var isInteractive = (target) => {
|
|
|
1416
1434
|
return isInputLike(target) || target instanceof Element && !!target.closest("label, button");
|
|
1417
1435
|
};
|
|
1418
1436
|
var isWritableElement = (target) => target instanceof HTMLElement && target.dataset.type === "wysiwyg" || target instanceof HTMLBRElement || // newline in wysiwyg
|
|
1419
|
-
target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password");
|
|
1437
|
+
target instanceof HTMLTextAreaElement || target instanceof HTMLInputElement && (target.type === "text" || target.type === "number" || target.type === "password" || target.type === "search");
|
|
1420
1438
|
var getFontFamilyString = ({
|
|
1421
1439
|
fontFamily
|
|
1422
1440
|
}) => {
|
|
@@ -1433,6 +1451,9 @@ var getFontString = ({
|
|
|
1433
1451
|
}) => {
|
|
1434
1452
|
return `${fontSize}px ${getFontFamilyString({ fontFamily })}`;
|
|
1435
1453
|
};
|
|
1454
|
+
var nextAnimationFrame = async (cb) => {
|
|
1455
|
+
requestAnimationFrame(() => requestAnimationFrame(cb));
|
|
1456
|
+
};
|
|
1436
1457
|
var debounce = (fn, timeout) => {
|
|
1437
1458
|
let handle = 0;
|
|
1438
1459
|
let lastArgs = null;
|
|
@@ -2066,6 +2087,41 @@ var reduceToCommonValue = (collection, getValue) => {
|
|
|
2066
2087
|
}
|
|
2067
2088
|
return commonValue;
|
|
2068
2089
|
};
|
|
2090
|
+
var isMobileOrTablet = () => {
|
|
2091
|
+
const ua = navigator.userAgent || "";
|
|
2092
|
+
const platform = navigator.platform || "";
|
|
2093
|
+
const uaData = navigator.userAgentData;
|
|
2094
|
+
if (uaData) {
|
|
2095
|
+
const plat = (uaData.platform || "").toLowerCase();
|
|
2096
|
+
const isDesktopOS = plat === "windows" || plat === "macos" || plat === "linux" || plat === "chrome os";
|
|
2097
|
+
if (uaData.mobile === true) {
|
|
2098
|
+
return true;
|
|
2099
|
+
}
|
|
2100
|
+
if (uaData.mobile === false && plat === "android") {
|
|
2101
|
+
const looksTouchTablet = matchMedia?.("(hover: none)").matches && matchMedia?.("(pointer: coarse)").matches;
|
|
2102
|
+
return looksTouchTablet;
|
|
2103
|
+
}
|
|
2104
|
+
if (isDesktopOS) {
|
|
2105
|
+
return false;
|
|
2106
|
+
}
|
|
2107
|
+
}
|
|
2108
|
+
if (isIOS) {
|
|
2109
|
+
return true;
|
|
2110
|
+
}
|
|
2111
|
+
if (isAndroid) {
|
|
2112
|
+
const isAndroidPhone = /Mobile/i.test(ua);
|
|
2113
|
+
const isAndroidTablet = !isAndroidPhone;
|
|
2114
|
+
if (isAndroidPhone || isAndroidTablet) {
|
|
2115
|
+
const looksTouchTablet = matchMedia?.("(hover: none)").matches && matchMedia?.("(pointer: coarse)").matches;
|
|
2116
|
+
return looksTouchTablet;
|
|
2117
|
+
}
|
|
2118
|
+
}
|
|
2119
|
+
const looksDesktopPlatform = /Win|Linux|CrOS|Mac/.test(platform) || /Windows NT|X11|CrOS|Macintosh/.test(ua);
|
|
2120
|
+
if (looksDesktopPlatform) {
|
|
2121
|
+
return false;
|
|
2122
|
+
}
|
|
2123
|
+
return false;
|
|
2124
|
+
};
|
|
2069
2125
|
|
|
2070
2126
|
// src/random.ts
|
|
2071
2127
|
var random = new Random(Date.now());
|
|
@@ -2188,6 +2244,7 @@ export {
|
|
|
2188
2244
|
DEFAULT_UI_OPTIONS,
|
|
2189
2245
|
DEFAULT_VERSION,
|
|
2190
2246
|
DEFAULT_VERTICAL_ALIGN,
|
|
2247
|
+
DOUBLE_TAP_POSITION_THRESHOLD,
|
|
2191
2248
|
DRAGGING_THRESHOLD,
|
|
2192
2249
|
EDITOR_LS_KEYS,
|
|
2193
2250
|
ELEMENTS_PALETTE_SHADE_INDEXES,
|
|
@@ -2225,13 +2282,18 @@ export {
|
|
|
2225
2282
|
MAX_DECIMALS_FOR_SVG_EXPORT,
|
|
2226
2283
|
MAX_ZOOM,
|
|
2227
2284
|
MIME_TYPES,
|
|
2285
|
+
MINIMUM_ARROW_SIZE,
|
|
2228
2286
|
MIN_FONT_SIZE,
|
|
2229
2287
|
MIN_WIDTH_OR_HEIGHT,
|
|
2230
2288
|
MIN_ZOOM,
|
|
2289
|
+
MOBILE_ACTION_BUTTON_BG,
|
|
2231
2290
|
MONOSPACE_GENERIC_FONT,
|
|
2232
2291
|
MQ_MAX_HEIGHT_LANDSCAPE,
|
|
2292
|
+
MQ_MAX_MOBILE,
|
|
2293
|
+
MQ_MAX_TABLET,
|
|
2233
2294
|
MQ_MAX_WIDTH_LANDSCAPE,
|
|
2234
|
-
|
|
2295
|
+
MQ_MIN_TABLET,
|
|
2296
|
+
MQ_MIN_WIDTH_DESKTOP,
|
|
2235
2297
|
MQ_RIGHT_SIDEBAR_MIN_WIDTH,
|
|
2236
2298
|
ORIG_ID,
|
|
2237
2299
|
POINTER_BUTTON,
|
|
@@ -2245,6 +2307,7 @@ export {
|
|
|
2245
2307
|
SHIFT_LOCKING_ANGLE,
|
|
2246
2308
|
SIDE_RESIZING_THRESHOLD,
|
|
2247
2309
|
STATS_PANELS,
|
|
2310
|
+
STRING_MIME_TYPES,
|
|
2248
2311
|
STROKE_WIDTH,
|
|
2249
2312
|
SVG_DOCUMENT_PREAMBLE,
|
|
2250
2313
|
SVG_NS,
|
|
@@ -2324,6 +2387,8 @@ export {
|
|
|
2324
2387
|
isLatinChar,
|
|
2325
2388
|
isLocalLink,
|
|
2326
2389
|
isMemberOf,
|
|
2390
|
+
isMobile,
|
|
2391
|
+
isMobileOrTablet,
|
|
2327
2392
|
isPrimitive,
|
|
2328
2393
|
isProdEnv,
|
|
2329
2394
|
isPromiseLike,
|
|
@@ -2343,6 +2408,7 @@ export {
|
|
|
2343
2408
|
memoize,
|
|
2344
2409
|
muteFSAbortError,
|
|
2345
2410
|
nFormatter,
|
|
2411
|
+
nextAnimationFrame,
|
|
2346
2412
|
normalizeEOL,
|
|
2347
2413
|
normalizeLink,
|
|
2348
2414
|
preventUnload,
|