@zsviczian/excalidraw 0.13.0-obsidian-1 → 0.13.0-obsidian-2
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/README.md +1 -1
- package/dist/excalidraw.development.js +76 -54
- package/dist/excalidraw.production.min.js +1 -1
- package/package.json +1 -1
- package/types/actions/actionAddToLibrary.d.ts +3 -6
- package/types/actions/actionBoundText.d.ts +1 -2
- package/types/actions/actionCanvas.d.ts +21 -25
- package/types/actions/actionClipboard.d.ts +14 -10
- package/types/actions/actionDeleteSelected.d.ts +12 -6
- package/types/actions/actionExport.d.ts +17 -25
- package/types/actions/actionFinalize.d.ts +2 -4
- package/types/actions/actionLinearEditor.d.ts +1 -2
- package/types/actions/actionMenu.d.ts +5 -6
- package/types/actions/actionNavigate.d.ts +1 -0
- package/types/actions/actionProperties.d.ts +15 -28
- package/types/actions/actionStyles.d.ts +1 -2
- package/types/actions/actionToggleGridMode.d.ts +2 -2
- package/types/actions/actionToggleLock.d.ts +1 -2
- package/types/actions/actionToggleStats.d.ts +2 -2
- package/types/actions/actionToggleViewMode.d.ts +2 -2
- package/types/actions/actionToggleZenMode.d.ts +2 -2
- package/types/actions/types.d.ts +4 -1
- package/types/appState.d.ts +8 -9
- package/types/clipboard.d.ts +6 -1
- package/types/components/App.d.ts +1 -1
- package/types/components/ContextMenu.d.ts +9 -10
- package/types/constants.d.ts +7 -5
- package/types/element/Hyperlink.d.ts +1 -2
- package/types/element/bounds.d.ts +3 -2
- package/types/element/linearElementEditor.d.ts +32 -5
- package/types/element/newElement.d.ts +2 -2
- package/types/element/resizeElements.d.ts +0 -1
- package/types/element/textElement.d.ts +17 -2
- package/types/element/transformHandles.d.ts +2 -3
- package/types/element/typeChecks.d.ts +10 -1
- package/types/element/types.d.ts +11 -4
- package/types/excalidraw-app/data/index.d.ts +8 -9
- package/types/excalidraw-app/data/localStorage.d.ts +8 -9
- package/types/math.d.ts +2 -1
- package/types/renderer/renderElement.d.ts +4 -3
- package/types/scene/Fonts.d.ts +21 -0
- package/types/scene/Scene.d.ts +15 -0
- package/types/scene/comparisons.d.ts +2 -3
- package/types/scene/index.d.ts +1 -1
- package/types/types.d.ts +2 -3
|
@@ -66,10 +66,9 @@ export declare const actionChangeFillStyle: {
|
|
|
66
66
|
currentItemFontFamily: number;
|
|
67
67
|
currentItemFontSize: number;
|
|
68
68
|
currentItemTextAlign: string;
|
|
69
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
70
69
|
currentItemStartArrowhead: Arrowhead | null;
|
|
71
70
|
currentItemEndArrowhead: Arrowhead | null;
|
|
72
|
-
|
|
71
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
73
72
|
viewBackgroundColor: string;
|
|
74
73
|
scrollX: number;
|
|
75
74
|
scrollY: number;
|
|
@@ -186,10 +185,9 @@ export declare const actionChangeStrokeWidth: {
|
|
|
186
185
|
currentItemFontFamily: number;
|
|
187
186
|
currentItemFontSize: number;
|
|
188
187
|
currentItemTextAlign: string;
|
|
189
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
190
188
|
currentItemStartArrowhead: Arrowhead | null;
|
|
191
189
|
currentItemEndArrowhead: Arrowhead | null;
|
|
192
|
-
|
|
190
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
193
191
|
viewBackgroundColor: string;
|
|
194
192
|
scrollX: number;
|
|
195
193
|
scrollY: number;
|
|
@@ -306,10 +304,9 @@ export declare const actionChangeSloppiness: {
|
|
|
306
304
|
currentItemFontFamily: number;
|
|
307
305
|
currentItemFontSize: number;
|
|
308
306
|
currentItemTextAlign: string;
|
|
309
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
310
307
|
currentItemStartArrowhead: Arrowhead | null;
|
|
311
308
|
currentItemEndArrowhead: Arrowhead | null;
|
|
312
|
-
|
|
309
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
313
310
|
viewBackgroundColor: string;
|
|
314
311
|
scrollX: number;
|
|
315
312
|
scrollY: number;
|
|
@@ -426,10 +423,9 @@ export declare const actionChangeStrokeStyle: {
|
|
|
426
423
|
currentItemFontFamily: number;
|
|
427
424
|
currentItemFontSize: number;
|
|
428
425
|
currentItemTextAlign: string;
|
|
429
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
430
426
|
currentItemStartArrowhead: Arrowhead | null;
|
|
431
427
|
currentItemEndArrowhead: Arrowhead | null;
|
|
432
|
-
|
|
428
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
433
429
|
viewBackgroundColor: string;
|
|
434
430
|
scrollX: number;
|
|
435
431
|
scrollY: number;
|
|
@@ -546,10 +542,9 @@ export declare const actionChangeOpacity: {
|
|
|
546
542
|
currentItemFontFamily: number;
|
|
547
543
|
currentItemFontSize: number;
|
|
548
544
|
currentItemTextAlign: string;
|
|
549
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
550
545
|
currentItemStartArrowhead: Arrowhead | null;
|
|
551
546
|
currentItemEndArrowhead: Arrowhead | null;
|
|
552
|
-
|
|
547
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
553
548
|
viewBackgroundColor: string;
|
|
554
549
|
scrollX: number;
|
|
555
550
|
scrollY: number;
|
|
@@ -666,10 +661,9 @@ export declare const actionChangeFontSize: {
|
|
|
666
661
|
currentItemOpacity: number;
|
|
667
662
|
currentItemFontFamily: number;
|
|
668
663
|
currentItemTextAlign: string;
|
|
669
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
670
664
|
currentItemStartArrowhead: Arrowhead | null;
|
|
671
665
|
currentItemEndArrowhead: Arrowhead | null;
|
|
672
|
-
|
|
666
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
673
667
|
viewBackgroundColor: string;
|
|
674
668
|
scrollX: number;
|
|
675
669
|
scrollY: number;
|
|
@@ -786,10 +780,9 @@ export declare const actionDecreaseFontSize: {
|
|
|
786
780
|
currentItemOpacity: number;
|
|
787
781
|
currentItemFontFamily: number;
|
|
788
782
|
currentItemTextAlign: string;
|
|
789
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
790
783
|
currentItemStartArrowhead: Arrowhead | null;
|
|
791
784
|
currentItemEndArrowhead: Arrowhead | null;
|
|
792
|
-
|
|
785
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
793
786
|
viewBackgroundColor: string;
|
|
794
787
|
scrollX: number;
|
|
795
788
|
scrollY: number;
|
|
@@ -904,10 +897,9 @@ export declare const actionIncreaseFontSize: {
|
|
|
904
897
|
currentItemOpacity: number;
|
|
905
898
|
currentItemFontFamily: number;
|
|
906
899
|
currentItemTextAlign: string;
|
|
907
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
908
900
|
currentItemStartArrowhead: Arrowhead | null;
|
|
909
901
|
currentItemEndArrowhead: Arrowhead | null;
|
|
910
|
-
|
|
902
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
911
903
|
viewBackgroundColor: string;
|
|
912
904
|
scrollX: number;
|
|
913
905
|
scrollY: number;
|
|
@@ -1022,10 +1014,9 @@ export declare const actionChangeFontFamily: {
|
|
|
1022
1014
|
currentItemOpacity: number;
|
|
1023
1015
|
currentItemFontSize: number;
|
|
1024
1016
|
currentItemTextAlign: string;
|
|
1025
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
1026
1017
|
currentItemStartArrowhead: Arrowhead | null;
|
|
1027
1018
|
currentItemEndArrowhead: Arrowhead | null;
|
|
1028
|
-
|
|
1019
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
1029
1020
|
viewBackgroundColor: string;
|
|
1030
1021
|
scrollX: number;
|
|
1031
1022
|
scrollY: number;
|
|
@@ -1142,10 +1133,9 @@ export declare const actionChangeTextAlign: {
|
|
|
1142
1133
|
currentItemOpacity: number;
|
|
1143
1134
|
currentItemFontFamily: number;
|
|
1144
1135
|
currentItemFontSize: number;
|
|
1145
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
1146
1136
|
currentItemStartArrowhead: Arrowhead | null;
|
|
1147
1137
|
currentItemEndArrowhead: Arrowhead | null;
|
|
1148
|
-
|
|
1138
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
1149
1139
|
viewBackgroundColor: string;
|
|
1150
1140
|
scrollX: number;
|
|
1151
1141
|
scrollY: number;
|
|
@@ -1264,10 +1254,9 @@ export declare const actionChangeVerticalAlign: {
|
|
|
1264
1254
|
currentItemFontFamily: number;
|
|
1265
1255
|
currentItemFontSize: number;
|
|
1266
1256
|
currentItemTextAlign: string;
|
|
1267
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
1268
1257
|
currentItemStartArrowhead: Arrowhead | null;
|
|
1269
1258
|
currentItemEndArrowhead: Arrowhead | null;
|
|
1270
|
-
|
|
1259
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
1271
1260
|
viewBackgroundColor: string;
|
|
1272
1261
|
scrollX: number;
|
|
1273
1262
|
scrollY: number;
|
|
@@ -1339,14 +1328,13 @@ export declare const actionChangeVerticalAlign: {
|
|
|
1339
1328
|
} & {
|
|
1340
1329
|
keyTest?: undefined;
|
|
1341
1330
|
};
|
|
1342
|
-
export declare const
|
|
1343
|
-
name: "
|
|
1331
|
+
export declare const actionChangeRoundness: {
|
|
1332
|
+
name: "changeRoundness";
|
|
1344
1333
|
trackEvent: false;
|
|
1345
1334
|
perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, value: any) => {
|
|
1346
1335
|
elements: ExcalidrawElement[];
|
|
1347
1336
|
appState: {
|
|
1348
|
-
|
|
1349
|
-
currentItemLinearStrokeSharpness: any;
|
|
1337
|
+
currentItemRoundness: any;
|
|
1350
1338
|
showWelcomeScreen: boolean;
|
|
1351
1339
|
isLoading: boolean;
|
|
1352
1340
|
errorMessage: string | null;
|
|
@@ -1507,10 +1495,9 @@ export declare const actionChangeArrowhead: {
|
|
|
1507
1495
|
currentItemFontFamily: number;
|
|
1508
1496
|
currentItemFontSize: number;
|
|
1509
1497
|
currentItemTextAlign: string;
|
|
1510
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
1511
1498
|
currentItemStartArrowhead: Arrowhead | null;
|
|
1512
1499
|
currentItemEndArrowhead: Arrowhead | null;
|
|
1513
|
-
|
|
1500
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
1514
1501
|
viewBackgroundColor: string;
|
|
1515
1502
|
scrollX: number;
|
|
1516
1503
|
scrollY: number;
|
|
@@ -49,10 +49,9 @@ export declare const actionCopyStyles: {
|
|
|
49
49
|
currentItemFontFamily: number;
|
|
50
50
|
currentItemFontSize: number;
|
|
51
51
|
currentItemTextAlign: string;
|
|
52
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
53
52
|
currentItemStartArrowhead: import("../element/types").Arrowhead | null;
|
|
54
53
|
currentItemEndArrowhead: import("../element/types").Arrowhead | null;
|
|
55
|
-
|
|
54
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
56
55
|
viewBackgroundColor: string;
|
|
57
56
|
scrollX: number;
|
|
58
57
|
scrollY: number;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { AppState } from "../types";
|
|
3
3
|
export declare const actionToggleGridMode: {
|
|
4
4
|
name: "gridMode";
|
|
5
|
+
viewMode: true;
|
|
5
6
|
trackEvent: {
|
|
6
7
|
category: "canvas";
|
|
7
8
|
predicate: (appState: Readonly<AppState>) => boolean;
|
|
@@ -48,10 +49,9 @@ export declare const actionToggleGridMode: {
|
|
|
48
49
|
currentItemFontFamily: number;
|
|
49
50
|
currentItemFontSize: number;
|
|
50
51
|
currentItemTextAlign: string;
|
|
51
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
52
52
|
currentItemStartArrowhead: import("../element/types").Arrowhead | null;
|
|
53
53
|
currentItemEndArrowhead: import("../element/types").Arrowhead | null;
|
|
54
|
-
|
|
54
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
55
55
|
viewBackgroundColor: string;
|
|
56
56
|
scrollX: number;
|
|
57
57
|
scrollY: number;
|
|
@@ -48,10 +48,9 @@ export declare const actionToggleLock: {
|
|
|
48
48
|
currentItemFontFamily: number;
|
|
49
49
|
currentItemFontSize: number;
|
|
50
50
|
currentItemTextAlign: string;
|
|
51
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
52
51
|
currentItemStartArrowhead: import("../element/types").Arrowhead | null;
|
|
53
52
|
currentItemEndArrowhead: import("../element/types").Arrowhead | null;
|
|
54
|
-
|
|
53
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
55
54
|
viewBackgroundColor: string;
|
|
56
55
|
scrollX: number;
|
|
57
56
|
scrollY: number;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const actionToggleStats: {
|
|
3
3
|
name: "stats";
|
|
4
|
+
viewMode: true;
|
|
4
5
|
trackEvent: {
|
|
5
6
|
category: "menu";
|
|
6
7
|
};
|
|
@@ -46,10 +47,9 @@ export declare const actionToggleStats: {
|
|
|
46
47
|
currentItemFontFamily: number;
|
|
47
48
|
currentItemFontSize: number;
|
|
48
49
|
currentItemTextAlign: string;
|
|
49
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
50
50
|
currentItemStartArrowhead: import("../element/types").Arrowhead | null;
|
|
51
51
|
currentItemEndArrowhead: import("../element/types").Arrowhead | null;
|
|
52
|
-
|
|
52
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
53
53
|
viewBackgroundColor: string;
|
|
54
54
|
scrollX: number;
|
|
55
55
|
scrollY: number;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const actionToggleViewMode: {
|
|
3
3
|
name: "viewMode";
|
|
4
|
+
viewMode: true;
|
|
4
5
|
trackEvent: {
|
|
5
6
|
category: "canvas";
|
|
6
7
|
predicate: (appState: Readonly<import("../types").AppState>) => boolean;
|
|
@@ -47,10 +48,9 @@ export declare const actionToggleViewMode: {
|
|
|
47
48
|
currentItemFontFamily: number;
|
|
48
49
|
currentItemFontSize: number;
|
|
49
50
|
currentItemTextAlign: string;
|
|
50
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
51
51
|
currentItemStartArrowhead: import("../element/types").Arrowhead | null;
|
|
52
52
|
currentItemEndArrowhead: import("../element/types").Arrowhead | null;
|
|
53
|
-
|
|
53
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
54
54
|
viewBackgroundColor: string;
|
|
55
55
|
scrollX: number;
|
|
56
56
|
scrollY: number;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const actionToggleZenMode: {
|
|
3
3
|
name: "zenMode";
|
|
4
|
+
viewMode: true;
|
|
4
5
|
trackEvent: {
|
|
5
6
|
category: "canvas";
|
|
6
7
|
predicate: (appState: Readonly<import("../types").AppState>) => boolean;
|
|
@@ -47,10 +48,9 @@ export declare const actionToggleZenMode: {
|
|
|
47
48
|
currentItemFontFamily: number;
|
|
48
49
|
currentItemFontSize: number;
|
|
49
50
|
currentItemTextAlign: string;
|
|
50
|
-
currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
|
|
51
51
|
currentItemStartArrowhead: import("../element/types").Arrowhead | null;
|
|
52
52
|
currentItemEndArrowhead: import("../element/types").Arrowhead | null;
|
|
53
|
-
|
|
53
|
+
currentItemRoundness: import("../element/types").StrokeRoundness;
|
|
54
54
|
viewBackgroundColor: string;
|
|
55
55
|
scrollX: number;
|
|
56
56
|
scrollY: number;
|
package/types/actions/types.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare type ActionResult = {
|
|
|
14
14
|
declare type ActionFn = (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
|
|
15
15
|
export declare type UpdaterFn = (res: ActionResult) => void;
|
|
16
16
|
export declare type ActionFilterFn = (action: Action) => void;
|
|
17
|
-
export declare type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToSelection" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "
|
|
17
|
+
export declare type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToSelection" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "eraser" | "bindText" | "toggleLock" | "toggleLinearEditor";
|
|
18
18
|
export declare type PanelComponentProps = {
|
|
19
19
|
elements: readonly ExcalidrawElement[];
|
|
20
20
|
appState: AppState;
|
|
@@ -38,5 +38,8 @@ export interface Action {
|
|
|
38
38
|
action?: string;
|
|
39
39
|
predicate?: (appState: Readonly<AppState>, elements: readonly ExcalidrawElement[], value: any) => boolean;
|
|
40
40
|
};
|
|
41
|
+
/** if set to `true`, allow action to be performed in viewMode.
|
|
42
|
+
* Defaults to `false` */
|
|
43
|
+
viewMode?: boolean;
|
|
41
44
|
}
|
|
42
45
|
export {};
|
package/types/appState.d.ts
CHANGED
|
@@ -14,13 +14,6 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
|
|
|
14
14
|
lastActiveToolBeforeEraser: import("./types").LastActiveToolBeforeEraser;
|
|
15
15
|
locked: boolean;
|
|
16
16
|
} | undefined;
|
|
17
|
-
scrollX?: number | undefined;
|
|
18
|
-
scrollY?: number | undefined;
|
|
19
|
-
viewBackgroundColor?: string | undefined;
|
|
20
|
-
zoom?: Readonly<{
|
|
21
|
-
value: NormalizedZoomValue;
|
|
22
|
-
}> | undefined;
|
|
23
|
-
shouldCacheIgnoreZoom?: boolean | undefined;
|
|
24
17
|
showWelcomeScreen?: boolean | undefined;
|
|
25
18
|
penMode?: boolean | undefined;
|
|
26
19
|
penDetected?: boolean | undefined;
|
|
@@ -38,12 +31,17 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
|
|
|
38
31
|
currentItemFontFamily?: number | undefined;
|
|
39
32
|
currentItemFontSize?: number | undefined;
|
|
40
33
|
currentItemTextAlign?: string | undefined;
|
|
41
|
-
currentItemStrokeSharpness?: import("./element/types").StrokeSharpness | undefined;
|
|
42
34
|
currentItemStartArrowhead?: import("./element/types").Arrowhead | null | undefined;
|
|
43
35
|
currentItemEndArrowhead?: import("./element/types").Arrowhead | null | undefined;
|
|
44
|
-
|
|
36
|
+
currentItemRoundness?: import("./element/types").StrokeRoundness | undefined;
|
|
37
|
+
viewBackgroundColor?: string | undefined;
|
|
38
|
+
scrollX?: number | undefined;
|
|
39
|
+
scrollY?: number | undefined;
|
|
45
40
|
cursorButton?: "up" | "down" | undefined;
|
|
46
41
|
scrolledOutside?: boolean | undefined;
|
|
42
|
+
zoom?: Readonly<{
|
|
43
|
+
value: NormalizedZoomValue;
|
|
44
|
+
}> | undefined;
|
|
47
45
|
openMenu?: "canvas" | "shape" | null | undefined;
|
|
48
46
|
openSidebar?: "library" | "customSidebar" | null | undefined;
|
|
49
47
|
isSidebarDocked?: boolean | undefined;
|
|
@@ -54,6 +52,7 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
|
|
|
54
52
|
previousSelectedElementIds?: {
|
|
55
53
|
[id: string]: boolean;
|
|
56
54
|
} | undefined;
|
|
55
|
+
shouldCacheIgnoreZoom?: boolean | undefined;
|
|
57
56
|
zenModeEnabled?: boolean | undefined;
|
|
58
57
|
gridSize?: number | null | undefined;
|
|
59
58
|
selectedGroupIds?: {
|
package/types/clipboard.d.ts
CHANGED
|
@@ -12,9 +12,14 @@ export declare const probablySupportsClipboardReadText: boolean;
|
|
|
12
12
|
export declare const probablySupportsClipboardWriteText: boolean;
|
|
13
13
|
export declare const probablySupportsClipboardBlob: boolean;
|
|
14
14
|
export declare const copyToClipboard: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles | null) => Promise<void>;
|
|
15
|
+
/**
|
|
16
|
+
* Retrieves content from system clipboard (either from ClipboardEvent or
|
|
17
|
+
* via async clipboard API if supported)
|
|
18
|
+
*/
|
|
19
|
+
export declare const getSystemClipboard: (event: ClipboardEvent | null) => Promise<string>;
|
|
15
20
|
/**
|
|
16
21
|
* Attempts to parse clipboard. Prefers system clipboard.
|
|
17
22
|
*/
|
|
18
|
-
export declare const parseClipboard: (event: ClipboardEvent | null) => Promise<ClipboardData>;
|
|
23
|
+
export declare const parseClipboard: (event: ClipboardEvent | null, isPlainPaste?: boolean) => Promise<ClipboardData>;
|
|
19
24
|
export declare const copyBlobToClipboardAsPng: (blob: Blob | Promise<Blob>) => Promise<void>;
|
|
20
25
|
export declare const copyTextToSystemClipboard: (text: string | null) => Promise<void>;
|
|
@@ -79,6 +79,7 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
79
79
|
private excalidrawContainerRef;
|
|
80
80
|
static defaultProps: Partial<AppProps>;
|
|
81
81
|
scene: Scene;
|
|
82
|
+
private fonts;
|
|
82
83
|
private resizeObserver;
|
|
83
84
|
private nearestScrollableContainer;
|
|
84
85
|
library: AppClassProperties["library"];
|
|
@@ -107,7 +108,6 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
107
108
|
private onBlur;
|
|
108
109
|
private onUnload;
|
|
109
110
|
private disableEvent;
|
|
110
|
-
private onFontLoaded;
|
|
111
111
|
private resetHistory;
|
|
112
112
|
/**
|
|
113
113
|
* Resets scene & history.
|
|
@@ -13,16 +13,15 @@ declare type ContextMenuProps = {
|
|
|
13
13
|
appState: Readonly<AppState>;
|
|
14
14
|
elements: readonly NonDeletedExcalidrawElement[];
|
|
15
15
|
};
|
|
16
|
-
declare type ContextMenuParams = {
|
|
17
|
-
options: (ContextMenuOption | false | null | undefined)[];
|
|
18
|
-
top: ContextMenuProps["top"];
|
|
19
|
-
left: ContextMenuProps["left"];
|
|
20
|
-
actionManager: ContextMenuProps["actionManager"];
|
|
21
|
-
appState: Readonly<AppState>;
|
|
22
|
-
container: HTMLElement;
|
|
23
|
-
elements: readonly NonDeletedExcalidrawElement[];
|
|
24
|
-
};
|
|
25
16
|
declare const _default: {
|
|
26
|
-
push(params:
|
|
17
|
+
push(params: {
|
|
18
|
+
options: (ContextMenuOption | false | null | undefined)[];
|
|
19
|
+
top: ContextMenuProps["top"];
|
|
20
|
+
left: ContextMenuProps["left"];
|
|
21
|
+
actionManager: ContextMenuProps["actionManager"];
|
|
22
|
+
appState: Readonly<AppState>;
|
|
23
|
+
container: HTMLElement;
|
|
24
|
+
elements: readonly NonDeletedExcalidrawElement[];
|
|
25
|
+
}): void;
|
|
27
26
|
};
|
|
28
27
|
export default _default;
|
package/types/constants.d.ts
CHANGED
|
@@ -109,11 +109,6 @@ export declare const MIN_ZOOM = 0.1;
|
|
|
109
109
|
export declare const HYPERLINK_TOOLTIP_DELAY = 300;
|
|
110
110
|
export declare const IDLE_THRESHOLD = 60000;
|
|
111
111
|
export declare const ACTIVE_THRESHOLD = 3000;
|
|
112
|
-
export declare const MODES: {
|
|
113
|
-
VIEW: string;
|
|
114
|
-
ZEN: string;
|
|
115
|
-
GRID: string;
|
|
116
|
-
};
|
|
117
112
|
export declare const THEME_FILTER: any;
|
|
118
113
|
export declare const URL_QUERY_KEYS: {
|
|
119
114
|
readonly addLibrary: "addLibrary";
|
|
@@ -152,6 +147,13 @@ export declare const TEXT_ALIGN: {
|
|
|
152
147
|
RIGHT: string;
|
|
153
148
|
};
|
|
154
149
|
export declare const ELEMENT_READY_TO_ERASE_OPACITY = 20;
|
|
150
|
+
export declare const DEFAULT_PROPORTIONAL_RADIUS = 0.25;
|
|
151
|
+
export declare const DEFAULT_ADAPTIVE_RADIUS = 32;
|
|
152
|
+
export declare const ROUNDNESS: {
|
|
153
|
+
readonly LEGACY: 1;
|
|
154
|
+
readonly PROPORTIONAL_RADIUS: 2;
|
|
155
|
+
readonly ADAPTIVE_RADIUS: 3;
|
|
156
|
+
};
|
|
155
157
|
export declare const COOKIES: {
|
|
156
158
|
readonly AUTH_STATE_COOKIE: "excplus-auth";
|
|
157
159
|
};
|
|
@@ -57,10 +57,9 @@ export declare const actionLink: {
|
|
|
57
57
|
currentItemFontFamily: number;
|
|
58
58
|
currentItemFontSize: number;
|
|
59
59
|
currentItemTextAlign: string;
|
|
60
|
-
currentItemStrokeSharpness: import("./types").StrokeSharpness;
|
|
61
60
|
currentItemStartArrowhead: import("./types").Arrowhead | null;
|
|
62
61
|
currentItemEndArrowhead: import("./types").Arrowhead | null;
|
|
63
|
-
|
|
62
|
+
currentItemRoundness: import("./types").StrokeRoundness;
|
|
64
63
|
viewBackgroundColor: string;
|
|
65
64
|
scrollX: number;
|
|
66
65
|
scrollY: number;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { ExcalidrawElement, ExcalidrawLinearElement, Arrowhead, NonDeleted } from "./types";
|
|
2
2
|
import { Drawable, Op } from "roughjs/bin/core";
|
|
3
3
|
export declare type Bounds = readonly [number, number, number, number];
|
|
4
|
-
export declare const getElementAbsoluteCoords: (element: ExcalidrawElement) =>
|
|
4
|
+
export declare const getElementAbsoluteCoords: (element: ExcalidrawElement, includeBoundText?: boolean) => [number, number, number, number, number, number];
|
|
5
5
|
export declare const pointRelativeTo: (element: ExcalidrawElement, absoluteCoords: readonly [number, number]) => readonly [number, number];
|
|
6
6
|
export declare const getDiamondPoints: (element: ExcalidrawElement) => number[];
|
|
7
7
|
export declare const getCurvePathOps: (shape: Drawable) => Op[];
|
|
8
|
+
export declare const getMinMaxXYFromCurvePathOps: (ops: Op[], transformXY?: ((x: number, y: number) => [number, number]) | undefined) => [number, number, number, number];
|
|
8
9
|
export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead) => number[] | null;
|
|
9
10
|
export declare const getElementBounds: (element: ExcalidrawElement) => [number, number, number, number];
|
|
10
11
|
export declare const getCommonBounds: (elements: readonly ExcalidrawElement[]) => [number, number, number, number];
|
|
11
12
|
export declare const getResizedElementAbsoluteCoords: (element: ExcalidrawElement, nextWidth: number, nextHeight: number, normalizePoints: boolean) => [number, number, number, number];
|
|
12
|
-
export declare const getElementPointsCoords: (element: ExcalidrawLinearElement, points: readonly (readonly [number, number])[]
|
|
13
|
+
export declare const getElementPointsCoords: (element: ExcalidrawLinearElement, points: readonly (readonly [number, number])[]) => [number, number, number, number];
|
|
13
14
|
export declare const getClosestElementBounds: (elements: readonly ExcalidrawElement[], from: {
|
|
14
15
|
x: number;
|
|
15
16
|
y: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, PointBinding, ExcalidrawBindableElement } from "./types";
|
|
3
|
-
import { Point, AppState } from "../types";
|
|
2
|
+
import { NonDeleted, ExcalidrawLinearElement, ExcalidrawElement, PointBinding, ExcalidrawBindableElement, ExcalidrawTextElementWithContainer } from "./types";
|
|
3
|
+
import { Point, AppState, PointerCoords } from "../types";
|
|
4
4
|
import History from "../history";
|
|
5
5
|
import Scene from "../scene/Scene";
|
|
6
6
|
declare const editorMidPointsCache: {
|
|
@@ -18,6 +18,15 @@ export declare class LinearElementEditor {
|
|
|
18
18
|
prevSelectedPointsIndices: readonly number[] | null;
|
|
19
19
|
/** index */
|
|
20
20
|
lastClickedPoint: number;
|
|
21
|
+
origin: Readonly<{
|
|
22
|
+
x: number;
|
|
23
|
+
y: number;
|
|
24
|
+
}> | null;
|
|
25
|
+
segmentMidpoint: {
|
|
26
|
+
value: Point | null;
|
|
27
|
+
index: number | null;
|
|
28
|
+
added: boolean;
|
|
29
|
+
};
|
|
21
30
|
}>;
|
|
22
31
|
/** whether you're dragging a point */
|
|
23
32
|
readonly isDragging: boolean;
|
|
@@ -60,7 +69,6 @@ export declare class LinearElementEditor {
|
|
|
60
69
|
didAddPoint: boolean;
|
|
61
70
|
hitElement: NonDeleted<ExcalidrawElement> | null;
|
|
62
71
|
linearElementEditor: LinearElementEditor | null;
|
|
63
|
-
isMidPoint: boolean;
|
|
64
72
|
};
|
|
65
73
|
static arePointsEqual(point1: Point | null, point2: Point | null): boolean;
|
|
66
74
|
static handlePointerMove(event: React.PointerEvent<HTMLCanvasElement>, scenePointerX: number, scenePointerY: number, appState: AppState): LinearElementEditor | null;
|
|
@@ -94,6 +102,15 @@ export declare class LinearElementEditor {
|
|
|
94
102
|
prevSelectedPointsIndices: readonly number[] | null;
|
|
95
103
|
/** index */
|
|
96
104
|
lastClickedPoint: number;
|
|
105
|
+
origin: Readonly<{
|
|
106
|
+
x: number;
|
|
107
|
+
y: number;
|
|
108
|
+
}> | null;
|
|
109
|
+
segmentMidpoint: {
|
|
110
|
+
value: readonly [number, number] | null;
|
|
111
|
+
index: number | null;
|
|
112
|
+
added: boolean;
|
|
113
|
+
};
|
|
97
114
|
}>;
|
|
98
115
|
isDragging: boolean;
|
|
99
116
|
lastUncommittedPoint: readonly [number, number] | null;
|
|
@@ -144,10 +161,9 @@ export declare class LinearElementEditor {
|
|
|
144
161
|
currentItemFontFamily: number;
|
|
145
162
|
currentItemFontSize: number;
|
|
146
163
|
currentItemTextAlign: string;
|
|
147
|
-
currentItemStrokeSharpness: import("./types").StrokeSharpness;
|
|
148
164
|
currentItemStartArrowhead: import("./types").Arrowhead | null;
|
|
149
165
|
currentItemEndArrowhead: import("./types").Arrowhead | null;
|
|
150
|
-
|
|
166
|
+
currentItemRoundness: import("./types").StrokeRoundness;
|
|
151
167
|
viewBackgroundColor: string;
|
|
152
168
|
scrollX: number;
|
|
153
169
|
scrollY: number;
|
|
@@ -224,7 +240,18 @@ export declare class LinearElementEditor {
|
|
|
224
240
|
startBinding?: PointBinding;
|
|
225
241
|
endBinding?: PointBinding;
|
|
226
242
|
}): void;
|
|
243
|
+
static shouldAddMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, appState: AppState): boolean;
|
|
244
|
+
static addMidpoint(linearElementEditor: LinearElementEditor, pointerCoords: PointerCoords, appState: AppState): {
|
|
245
|
+
pointerDownState: LinearElementEditor["pointerDownState"];
|
|
246
|
+
selectedPointsIndices: LinearElementEditor["selectedPointsIndices"];
|
|
247
|
+
} | undefined;
|
|
227
248
|
private static _updatePoints;
|
|
228
249
|
private static _getShiftLockedDelta;
|
|
250
|
+
static getBoundTextElementPosition: (element: ExcalidrawLinearElement, boundTextElement: ExcalidrawTextElementWithContainer) => {
|
|
251
|
+
x: number;
|
|
252
|
+
y: number;
|
|
253
|
+
};
|
|
254
|
+
static getMinMaxXYWithBoundText: (element: ExcalidrawLinearElement, elementBounds: [number, number, number, number], boundTextElement: ExcalidrawTextElementWithContainer) => [number, number, number, number, number, number];
|
|
255
|
+
static getElementAbsoluteCoords: (element: ExcalidrawLinearElement, includeBoundText?: boolean) => [number, number, number, number, number, number];
|
|
229
256
|
}
|
|
230
257
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ExcalidrawElement, ExcalidrawImageElement, ExcalidrawTextElement, ExcalidrawLinearElement, ExcalidrawGenericElement, NonDeleted, TextAlign, GroupId, VerticalAlign, Arrowhead, ExcalidrawFreeDrawElement, FontFamilyValues,
|
|
1
|
+
import { ExcalidrawElement, ExcalidrawImageElement, ExcalidrawTextElement, ExcalidrawLinearElement, ExcalidrawGenericElement, NonDeleted, TextAlign, GroupId, VerticalAlign, Arrowhead, ExcalidrawFreeDrawElement, FontFamilyValues, ExcalidrawTextContainer } from "../element/types";
|
|
2
2
|
import { AppState } from "../types";
|
|
3
3
|
declare type ElementConstructorOpts = MarkOptional<Omit<ExcalidrawGenericElement, "id" | "type" | "isDeleted" | "updated">, "width" | "height" | "angle" | "groupIds" | "boundElements" | "seed" | "version" | "versionNonce" | "link">;
|
|
4
4
|
export declare const newElement: (opts: {
|
|
@@ -11,7 +11,7 @@ export declare const newTextElement: (opts: {
|
|
|
11
11
|
fontFamily: FontFamilyValues;
|
|
12
12
|
textAlign: TextAlign;
|
|
13
13
|
verticalAlign: VerticalAlign;
|
|
14
|
-
containerId?:
|
|
14
|
+
containerId?: ExcalidrawTextContainer["id"];
|
|
15
15
|
} & ElementConstructorOpts) => NonDeleted<ExcalidrawTextElement>;
|
|
16
16
|
export declare const refreshTextDimensions: (textElement: ExcalidrawTextElement, text?: string) => {
|
|
17
17
|
x: number;
|
|
@@ -3,7 +3,6 @@ import { MaybeTransformHandleType, TransformHandleDirection } from "./transformH
|
|
|
3
3
|
import { PointerDownState } from "../types";
|
|
4
4
|
export declare const normalizeAngle: (angle: number) => number;
|
|
5
5
|
export declare const transformElements: (pointerDownState: PointerDownState, transformHandleType: MaybeTransformHandleType, selectedElements: readonly NonDeletedExcalidrawElement[], resizeArrowDirection: "origin" | "end", shouldRotateWithDiscreteAngle: boolean, shouldResizeFromCenter: boolean, shouldMaintainAspectRatio: boolean, pointerX: number, pointerY: number, centerX: number, centerY: number) => boolean;
|
|
6
|
-
export declare const reshapeSingleTwoPointElement: (element: NonDeleted<ExcalidrawLinearElement>, resizeArrowDirection: "origin" | "end", shouldRotateWithDiscreteAngle: boolean, pointerX: number, pointerY: number) => void;
|
|
7
6
|
export declare const resizeSingleElement: (originalElements: PointerDownState["originalElements"], shouldMaintainAspectRatio: boolean, element: NonDeletedExcalidrawElement, transformHandleDirection: TransformHandleDirection, shouldResizeFromCenter: boolean, pointerX: number, pointerY: number) => void;
|
|
8
7
|
export declare const getResizeOffsetXY: (transformHandleType: MaybeTransformHandleType, selectedElements: NonDeletedExcalidrawElement[], x: number, y: number) => [number, number];
|
|
9
8
|
export declare const getResizeArrowDirection: (transformHandleType: MaybeTransformHandleType, element: NonDeleted<ExcalidrawLinearElement>) => "origin" | "end";
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, FontString, NonDeletedExcalidrawElement } from "./types";
|
|
1
|
+
import { ExcalidrawElement, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, FontString, NonDeletedExcalidrawElement } from "./types";
|
|
2
2
|
import { MaybeTransformHandleType } from "./transformHandles";
|
|
3
|
+
import { AppState } from "../types";
|
|
4
|
+
export declare const normalizeText: (text: string) => string;
|
|
3
5
|
export declare const redrawTextBoundingBox: (textElement: ExcalidrawTextElement, container: ExcalidrawElement | null) => void;
|
|
4
6
|
export declare const bindTextToShapeAfterDuplication: (sceneElements: ExcalidrawElement[], oldElements: ExcalidrawElement[], oldIdToDuplicatedId: Map<ExcalidrawElement["id"], ExcalidrawElement["id"]>) => void;
|
|
5
|
-
export declare const handleBindTextResize: (
|
|
7
|
+
export declare const handleBindTextResize: (container: NonDeletedExcalidrawElement, transformHandleType: MaybeTransformHandleType) => void;
|
|
6
8
|
export declare const measureText: (text: string, font: FontString, maxWidth?: number | null) => {
|
|
7
9
|
width: number;
|
|
8
10
|
height: number;
|
|
@@ -28,3 +30,16 @@ export declare const getContainerDims: (element: ExcalidrawElement) => {
|
|
|
28
30
|
width: number;
|
|
29
31
|
height: number;
|
|
30
32
|
};
|
|
33
|
+
export declare const getContainerCenter: (container: ExcalidrawElement, appState: AppState) => {
|
|
34
|
+
x: number;
|
|
35
|
+
y: number;
|
|
36
|
+
};
|
|
37
|
+
export declare const getTextElementAngle: (textElement: ExcalidrawTextElement) => number;
|
|
38
|
+
export declare const getBoundTextElementOffset: (boundTextElement: ExcalidrawTextElement | null) => number;
|
|
39
|
+
export declare const getBoundTextElementPosition: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElementWithContainer) => {
|
|
40
|
+
x: number;
|
|
41
|
+
y: number;
|
|
42
|
+
} | undefined;
|
|
43
|
+
export declare const shouldAllowVerticalAlign: (selectedElements: NonDeletedExcalidrawElement[]) => boolean;
|
|
44
|
+
export declare const getTextBindableContainerAtPosition: (elements: readonly ExcalidrawElement[], appState: AppState, x: number, y: number) => ExcalidrawTextContainer | null;
|
|
45
|
+
export declare const isValidTextContainer: (element: ExcalidrawElement) => boolean;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ExcalidrawElement, NonDeletedExcalidrawElement, PointerType } from "./types";
|
|
2
|
-
import { Bounds } from "./bounds";
|
|
3
2
|
import { AppState, Zoom } from "../types";
|
|
4
3
|
export declare type TransformHandleDirection = "n" | "s" | "w" | "e" | "nw" | "ne" | "sw" | "se";
|
|
5
4
|
export declare type TransformHandleType = TransformHandleDirection | "rotation";
|
|
@@ -14,11 +13,11 @@ export declare const OMIT_SIDES_FOR_MULTIPLE_ELEMENTS: {
|
|
|
14
13
|
n: boolean;
|
|
15
14
|
w: boolean;
|
|
16
15
|
};
|
|
17
|
-
export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2]:
|
|
16
|
+
export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [number, number, number, number, number, number], angle: number, zoom: Zoom, pointerType: PointerType, omitSides?: {
|
|
18
17
|
s?: boolean | undefined;
|
|
19
18
|
e?: boolean | undefined;
|
|
20
|
-
w?: boolean | undefined;
|
|
21
19
|
n?: boolean | undefined;
|
|
20
|
+
w?: boolean | undefined;
|
|
22
21
|
nw?: boolean | undefined;
|
|
23
22
|
ne?: boolean | undefined;
|
|
24
23
|
sw?: boolean | undefined;
|