@excalidraw/element 0.18.0-063e025 → 0.18.0-1118751
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 +13047 -9808
- package/dist/dev/index.js.map +4 -4
- package/dist/prod/index.js +19 -19
- package/dist/types/common/src/colors.d.ts +22 -0
- package/dist/types/common/src/constants.d.ts +54 -0
- package/dist/types/common/src/keys.d.ts +4 -0
- package/dist/types/common/src/points.d.ts +1 -1
- package/dist/types/common/src/random.d.ts +7 -0
- package/dist/types/common/src/utils.d.ts +1 -1
- package/dist/types/element/src/Scene.d.ts +1 -1
- package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
- package/dist/types/element/src/arrows/focus.d.ts +5 -2
- package/dist/types/element/src/binding.d.ts +15 -8
- package/dist/types/element/src/bucketFill.d.ts +110 -0
- package/dist/types/element/src/collision.d.ts +8 -5
- package/dist/types/element/src/comparisons.d.ts +7 -5
- package/dist/types/element/src/convertToShape.d.ts +23 -0
- package/dist/types/element/src/delta.d.ts +23 -1
- package/dist/types/element/src/dragElements.d.ts +27 -0
- package/dist/types/element/src/duplicate.d.ts +60 -0
- package/dist/types/element/src/flowchart.d.ts +10 -6
- package/dist/types/element/src/frame.d.ts +2 -2
- package/dist/types/element/src/groups.d.ts +1 -1
- package/dist/types/element/src/index.d.ts +4 -0
- package/dist/types/element/src/linearElementEditor.d.ts +17 -0
- package/dist/types/element/src/mutateElement.d.ts +1 -1
- package/dist/types/element/src/newElement.d.ts +37 -2
- package/dist/types/element/src/renderElement.d.ts +21 -4
- package/dist/types/element/src/selection.d.ts +1 -1
- package/dist/types/element/src/shape.d.ts +27 -1
- package/dist/types/element/src/sizeHelpers.d.ts +6 -0
- package/dist/types/element/src/sortElements.d.ts +10 -0
- package/dist/types/element/src/stickyNote.d.ts +183 -0
- package/dist/types/element/src/textElement.d.ts +7 -3
- package/dist/types/element/src/transform.d.ts +25 -6
- package/dist/types/element/src/typeChecks.d.ts +3 -2
- package/dist/types/element/src/types.d.ts +35 -6
- package/dist/types/element/src/utils.d.ts +15 -4
- package/dist/types/element/src/zindex.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +48 -9
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +32 -6
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +173 -576
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +32 -6
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +50 -10
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +13 -3
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +32 -6
- package/dist/types/excalidraw/actions/actionExport.d.ts +34 -8
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
- package/dist/types/excalidraw/actions/actionFrame.d.ts +99 -185
- package/dist/types/excalidraw/actions/actionGroup.d.ts +33 -7
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +68 -4
- package/dist/types/excalidraw/actions/actionLink.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionMenu.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionProperties.d.ts +45 -12
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionStyles.d.ts +17 -4
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +16 -3
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +17 -4
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +16 -3
- package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
- package/dist/types/excalidraw/actions/index.d.ts +1 -2
- package/dist/types/excalidraw/actions/manager.d.ts +1 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +5 -1
- package/dist/types/excalidraw/appState.d.ts +26 -5
- package/dist/types/excalidraw/components/Actions.d.ts +16 -10
- package/dist/types/excalidraw/components/App.arrowText.d.ts +104 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
- package/dist/types/excalidraw/components/App.d.ts +468 -99
- package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
- package/dist/types/excalidraw/components/App.duplicate.d.ts +51 -0
- package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
- package/dist/types/excalidraw/components/App.pan.d.ts +54 -0
- package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
- package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +8 -2
- package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +5 -1
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
- package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
- package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
- package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
- package/dist/types/excalidraw/components/IconButton.d.ts +48 -0
- package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
- package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
- package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
- package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
- package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
- package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
- package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
- package/dist/types/excalidraw/components/Popover.d.ts +1 -3
- package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
- package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
- package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
- package/dist/types/excalidraw/components/Tools.d.ts +151 -0
- package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
- package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
- package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
- package/dist/types/excalidraw/components/UserList.d.ts +3 -2
- package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -0
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +2 -0
- package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
- package/dist/types/excalidraw/components/icons.d.ts +5 -1
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +2 -1
- package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
- package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
- package/dist/types/excalidraw/data/blob.d.ts +36 -10
- package/dist/types/excalidraw/data/json.d.ts +18 -5
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
- package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
- package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
- package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -1
- package/dist/types/excalidraw/scene/Renderer.d.ts +64 -2
- package/dist/types/excalidraw/scene/index.d.ts +1 -1
- package/dist/types/excalidraw/scene/types.d.ts +6 -1
- package/dist/types/excalidraw/types.d.ts +341 -21
- package/dist/types/excalidraw/viewport.d.ts +31 -66
- package/dist/types/laser-pointer/src/state.d.ts +1 -0
- package/dist/types/math/src/curve.d.ts +19 -12
- package/dist/types/math/src/index.d.ts +1 -0
- package/dist/types/math/src/pca.d.ts +79 -0
- package/dist/types/math/src/polygon.d.ts +25 -1
- package/dist/types/math/src/segment.d.ts +6 -0
- package/dist/types/utils/src/export.d.ts +1 -0
- package/dist/types/utils/src/shape.d.ts +2 -2
- package/package.json +4 -4
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +0 -173
- package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
- package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
- package/dist/types/excalidraw/components/ToolButton.d.ts +0 -49
- package/dist/types/excalidraw/components/shapes.d.ts +0 -270
- package/dist/types/excalidraw/cursor.d.ts +0 -5
- package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
|
@@ -73,10 +73,15 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
73
73
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
74
74
|
isBindingEnabled: boolean;
|
|
75
75
|
isMidpointSnappingEnabled: boolean;
|
|
76
|
+
gridModeEnabled: boolean;
|
|
76
77
|
suggestedBinding: {
|
|
77
78
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
78
79
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
79
80
|
} | null;
|
|
81
|
+
hoveredArrowTextAnchor: {
|
|
82
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
83
|
+
anchor: "start" | "end" | "label";
|
|
84
|
+
} | null;
|
|
80
85
|
isRotating: boolean;
|
|
81
86
|
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
82
87
|
collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
|
|
@@ -96,8 +101,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
96
101
|
shouldCacheIgnoreZoom: boolean;
|
|
97
102
|
exportScale: number;
|
|
98
103
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
99
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
100
104
|
gridSize: number;
|
|
105
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
101
106
|
contextMenu: {
|
|
102
107
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
103
108
|
top: number;
|
|
@@ -109,7 +114,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
109
114
|
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
110
115
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
111
116
|
bindingPreference: "enabled" | "disabled";
|
|
112
|
-
|
|
117
|
+
inputDevice: import("../types").InputDevice;
|
|
118
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
113
119
|
preferredSelectionTool: {
|
|
114
120
|
type: "selection" | "lasso";
|
|
115
121
|
initialized: boolean;
|
|
@@ -120,6 +126,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
120
126
|
exportEmbedScene: boolean;
|
|
121
127
|
exportWithDarkMode: boolean;
|
|
122
128
|
currentItemStrokeColor: string;
|
|
129
|
+
currentItemStickynoteStrokeColor: string;
|
|
130
|
+
currentItemStickynoteBackgroundColor: string;
|
|
123
131
|
currentItemBackgroundColor: string;
|
|
124
132
|
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
125
133
|
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
@@ -156,7 +164,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
156
164
|
duration?: number;
|
|
157
165
|
} | null;
|
|
158
166
|
gridStep: number;
|
|
159
|
-
gridModeEnabled: boolean;
|
|
160
167
|
fileHandle: FileSystemFileHandle | null;
|
|
161
168
|
stats: {
|
|
162
169
|
open: boolean;
|
|
@@ -168,11 +175,17 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
168
175
|
y: number;
|
|
169
176
|
} | null;
|
|
170
177
|
objectsSnapModeEnabled: boolean;
|
|
171
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
172
|
-
followedBy: Set<import("../types").SocketId>;
|
|
173
178
|
lockedMultiSelections: {
|
|
174
179
|
[groupId: string]: true;
|
|
175
180
|
};
|
|
181
|
+
colorTopPicks: {
|
|
182
|
+
elementStroke: readonly string[] | null;
|
|
183
|
+
elementBackground: readonly string[] | null;
|
|
184
|
+
bucketFill: readonly string[] | null;
|
|
185
|
+
stickyNoteStroke: readonly string[] | null;
|
|
186
|
+
stickyNoteBackground: readonly string[] | null;
|
|
187
|
+
};
|
|
188
|
+
fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
|
|
176
189
|
};
|
|
177
190
|
files: import("../types").BinaryFiles;
|
|
178
191
|
};
|
|
@@ -240,10 +253,15 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
240
253
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
241
254
|
isBindingEnabled: boolean;
|
|
242
255
|
isMidpointSnappingEnabled: boolean;
|
|
256
|
+
gridModeEnabled: boolean;
|
|
243
257
|
suggestedBinding: {
|
|
244
258
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
245
259
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
246
260
|
} | null;
|
|
261
|
+
hoveredArrowTextAnchor: {
|
|
262
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
263
|
+
anchor: "start" | "end" | "label";
|
|
264
|
+
} | null;
|
|
247
265
|
isRotating: boolean;
|
|
248
266
|
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
249
267
|
collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
|
|
@@ -263,8 +281,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
263
281
|
shouldCacheIgnoreZoom: boolean;
|
|
264
282
|
exportScale: number;
|
|
265
283
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
266
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
267
284
|
gridSize: number;
|
|
285
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
268
286
|
contextMenu: {
|
|
269
287
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
270
288
|
top: number;
|
|
@@ -276,7 +294,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
276
294
|
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
277
295
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
278
296
|
bindingPreference: "enabled" | "disabled";
|
|
279
|
-
|
|
297
|
+
inputDevice: import("../types").InputDevice;
|
|
298
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
280
299
|
preferredSelectionTool: {
|
|
281
300
|
type: "selection" | "lasso";
|
|
282
301
|
initialized: boolean;
|
|
@@ -287,6 +306,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
287
306
|
exportEmbedScene: boolean;
|
|
288
307
|
exportWithDarkMode: boolean;
|
|
289
308
|
currentItemStrokeColor: string;
|
|
309
|
+
currentItemStickynoteStrokeColor: string;
|
|
310
|
+
currentItemStickynoteBackgroundColor: string;
|
|
290
311
|
currentItemBackgroundColor: string;
|
|
291
312
|
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
292
313
|
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
@@ -323,7 +344,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
323
344
|
duration?: number;
|
|
324
345
|
} | null;
|
|
325
346
|
gridStep: number;
|
|
326
|
-
gridModeEnabled: boolean;
|
|
327
347
|
fileHandle: FileSystemFileHandle | null;
|
|
328
348
|
stats: {
|
|
329
349
|
open: boolean;
|
|
@@ -335,11 +355,17 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
335
355
|
y: number;
|
|
336
356
|
} | null;
|
|
337
357
|
objectsSnapModeEnabled: boolean;
|
|
338
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
339
|
-
followedBy: Set<import("../types").SocketId>;
|
|
340
358
|
lockedMultiSelections: {
|
|
341
359
|
[groupId: string]: true;
|
|
342
360
|
};
|
|
361
|
+
colorTopPicks: {
|
|
362
|
+
elementStroke: readonly string[] | null;
|
|
363
|
+
elementBackground: readonly string[] | null;
|
|
364
|
+
bucketFill: readonly string[] | null;
|
|
365
|
+
stickyNoteStroke: readonly string[] | null;
|
|
366
|
+
stickyNoteBackground: readonly string[] | null;
|
|
367
|
+
};
|
|
368
|
+
fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
|
|
343
369
|
};
|
|
344
370
|
files: import("../types").BinaryFiles;
|
|
345
371
|
}>;
|
|
@@ -71,10 +71,15 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
71
71
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
72
72
|
isBindingEnabled: boolean;
|
|
73
73
|
isMidpointSnappingEnabled: boolean;
|
|
74
|
+
gridModeEnabled: boolean;
|
|
74
75
|
suggestedBinding: {
|
|
75
76
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
76
77
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
77
78
|
} | null;
|
|
79
|
+
hoveredArrowTextAnchor: {
|
|
80
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
81
|
+
anchor: "start" | "end" | "label";
|
|
82
|
+
} | null;
|
|
78
83
|
isRotating: boolean;
|
|
79
84
|
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
80
85
|
collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
|
|
@@ -94,8 +99,8 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
94
99
|
shouldCacheIgnoreZoom: boolean;
|
|
95
100
|
exportScale: number;
|
|
96
101
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
97
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
98
102
|
gridSize: number;
|
|
103
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
99
104
|
contextMenu: {
|
|
100
105
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
101
106
|
top: number;
|
|
@@ -107,7 +112,8 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
107
112
|
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
108
113
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
109
114
|
bindingPreference: "enabled" | "disabled";
|
|
110
|
-
|
|
115
|
+
inputDevice: import("../types").InputDevice;
|
|
116
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
111
117
|
preferredSelectionTool: {
|
|
112
118
|
type: "selection" | "lasso";
|
|
113
119
|
initialized: boolean;
|
|
@@ -118,6 +124,8 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
118
124
|
exportEmbedScene: boolean;
|
|
119
125
|
exportWithDarkMode: boolean;
|
|
120
126
|
currentItemStrokeColor: string;
|
|
127
|
+
currentItemStickynoteStrokeColor: string;
|
|
128
|
+
currentItemStickynoteBackgroundColor: string;
|
|
121
129
|
currentItemBackgroundColor: string;
|
|
122
130
|
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
123
131
|
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
@@ -154,7 +162,6 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
154
162
|
duration?: number;
|
|
155
163
|
} | null;
|
|
156
164
|
gridStep: number;
|
|
157
|
-
gridModeEnabled: boolean;
|
|
158
165
|
fileHandle: FileSystemFileHandle | null;
|
|
159
166
|
stats: {
|
|
160
167
|
open: boolean;
|
|
@@ -166,11 +173,17 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
166
173
|
y: number;
|
|
167
174
|
} | null;
|
|
168
175
|
objectsSnapModeEnabled: boolean;
|
|
169
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
170
|
-
followedBy: Set<import("../types").SocketId>;
|
|
171
176
|
lockedMultiSelections: {
|
|
172
177
|
[groupId: string]: true;
|
|
173
178
|
};
|
|
179
|
+
colorTopPicks: {
|
|
180
|
+
elementStroke: readonly string[] | null;
|
|
181
|
+
elementBackground: readonly string[] | null;
|
|
182
|
+
bucketFill: readonly string[] | null;
|
|
183
|
+
stickyNoteStroke: readonly string[] | null;
|
|
184
|
+
stickyNoteBackground: readonly string[] | null;
|
|
185
|
+
};
|
|
186
|
+
fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
|
|
174
187
|
};
|
|
175
188
|
files: BinaryFiles;
|
|
176
189
|
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GlobalPoint } from "@excalidraw/math";
|
|
2
|
+
import type App from "./components/App";
|
|
3
|
+
import type { Trail } from "./animatedTrail";
|
|
4
|
+
export declare class DrawShapeTrail implements Trail {
|
|
5
|
+
private app;
|
|
6
|
+
private trail;
|
|
7
|
+
constructor(app: App);
|
|
8
|
+
private getTrailOptions;
|
|
9
|
+
startPath(x: number, y: number): void;
|
|
10
|
+
addPointToPath(x: number, y: number): void;
|
|
11
|
+
endPath(): void;
|
|
12
|
+
clearTrails(): void;
|
|
13
|
+
getCurrentPoints(): GlobalPoint[];
|
|
14
|
+
start(container: SVGSVGElement): void;
|
|
15
|
+
stop(): void;
|
|
16
|
+
}
|
|
@@ -15,7 +15,8 @@ export declare class Fonts {
|
|
|
15
15
|
fontFaces: ExcalidrawFontFace[];
|
|
16
16
|
}>;
|
|
17
17
|
private readonly scene;
|
|
18
|
-
|
|
18
|
+
private readonly ownerDocument;
|
|
19
|
+
constructor(scene: Scene, ownerDocument?: Document);
|
|
19
20
|
/**
|
|
20
21
|
* Get all the font families for the given scene.
|
|
21
22
|
*/
|
|
@@ -36,7 +37,7 @@ export declare class Fonts {
|
|
|
36
37
|
/**
|
|
37
38
|
* Load font faces for passed elements - use when the scene is unavailable (i.e. export).
|
|
38
39
|
*/
|
|
39
|
-
static loadElementsFonts: (elements: readonly ExcalidrawElement[]) => Promise<FontFace[]>;
|
|
40
|
+
static loadElementsFonts: (elements: readonly ExcalidrawElement[], ownerDocument?: Document) => Promise<FontFace[]>;
|
|
40
41
|
/**
|
|
41
42
|
* Generate CSS @font-face declarations for the given elements.
|
|
42
43
|
*/
|
|
@@ -2,13 +2,13 @@ export type CaretPosition = {
|
|
|
2
2
|
start: number;
|
|
3
3
|
end: number;
|
|
4
4
|
};
|
|
5
|
-
export declare const saveCaretPosition: () => CaretPosition | null;
|
|
6
|
-
export declare const restoreCaretPosition: (position: CaretPosition | null) => void;
|
|
7
|
-
export declare const withCaretPositionPreservation: (callback: () => void, isCompactMode: boolean, isEditingText: boolean, onPreventClose?: () => void) => void;
|
|
8
|
-
export declare const useTextEditorFocus: () => {
|
|
5
|
+
export declare const saveCaretPosition: (ownerDocument?: Document) => CaretPosition | null;
|
|
6
|
+
export declare const restoreCaretPosition: (position: CaretPosition | null, ownerDocument?: Document) => void;
|
|
7
|
+
export declare const withCaretPositionPreservation: (callback: () => void, isCompactMode: boolean, isEditingText: boolean, onPreventClose?: () => void, ownerDocument?: Document) => void;
|
|
8
|
+
export declare const useTextEditorFocus: (ownerDocument?: Document) => {
|
|
9
9
|
saveCaretPosition: () => void;
|
|
10
10
|
restoreCaretPosition: () => void;
|
|
11
11
|
clearSavedPosition: () => void;
|
|
12
12
|
hasSavedPosition: boolean;
|
|
13
13
|
};
|
|
14
|
-
export declare const temporarilyDisableTextEditorBlur: (duration?: number) => void;
|
|
14
|
+
export declare const temporarilyDisableTextEditorBlur: (ownerDocument?: Document, duration?: number) => void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ElementsSegmentsMap, GlobalPoint } from "@excalidraw/math/types";
|
|
2
2
|
import type { ElementsMap, ExcalidrawElement } from "@excalidraw/element/types";
|
|
3
|
+
import type { BoxSelectionMode } from "../types";
|
|
3
4
|
export declare const getLassoSelectedElementIds: (input: {
|
|
4
5
|
lassoPath: GlobalPoint[];
|
|
5
6
|
elements: readonly ExcalidrawElement[];
|
|
@@ -8,6 +9,7 @@ export declare const getLassoSelectedElementIds: (input: {
|
|
|
8
9
|
intersectedElements: Set<ExcalidrawElement["id"]>;
|
|
9
10
|
enclosedElements: Set<ExcalidrawElement["id"]>;
|
|
10
11
|
simplifyDistance?: number;
|
|
12
|
+
mode?: BoxSelectionMode;
|
|
11
13
|
}) => {
|
|
12
14
|
selectedElementIds: string[];
|
|
13
15
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ElementRenderOffsets, ElementRenderOverrides } from "./types";
|
|
2
|
+
/** Validate and copy before publishing, so a rejected snapshot changes nothing. */
|
|
3
|
+
export declare const copyElementRenderOverrides: (overrides: ElementRenderOverrides | null) => ElementRenderOverrides;
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the offsets of a snapshot, returning `previous` when they are the
|
|
6
|
+
* same. Visibility is memoized on this map's identity, so a snapshot that only
|
|
7
|
+
* changes opacities (a fade) never re-runs viewport geometry.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getElementRenderOffsets: (overrides: ElementRenderOverrides, previous: ElementRenderOffsets) => ElementRenderOffsets;
|
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import type { StaticCanvasRenderConfig } from "../scene/types";
|
|
2
2
|
import type { AppState, StaticCanvasAppState } from "../types";
|
|
3
|
+
export declare const DEFAULT_SELECTION_COLOR = "#6965db";
|
|
4
|
+
/**
|
|
5
|
+
* Returns the theme's selection color (`--color-selection`), read from the
|
|
6
|
+
* computed style of any element inside the editor container so that host
|
|
7
|
+
* overrides are respected. Falls back to the default when unavailable.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getSelectionColor: (element: Element | null | undefined) => string;
|
|
3
10
|
export declare const fillCircle: (context: CanvasRenderingContext2D, cx: number, cy: number, radius: number, stroke: boolean, fill?: boolean) => void;
|
|
11
|
+
/**
|
|
12
|
+
* The scroll the renderers draw at: the real one, rounded to whole device
|
|
13
|
+
* pixels. Panning writes a fractional scroll (pointer delta ÷ zoom), and an
|
|
14
|
+
* element's cached bitmap blitted at a fractional device offset gets
|
|
15
|
+
* resampled — so as the fraction drifts under a pan, every element pulses
|
|
16
|
+
* between crisp and soft. A whole-pixel scroll moves the scene the way a
|
|
17
|
+
* browser scrolls a page: each element keeps its own, constant sub-pixel
|
|
18
|
+
* phase and a pan never changes how anything is filtered. The difference
|
|
19
|
+
* stays under half a device pixel, so hit-testing and DOM overlays keep
|
|
20
|
+
* using the real scroll. Identity when nothing needs to change.
|
|
21
|
+
*/
|
|
22
|
+
export declare const snapScrollToDevicePixels: <T extends {
|
|
23
|
+
scrollX: number;
|
|
24
|
+
scrollY: number;
|
|
25
|
+
zoom: {
|
|
26
|
+
value: number;
|
|
27
|
+
};
|
|
28
|
+
}>(appState: T, scale: number) => T;
|
|
4
29
|
export declare const getNormalizedCanvasDimensions: (canvas: HTMLCanvasElement, scale: number) => [number, number];
|
|
5
30
|
export declare const bootstrapCanvas: ({ canvas, scale, normalizedWidth, normalizedHeight, theme, isExporting, viewBackgroundColor, }: {
|
|
6
31
|
canvas: HTMLCanvasElement;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getScrollBars } from "../scene/scrollbars";
|
|
2
2
|
import type { InteractiveSceneRenderConfig } from "../scene/types";
|
|
3
|
-
declare const _renderInteractiveScene: ({ app, canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, editorInterface, animationState, deltaTime, }: InteractiveSceneRenderConfig) => {
|
|
3
|
+
declare const _renderInteractiveScene: ({ app, canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState: unsnappedAppState, renderConfig, editorInterface, animationState, deltaTime, }: InteractiveSceneRenderConfig) => {
|
|
4
4
|
scrollBars?: ReturnType<typeof getScrollBars>;
|
|
5
5
|
animationState?: typeof animationState;
|
|
6
6
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
2
2
|
import type { Scene } from "@excalidraw/element";
|
|
3
3
|
import type { RenderableElementsMap } from "./types";
|
|
4
|
-
import type { AppState } from "../types";
|
|
4
|
+
import type { AppState, ElementRenderOffsets } from "../types";
|
|
5
5
|
type GetRenderableElementsOpts = {
|
|
6
6
|
zoom: AppState["zoom"];
|
|
7
7
|
offsetLeft: AppState["offsetLeft"];
|
|
@@ -19,6 +19,19 @@ type GetRenderableElementsOpts = {
|
|
|
19
19
|
export declare class Renderer {
|
|
20
20
|
private scene;
|
|
21
21
|
constructor(scene: Scene);
|
|
22
|
+
/**
|
|
23
|
+
* Adjusts the document-visible set for render-override translations: an
|
|
24
|
+
* element leaves it when its offset moves it out of view and enters it when
|
|
25
|
+
* its offset brings it in; everything else keeps its document visibility.
|
|
26
|
+
* Only translated elements go through viewport geometry. The result is
|
|
27
|
+
* memoized on the offsets' identity so that opacity-only snapshots don't
|
|
28
|
+
* reach it at all.
|
|
29
|
+
*/
|
|
30
|
+
getVisibleElementsWithRenderOffsets(visibleElements: readonly NonDeletedExcalidrawElement[], elementsMap: RenderableElementsMap, appState: AppState, offsets: ElementRenderOffsets): readonly NonDeletedExcalidrawElement[];
|
|
31
|
+
private _getVisibleElementsWithRenderOffsets;
|
|
32
|
+
/** the document-visible elements as a set, cached per visible array */
|
|
33
|
+
private visibleSets;
|
|
34
|
+
private getVisibleSet;
|
|
22
35
|
private getVisibleCanvasElements;
|
|
23
36
|
private getRenderableElementsMap;
|
|
24
37
|
private sortSelectedElementsIntoHighlightedFrame;
|
|
@@ -53,6 +66,7 @@ export declare class Renderer {
|
|
|
53
66
|
frameId: string | null;
|
|
54
67
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
55
68
|
updated: number;
|
|
69
|
+
created: number | null;
|
|
56
70
|
link: string | null;
|
|
57
71
|
locked: boolean;
|
|
58
72
|
customData?: Record<string, any>;
|
|
@@ -92,6 +106,7 @@ export declare class Renderer {
|
|
|
92
106
|
frameId: string | null;
|
|
93
107
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
94
108
|
updated: number;
|
|
109
|
+
created: number | null;
|
|
95
110
|
link: string | null;
|
|
96
111
|
locked: boolean;
|
|
97
112
|
customData?: Record<string, any>;
|
|
@@ -126,6 +141,43 @@ export declare class Renderer {
|
|
|
126
141
|
frameId: string | null;
|
|
127
142
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
128
143
|
updated: number;
|
|
144
|
+
created: number | null;
|
|
145
|
+
link: string | null;
|
|
146
|
+
locked: boolean;
|
|
147
|
+
customData?: Record<string, any>;
|
|
148
|
+
}> & Readonly<{
|
|
149
|
+
type: "stickynote";
|
|
150
|
+
baseHeight: number;
|
|
151
|
+
}> & {
|
|
152
|
+
isDeleted: false;
|
|
153
|
+
}) | (Readonly<{
|
|
154
|
+
id: string;
|
|
155
|
+
x: number;
|
|
156
|
+
y: number;
|
|
157
|
+
strokeColor: string;
|
|
158
|
+
backgroundColor: string;
|
|
159
|
+
fillStyle: import("@excalidraw/element/types").FillStyle;
|
|
160
|
+
strokeWidth: number;
|
|
161
|
+
strokeStyle: import("@excalidraw/element/types").StrokeStyle;
|
|
162
|
+
roundness: null | {
|
|
163
|
+
type: import("@excalidraw/element/types").RoundnessType;
|
|
164
|
+
value?: number;
|
|
165
|
+
};
|
|
166
|
+
roughness: number;
|
|
167
|
+
opacity: number;
|
|
168
|
+
width: number;
|
|
169
|
+
height: number;
|
|
170
|
+
angle: import("@excalidraw/math").Radians;
|
|
171
|
+
seed: number;
|
|
172
|
+
version: number;
|
|
173
|
+
versionNonce: number;
|
|
174
|
+
index: import("@excalidraw/element/types").FractionalIndex | null;
|
|
175
|
+
isDeleted: boolean;
|
|
176
|
+
groupIds: readonly import("@excalidraw/element/types").GroupId[];
|
|
177
|
+
frameId: string | null;
|
|
178
|
+
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
179
|
+
updated: number;
|
|
180
|
+
created: number | null;
|
|
129
181
|
link: string | null;
|
|
130
182
|
locked: boolean;
|
|
131
183
|
customData?: Record<string, any>;
|
|
@@ -160,6 +212,7 @@ export declare class Renderer {
|
|
|
160
212
|
frameId: string | null;
|
|
161
213
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
162
214
|
updated: number;
|
|
215
|
+
created: number | null;
|
|
163
216
|
link: string | null;
|
|
164
217
|
locked: boolean;
|
|
165
218
|
customData?: Record<string, any>;
|
|
@@ -194,6 +247,7 @@ export declare class Renderer {
|
|
|
194
247
|
frameId: string | null;
|
|
195
248
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
196
249
|
updated: number;
|
|
250
|
+
created: number | null;
|
|
197
251
|
link: string | null;
|
|
198
252
|
locked: boolean;
|
|
199
253
|
customData?: Record<string, any>;
|
|
@@ -228,6 +282,7 @@ export declare class Renderer {
|
|
|
228
282
|
frameId: string | null;
|
|
229
283
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
230
284
|
updated: number;
|
|
285
|
+
created: number | null;
|
|
231
286
|
link: string | null;
|
|
232
287
|
locked: boolean;
|
|
233
288
|
customData?: Record<string, any>;
|
|
@@ -265,6 +320,7 @@ export declare class Renderer {
|
|
|
265
320
|
frameId: string | null;
|
|
266
321
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
267
322
|
updated: number;
|
|
323
|
+
created: number | null;
|
|
268
324
|
link: string | null;
|
|
269
325
|
locked: boolean;
|
|
270
326
|
customData?: Record<string, any>;
|
|
@@ -303,6 +359,7 @@ export declare class Renderer {
|
|
|
303
359
|
frameId: string | null;
|
|
304
360
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
305
361
|
updated: number;
|
|
362
|
+
created: number | null;
|
|
306
363
|
link: string | null;
|
|
307
364
|
locked: boolean;
|
|
308
365
|
customData?: Record<string, any>;
|
|
@@ -338,6 +395,7 @@ export declare class Renderer {
|
|
|
338
395
|
frameId: string | null;
|
|
339
396
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
340
397
|
updated: number;
|
|
398
|
+
created: number | null;
|
|
341
399
|
link: string | null;
|
|
342
400
|
locked: boolean;
|
|
343
401
|
customData?: Record<string, any>;
|
|
@@ -373,6 +431,7 @@ export declare class Renderer {
|
|
|
373
431
|
frameId: string | null;
|
|
374
432
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
375
433
|
updated: number;
|
|
434
|
+
created: number | null;
|
|
376
435
|
link: string | null;
|
|
377
436
|
locked: boolean;
|
|
378
437
|
customData?: Record<string, any>;
|
|
@@ -380,15 +439,17 @@ export declare class Renderer {
|
|
|
380
439
|
type: "text";
|
|
381
440
|
fontSize: number;
|
|
382
441
|
fontFamily: import("@excalidraw/element/types").FontFamilyValues;
|
|
442
|
+
baseFontSize: number | null;
|
|
383
443
|
text: string;
|
|
384
444
|
textAlign: import("@excalidraw/element/types").TextAlign;
|
|
385
445
|
verticalAlign: import("@excalidraw/element/types").VerticalAlign;
|
|
386
|
-
containerId: import("@excalidraw/element/types").
|
|
446
|
+
containerId: import("@excalidraw/element/types").ExcalidrawTextContainer["id"] | null;
|
|
387
447
|
originalText: string;
|
|
388
448
|
autoResize: boolean;
|
|
389
449
|
lineHeight: number & {
|
|
390
450
|
_brand: "unitlessLineHeight";
|
|
391
451
|
};
|
|
452
|
+
labelPosition?: number | null;
|
|
392
453
|
}> & {
|
|
393
454
|
isDeleted: false;
|
|
394
455
|
}) | (Readonly<{
|
|
@@ -418,6 +479,7 @@ export declare class Renderer {
|
|
|
418
479
|
frameId: string | null;
|
|
419
480
|
boundElements: readonly import("@excalidraw/element/types").BoundElement[] | null;
|
|
420
481
|
updated: number;
|
|
482
|
+
created: number | null;
|
|
421
483
|
link: string | null;
|
|
422
484
|
locked: boolean;
|
|
423
485
|
customData?: Record<string, any>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { isSomeElementSelected, getElementsWithinSelection, getSelectedElements, getTargetElements, } from "@excalidraw/element";
|
|
2
2
|
export { getScrollToContentState } from "../viewport";
|
|
3
|
-
export { hasBackground, hasStrokeWidth, hasStrokeStyle, hasFreedrawMode, canHaveArrowheads, canChangeRoundness, } from "@excalidraw/element";
|
|
3
|
+
export { hasBackground, hasFillStyle, hasRoughness, hasStrokeWidth, hasStrokeStyle, hasFreedrawMode, canHaveArrowheads, canChangeRoundness, } from "@excalidraw/element";
|
|
4
4
|
export { getNormalizedZoom, getNormalizedGridSize, getNormalizedGridStep, } from "./normalize";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { UserIdleState, EditorInterface } from "@excalidraw/common";
|
|
2
2
|
import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
|
|
3
3
|
import type { MakeBrand } from "@excalidraw/common/utility-types";
|
|
4
|
-
import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, PendingExcalidrawElements } from "../types";
|
|
4
|
+
import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementRenderOverrides, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, PendingExcalidrawElements } from "../types";
|
|
5
5
|
import type { RoughCanvas } from "roughjs/bin/canvas";
|
|
6
6
|
import type { Drawable } from "roughjs/bin/core";
|
|
7
7
|
export type RenderableElementsMap = NonDeletedElementsMap & MakeBrand<"RenderableElementsMap">;
|
|
@@ -9,6 +9,9 @@ export type StaticCanvasRenderConfig = {
|
|
|
9
9
|
canvasBackgroundColor: AppState["viewBackgroundColor"];
|
|
10
10
|
imageCache: AppClassProperties["imageCache"];
|
|
11
11
|
renderGrid: boolean;
|
|
12
|
+
/** whether to render link icons on elements with links (never rendered
|
|
13
|
+
when exporting). @default true */
|
|
14
|
+
renderLinks?: boolean;
|
|
12
15
|
/** when exporting the behavior is slightly different (e.g. we can't use
|
|
13
16
|
CSS filters), and we disable render optimizations for best output */
|
|
14
17
|
isExporting: boolean;
|
|
@@ -16,6 +19,7 @@ export type StaticCanvasRenderConfig = {
|
|
|
16
19
|
elementsPendingErasure: ElementsPendingErasure;
|
|
17
20
|
pendingFlowchartNodes: PendingExcalidrawElements | null;
|
|
18
21
|
theme: AppState["theme"];
|
|
22
|
+
elementRenderOverrides?: ElementRenderOverrides;
|
|
19
23
|
};
|
|
20
24
|
export type SVGRenderConfig = {
|
|
21
25
|
offsetX: number;
|
|
@@ -129,6 +133,7 @@ export type ElementShapes = {
|
|
|
129
133
|
arrow: Drawable[];
|
|
130
134
|
line: Drawable[];
|
|
131
135
|
text: null;
|
|
136
|
+
stickynote: null;
|
|
132
137
|
image: null;
|
|
133
138
|
frame: null;
|
|
134
139
|
magicframe: null;
|