@excalidraw/element 0.18.0-4a5c9e9 → 0.18.0-4ce38fb
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 +11944 -8172
- package/dist/dev/index.js.map +4 -4
- package/dist/prod/index.js +21 -20
- package/dist/types/common/src/colors.d.ts +23 -1
- package/dist/types/common/src/constants.d.ts +66 -7
- 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 +6 -43
- package/dist/types/element/src/Scene.d.ts +7 -5
- package/dist/types/element/src/align.d.ts +2 -2
- 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 +28 -13
- package/dist/types/element/src/bounds.d.ts +22 -7
- package/dist/types/element/src/bucketFill.d.ts +110 -0
- package/dist/types/element/src/collision.d.ts +14 -5
- package/dist/types/element/src/comparisons.d.ts +8 -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/distribute.d.ts +2 -2
- package/dist/types/element/src/dragElements.d.ts +27 -0
- package/dist/types/element/src/duplicate.d.ts +64 -3
- package/dist/types/element/src/embeddable.d.ts +2 -2
- package/dist/types/element/src/flowchart.d.ts +11 -7
- package/dist/types/element/src/fractionalIndex.d.ts +2 -2
- package/dist/types/element/src/frame.d.ts +11 -10
- package/dist/types/element/src/groups.d.ts +9 -9
- package/dist/types/element/src/index.d.ts +6 -1
- package/dist/types/element/src/linearElementEditor.d.ts +27 -10
- package/dist/types/element/src/listMarker.d.ts +34 -0
- package/dist/types/element/src/mutateElement.d.ts +1 -1
- package/dist/types/element/src/newElement.d.ts +53 -3
- package/dist/types/element/src/renderElement.d.ts +21 -7
- package/dist/types/element/src/resizeElements.d.ts +2 -2
- package/dist/types/element/src/selection.d.ts +6 -6
- 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 +20 -9
- package/dist/types/element/src/transform.d.ts +26 -7
- package/dist/types/element/src/typeChecks.d.ts +29 -27
- package/dist/types/element/src/types.d.ts +43 -7
- package/dist/types/element/src/utils.d.ts +15 -4
- package/dist/types/element/src/visualdebug.d.ts +1 -2
- package/dist/types/element/src/zindex.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +87 -18
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +58 -12
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +265 -940
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +58 -12
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +29 -6
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +89 -19
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +29 -6
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +59 -13
- package/dist/types/excalidraw/actions/actionExport.d.ts +60 -14
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
- package/dist/types/excalidraw/actions/actionFrame.d.ts +150 -203
- package/dist/types/excalidraw/actions/actionGroup.d.ts +73 -27
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +84 -9
- package/dist/types/excalidraw/actions/actionLink.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionMenu.d.ts +29 -6
- package/dist/types/excalidraw/actions/actionProperties.d.ts +96 -34
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +34 -11
- package/dist/types/excalidraw/actions/actionStyles.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +33 -11
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +33 -11
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionToggleShowHints.d.ts} +45 -19
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +31 -8
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +30 -7
- package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
- package/dist/types/excalidraw/actions/index.d.ts +2 -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 +8 -4
- package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
- package/dist/types/excalidraw/appState.d.ts +30 -6
- package/dist/types/excalidraw/components/Actions.d.ts +17 -12
- package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/App.arrowText.d.ts +70 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
- package/dist/types/excalidraw/components/App.clipboard.d.ts +31 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
- package/dist/types/excalidraw/components/App.d.ts +301 -93
- package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
- package/dist/types/excalidraw/components/App.duplicate.d.ts +101 -0
- package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
- package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
- package/dist/types/excalidraw/components/App.text.d.ts +146 -0
- package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
- package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +113 -0
- package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
- 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/colorPickerUtils.d.ts +1 -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/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
- package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
- package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
- package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
- 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/Island.d.ts +7 -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/LibraryMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
- package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -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/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
- 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/SVGLayer.d.ts +1 -1
- package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
- package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
- package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
- 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/Tooltip.d.ts +15 -1
- 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 +3 -1
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +3 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
- package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
- package/dist/types/excalidraw/components/icons.d.ts +7 -1
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +10 -4
- 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 +62 -16
- package/dist/types/excalidraw/data/index.d.ts +4 -4
- package/dist/types/excalidraw/data/json.d.ts +37 -14
- package/dist/types/excalidraw/data/library.d.ts +1 -1
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- package/dist/types/excalidraw/eraser/index.d.ts +2 -3
- package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
- package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
- package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
- package/dist/types/excalidraw/lasso/index.d.ts +2 -3
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
- package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
- package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
- package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +2 -4
- package/dist/types/excalidraw/scene/Renderer.d.ts +489 -20
- package/dist/types/excalidraw/scene/export.d.ts +3 -3
- package/dist/types/excalidraw/scene/index.d.ts +2 -2
- package/dist/types/excalidraw/scene/types.d.ts +7 -4
- package/dist/types/excalidraw/snapping.d.ts +7 -7
- package/dist/types/excalidraw/types.d.ts +531 -29
- package/dist/types/excalidraw/viewport.d.ts +302 -0
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +13 -3
- package/dist/types/fractional-indexing/src/index.d.ts +29 -0
- package/dist/types/laser-pointer/src/index.d.ts +2 -0
- package/dist/types/laser-pointer/src/math.d.ts +16 -0
- package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
- package/dist/types/laser-pointer/src/state.d.ts +36 -0
- package/dist/types/math/src/constants.d.ts +0 -1
- package/dist/types/math/src/curve.d.ts +23 -13
- 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/point.d.ts +1 -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 +4 -3
- package/dist/types/utils/src/index.d.ts +1 -2
- package/dist/types/utils/src/shape.d.ts +2 -2
- package/package.json +4 -3
- package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
- 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 -263
- package/dist/types/excalidraw/cursor.d.ts +0 -5
- package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
- package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
- package/dist/types/utils/src/bbox.d.ts +0 -9
- package/dist/types/utils/src/withinBounds.d.ts +0 -19
|
@@ -30,13 +30,26 @@ export declare const actionToggleStats: {
|
|
|
30
30
|
multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
31
31
|
selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
32
32
|
isBindingEnabled: boolean;
|
|
33
|
+
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
33
34
|
bindingPreference: "enabled" | "disabled";
|
|
34
35
|
isMidpointSnappingEnabled: boolean;
|
|
35
|
-
|
|
36
|
+
showHints: boolean;
|
|
37
|
+
inputDevice: import("../types").InputDevice;
|
|
36
38
|
suggestedBinding: {
|
|
37
39
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
38
40
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
39
41
|
} | null;
|
|
42
|
+
textToolHover: {
|
|
43
|
+
type: "text";
|
|
44
|
+
elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
|
|
45
|
+
} | {
|
|
46
|
+
type: "container";
|
|
47
|
+
elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
|
|
48
|
+
} | {
|
|
49
|
+
type: "arrow";
|
|
50
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
51
|
+
anchor: "start" | "end" | "label";
|
|
52
|
+
} | null;
|
|
40
53
|
frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
41
54
|
frameRendering: {
|
|
42
55
|
enabled: boolean;
|
|
@@ -44,8 +57,8 @@ export declare const actionToggleStats: {
|
|
|
44
57
|
outline: boolean;
|
|
45
58
|
clip: boolean;
|
|
46
59
|
};
|
|
47
|
-
editingFrame:
|
|
48
|
-
elementsToHighlight: import("@excalidraw/element/types").
|
|
60
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
61
|
+
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
49
62
|
editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
|
|
50
63
|
activeTool: {
|
|
51
64
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
@@ -63,11 +76,14 @@ export declare const actionToggleStats: {
|
|
|
63
76
|
exportWithDarkMode: boolean;
|
|
64
77
|
exportScale: number;
|
|
65
78
|
currentItemStrokeColor: string;
|
|
79
|
+
currentItemStickynoteStrokeColor: string;
|
|
80
|
+
currentItemStickynoteBackgroundColor: string;
|
|
66
81
|
currentItemBackgroundColor: string;
|
|
67
82
|
currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
|
|
68
|
-
|
|
83
|
+
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
69
84
|
currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
|
|
70
85
|
currentItemRoughness: number;
|
|
86
|
+
currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
|
|
71
87
|
currentItemOpacity: number;
|
|
72
88
|
currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
|
|
73
89
|
currentItemFontSize: number;
|
|
@@ -80,6 +96,7 @@ export declare const actionToggleStats: {
|
|
|
80
96
|
viewBackgroundColor: string;
|
|
81
97
|
scrollX: number;
|
|
82
98
|
scrollY: number;
|
|
99
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
83
100
|
cursorButton: "up" | "down";
|
|
84
101
|
scrolledOutside: boolean;
|
|
85
102
|
name: string | null;
|
|
@@ -151,8 +168,6 @@ export declare const actionToggleStats: {
|
|
|
151
168
|
y: number;
|
|
152
169
|
} | null;
|
|
153
170
|
objectsSnapModeEnabled: boolean;
|
|
154
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
155
|
-
followedBy: Set<import("../types").SocketId>;
|
|
156
171
|
isCropping: boolean;
|
|
157
172
|
croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
|
|
158
173
|
searchMatches: Readonly<{
|
|
@@ -164,10 +179,18 @@ export declare const actionToggleStats: {
|
|
|
164
179
|
[groupId: string]: true;
|
|
165
180
|
};
|
|
166
181
|
bindMode: import("@excalidraw/element/types").BindMode;
|
|
182
|
+
colorTopPicks: {
|
|
183
|
+
elementStroke: readonly string[] | null;
|
|
184
|
+
elementBackground: readonly string[] | null;
|
|
185
|
+
bucketFill: readonly string[] | null;
|
|
186
|
+
stickyNoteStroke: readonly string[] | null;
|
|
187
|
+
stickyNoteBackground: readonly string[] | null;
|
|
188
|
+
};
|
|
189
|
+
fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
|
|
167
190
|
};
|
|
168
191
|
captureUpdate: "EVENTUALLY";
|
|
169
192
|
};
|
|
170
|
-
checked: (appState: Readonly<import("../types").
|
|
193
|
+
checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
|
|
171
194
|
keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
|
|
172
195
|
} & {
|
|
173
196
|
keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
|
|
@@ -27,13 +27,26 @@ export declare const actionToggleViewMode: {
|
|
|
27
27
|
multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
28
28
|
selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
29
29
|
isBindingEnabled: boolean;
|
|
30
|
+
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
30
31
|
bindingPreference: "enabled" | "disabled";
|
|
31
32
|
isMidpointSnappingEnabled: boolean;
|
|
32
|
-
|
|
33
|
+
showHints: boolean;
|
|
34
|
+
inputDevice: import("../types").InputDevice;
|
|
33
35
|
suggestedBinding: {
|
|
34
36
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
35
37
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
36
38
|
} | null;
|
|
39
|
+
textToolHover: {
|
|
40
|
+
type: "text";
|
|
41
|
+
elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
|
|
42
|
+
} | {
|
|
43
|
+
type: "container";
|
|
44
|
+
elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
|
|
45
|
+
} | {
|
|
46
|
+
type: "arrow";
|
|
47
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
48
|
+
anchor: "start" | "end" | "label";
|
|
49
|
+
} | null;
|
|
37
50
|
frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
38
51
|
frameRendering: {
|
|
39
52
|
enabled: boolean;
|
|
@@ -41,8 +54,8 @@ export declare const actionToggleViewMode: {
|
|
|
41
54
|
outline: boolean;
|
|
42
55
|
clip: boolean;
|
|
43
56
|
};
|
|
44
|
-
editingFrame:
|
|
45
|
-
elementsToHighlight: import("@excalidraw/element/types").
|
|
57
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
58
|
+
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
46
59
|
editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
|
|
47
60
|
activeTool: {
|
|
48
61
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
@@ -60,11 +73,14 @@ export declare const actionToggleViewMode: {
|
|
|
60
73
|
exportWithDarkMode: boolean;
|
|
61
74
|
exportScale: number;
|
|
62
75
|
currentItemStrokeColor: string;
|
|
76
|
+
currentItemStickynoteStrokeColor: string;
|
|
77
|
+
currentItemStickynoteBackgroundColor: string;
|
|
63
78
|
currentItemBackgroundColor: string;
|
|
64
79
|
currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
|
|
65
|
-
|
|
80
|
+
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
66
81
|
currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
|
|
67
82
|
currentItemRoughness: number;
|
|
83
|
+
currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
|
|
68
84
|
currentItemOpacity: number;
|
|
69
85
|
currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
|
|
70
86
|
currentItemFontSize: number;
|
|
@@ -77,6 +93,7 @@ export declare const actionToggleViewMode: {
|
|
|
77
93
|
viewBackgroundColor: string;
|
|
78
94
|
scrollX: number;
|
|
79
95
|
scrollY: number;
|
|
96
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
80
97
|
cursorButton: "up" | "down";
|
|
81
98
|
scrolledOutside: boolean;
|
|
82
99
|
name: string | null;
|
|
@@ -151,8 +168,6 @@ export declare const actionToggleViewMode: {
|
|
|
151
168
|
y: number;
|
|
152
169
|
} | null;
|
|
153
170
|
objectsSnapModeEnabled: boolean;
|
|
154
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
155
|
-
followedBy: Set<import("../types").SocketId>;
|
|
156
171
|
isCropping: boolean;
|
|
157
172
|
croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
|
|
158
173
|
searchMatches: Readonly<{
|
|
@@ -164,11 +179,19 @@ export declare const actionToggleViewMode: {
|
|
|
164
179
|
[groupId: string]: true;
|
|
165
180
|
};
|
|
166
181
|
bindMode: import("@excalidraw/element/types").BindMode;
|
|
182
|
+
colorTopPicks: {
|
|
183
|
+
elementStroke: readonly string[] | null;
|
|
184
|
+
elementBackground: readonly string[] | null;
|
|
185
|
+
bucketFill: readonly string[] | null;
|
|
186
|
+
stickyNoteStroke: readonly string[] | null;
|
|
187
|
+
stickyNoteBackground: readonly string[] | null;
|
|
188
|
+
};
|
|
189
|
+
fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
|
|
167
190
|
};
|
|
168
191
|
captureUpdate: "EVENTUALLY";
|
|
169
192
|
};
|
|
170
|
-
checked: (appState: Readonly<import("../types").
|
|
171
|
-
predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
|
|
193
|
+
checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
|
|
194
|
+
predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
|
|
172
195
|
keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
|
|
173
196
|
} & {
|
|
174
197
|
keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
|
|
@@ -27,13 +27,26 @@ export declare const actionToggleZenMode: {
|
|
|
27
27
|
multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
28
28
|
selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
29
29
|
isBindingEnabled: boolean;
|
|
30
|
+
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
30
31
|
bindingPreference: "enabled" | "disabled";
|
|
31
32
|
isMidpointSnappingEnabled: boolean;
|
|
32
|
-
|
|
33
|
+
showHints: boolean;
|
|
34
|
+
inputDevice: import("../types").InputDevice;
|
|
33
35
|
suggestedBinding: {
|
|
34
36
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
35
37
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
36
38
|
} | null;
|
|
39
|
+
textToolHover: {
|
|
40
|
+
type: "text";
|
|
41
|
+
elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
|
|
42
|
+
} | {
|
|
43
|
+
type: "container";
|
|
44
|
+
elementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
|
|
45
|
+
} | {
|
|
46
|
+
type: "arrow";
|
|
47
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
48
|
+
anchor: "start" | "end" | "label";
|
|
49
|
+
} | null;
|
|
37
50
|
frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
38
51
|
frameRendering: {
|
|
39
52
|
enabled: boolean;
|
|
@@ -41,8 +54,8 @@ export declare const actionToggleZenMode: {
|
|
|
41
54
|
outline: boolean;
|
|
42
55
|
clip: boolean;
|
|
43
56
|
};
|
|
44
|
-
editingFrame:
|
|
45
|
-
elementsToHighlight: import("@excalidraw/element/types").
|
|
57
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
58
|
+
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
46
59
|
editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
|
|
47
60
|
activeTool: {
|
|
48
61
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
@@ -60,11 +73,14 @@ export declare const actionToggleZenMode: {
|
|
|
60
73
|
exportWithDarkMode: boolean;
|
|
61
74
|
exportScale: number;
|
|
62
75
|
currentItemStrokeColor: string;
|
|
76
|
+
currentItemStickynoteStrokeColor: string;
|
|
77
|
+
currentItemStickynoteBackgroundColor: string;
|
|
63
78
|
currentItemBackgroundColor: string;
|
|
64
79
|
currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
|
|
65
|
-
|
|
80
|
+
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
66
81
|
currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
|
|
67
82
|
currentItemRoughness: number;
|
|
83
|
+
currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
|
|
68
84
|
currentItemOpacity: number;
|
|
69
85
|
currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
|
|
70
86
|
currentItemFontSize: number;
|
|
@@ -77,6 +93,7 @@ export declare const actionToggleZenMode: {
|
|
|
77
93
|
viewBackgroundColor: string;
|
|
78
94
|
scrollX: number;
|
|
79
95
|
scrollY: number;
|
|
96
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
80
97
|
cursorButton: "up" | "down";
|
|
81
98
|
scrolledOutside: boolean;
|
|
82
99
|
name: string | null;
|
|
@@ -151,8 +168,6 @@ export declare const actionToggleZenMode: {
|
|
|
151
168
|
y: number;
|
|
152
169
|
} | null;
|
|
153
170
|
objectsSnapModeEnabled: boolean;
|
|
154
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
155
|
-
followedBy: Set<import("../types").SocketId>;
|
|
156
171
|
isCropping: boolean;
|
|
157
172
|
croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
|
|
158
173
|
searchMatches: Readonly<{
|
|
@@ -164,10 +179,18 @@ export declare const actionToggleZenMode: {
|
|
|
164
179
|
[groupId: string]: true;
|
|
165
180
|
};
|
|
166
181
|
bindMode: import("@excalidraw/element/types").BindMode;
|
|
182
|
+
colorTopPicks: {
|
|
183
|
+
elementStroke: readonly string[] | null;
|
|
184
|
+
elementBackground: readonly string[] | null;
|
|
185
|
+
bucketFill: readonly string[] | null;
|
|
186
|
+
stickyNoteStroke: readonly string[] | null;
|
|
187
|
+
stickyNoteBackground: readonly string[] | null;
|
|
188
|
+
};
|
|
189
|
+
fontTopPicks: readonly import("@excalidraw/element/types").FontFamilyValues[] | null;
|
|
167
190
|
};
|
|
168
191
|
captureUpdate: "EVENTUALLY";
|
|
169
192
|
};
|
|
170
|
-
checked: (appState: Readonly<import("../types").
|
|
193
|
+
checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
|
|
171
194
|
predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
|
|
172
195
|
keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
|
|
173
196
|
} & {
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ColorPaletteCustom, ColorTuple } from "@excalidraw/common";
|
|
2
|
+
import type { ExcalidrawElement } from "@excalidraw/element/types";
|
|
3
|
+
import type { AppState } from "../types";
|
|
4
|
+
export type ColorProperty = "strokeColor" | "backgroundColor";
|
|
5
|
+
/**
|
|
6
|
+
* Sticky notes are their own color domain: own defaults, own top picks, no
|
|
7
|
+
* transparent. A pick targets the regular domain, the sticky domain, or both
|
|
8
|
+
* ("mixed" selections write both defaults and use the regular picker).
|
|
9
|
+
*/
|
|
10
|
+
export type ColorTargetKind = "regular" | "sticky" | "mixed";
|
|
11
|
+
export type ColorDefaultKey = "currentItemStrokeColor" | "currentItemBackgroundColor" | "currentItemStickynoteStrokeColor" | "currentItemStickynoteBackgroundColor";
|
|
12
|
+
export type ColorTargetAppState = Pick<AppState, "selectedElementIds" | "editingTextElement" | "activeTool" | ColorDefaultKey>;
|
|
13
|
+
export type ColorTarget = {
|
|
14
|
+
kind: ColorTargetKind;
|
|
15
|
+
property: ColorProperty;
|
|
16
|
+
/** the current-item defaults a pick is written to (normalized per domain) */
|
|
17
|
+
appStateKeys: readonly ColorDefaultKey[];
|
|
18
|
+
/** the default shown when no element is targeted */
|
|
19
|
+
currentValue: string;
|
|
20
|
+
palette: ColorPaletteCustom;
|
|
21
|
+
topPicks: ColorTuple;
|
|
22
|
+
customizableTopPicks: keyof AppState["colorTopPicks"];
|
|
23
|
+
excludedColors: readonly string[] | undefined;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Who a stroke/background pick targets. Resolve it from the state an action
|
|
27
|
+
* runs against, at execution time — never capture it in a render closure:
|
|
28
|
+
* the memoized picker keeps a stale `onChange`, and the always-visible top
|
|
29
|
+
* picks fire it without a re-render.
|
|
30
|
+
*
|
|
31
|
+
* Targets are the selected color-capable elements (for stroke incl. bound
|
|
32
|
+
* labels, since a note's visible text is its label) plus the text being
|
|
33
|
+
* edited (`handleTextWysiwyg` deselects while editing) — or, for a
|
|
34
|
+
* background pick on a note's label, the note (see `getColorTargetElement`).
|
|
35
|
+
* With no target, the active tool decides the domain.
|
|
36
|
+
*/
|
|
37
|
+
export declare const resolveColorTarget: (appState: ColorTargetAppState, elements: readonly ExcalidrawElement[], property: ColorProperty) => ColorTarget;
|
|
38
|
+
/** the current-item default updates for a picked color */
|
|
39
|
+
export declare const getColorTargetAppStateUpdates: (target: ColorTarget, color: string) => Partial<AppState>;
|
|
@@ -2,9 +2,8 @@ export { actionDeleteSelected } from "./actionDeleteSelected";
|
|
|
2
2
|
export { actionBringForward, actionBringToFront, actionSendBackward, actionSendToBack, } from "./actionZindex";
|
|
3
3
|
export { actionSelectAll } from "./actionSelectAll";
|
|
4
4
|
export { actionDuplicateSelection } from "./actionDuplicateSelection";
|
|
5
|
-
export { actionChangeStrokeColor, actionChangeBackgroundColor, actionChangeStrokeWidth, actionChangeFillStyle, actionChangeSloppiness, actionChangeOpacity, actionChangeFontSize, actionChangeFontFamily, actionChangeTextAlign, actionChangeVerticalAlign, actionChangeArrowProperties, } from "./actionProperties";
|
|
5
|
+
export { actionChangeStrokeColor, actionChangeBackgroundColor, actionChangeBucketFillBackgroundColor, actionChangeStrokeWidth, actionChangeFillStyle, actionChangeSloppiness, actionChangeFreedrawMode, actionChangeOpacity, actionChangeFontSize, actionChangeFontFamily, actionChangeTextAlign, actionChangeVerticalAlign, actionChangeArrowProperties, } from "./actionProperties";
|
|
6
6
|
export { actionChangeViewBackgroundColor, actionClearCanvas, actionZoomIn, actionZoomOut, actionResetZoom, actionZoomToFit, actionToggleTheme, } from "./actionCanvas";
|
|
7
|
-
export { actionSetEmbeddableAsActiveTool } from "./actionEmbeddable";
|
|
8
7
|
export { actionFinalize } from "./actionFinalize";
|
|
9
8
|
export { actionDeselect } from "./actionDeselect";
|
|
10
9
|
export { actionChangeProjectName, actionChangeExportBackground, actionSaveToActiveFile, actionSaveFileToDisk, actionLoadScene, } from "./actionExport";
|
|
@@ -22,6 +21,7 @@ export { actionToggleZenMode } from "./actionToggleZenMode";
|
|
|
22
21
|
export { actionToggleObjectsSnapMode } from "./actionToggleObjectsSnapMode";
|
|
23
22
|
export { actionToggleArrowBinding } from "./actionToggleArrowBinding";
|
|
24
23
|
export { actionToggleMidpointSnapping } from "./actionToggleMidpointSnapping";
|
|
24
|
+
export { actionToggleShowHints } from "./actionToggleShowHints";
|
|
25
25
|
export { actionToggleStats } from "./actionToggleStats";
|
|
26
26
|
export { actionUnbindText, actionBindText } from "./actionBoundText";
|
|
27
27
|
export { actionLink } from "./actionLink";
|
|
@@ -11,6 +11,7 @@ export declare class ActionManager {
|
|
|
11
11
|
constructor(updater: UpdaterFn, getAppState: () => AppState, getElementsIncludingDeleted: () => readonly OrderedExcalidrawElement[], app: AppClassProperties);
|
|
12
12
|
registerAction(action: Action): void;
|
|
13
13
|
registerAll(actions: readonly Action[]): void;
|
|
14
|
+
private isActionBlockedByViewportTransition;
|
|
14
15
|
handleKeyDown(event: React.KeyboardEvent | KeyboardEvent): boolean;
|
|
15
16
|
executeAction<T extends Action>(action: T, source?: ActionSource, value?: Parameters<T["perform"]>[2]): void;
|
|
16
17
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { SubtypeOf } from "@excalidraw/common/utility-types";
|
|
2
2
|
import type { ActionName } from "./types";
|
|
3
|
-
export type ShortcutName = SubtypeOf<ActionName, "toggleTheme" | "loadScene" | "clearCanvas" | "cut" | "copy" | "paste" | "copyStyles" | "pasteStyles" | "selectAll" | "deleteSelectedElements" | "duplicateSelection" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyAsPng" | "group" | "ungroup" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "addToLibrary" | "viewMode" | "flipHorizontal" | "flipVertical" | "hyperlink" | "toggleElementLock" | "resetZoom" | "zoomOut" | "zoomIn" | "zoomToFit" | "zoomToFitSelectionInViewport" | "zoomToFitSelection" | "
|
|
3
|
+
export type ShortcutName = SubtypeOf<ActionName, "toggleTheme" | "loadScene" | "clearCanvas" | "cut" | "copy" | "paste" | "copyStyles" | "pasteStyles" | "selectAll" | "deleteSelectedElements" | "duplicateSelection" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyAsPng" | "group" | "ungroup" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "addToLibrary" | "viewMode" | "flipHorizontal" | "flipVertical" | "hyperlink" | "toggleElementLock" | "resetZoom" | "zoomOut" | "zoomIn" | "zoomToFit" | "zoomToFitSelectionInViewport" | "zoomToFitSelection" | "saveFileToDisk" | "saveToActiveFile" | "toggleShortcuts" | "wrapSelectionInFrame"> | "saveScene" | "imageExport" | "commandPalette" | "searchMenu" | "toolLock";
|
|
4
4
|
export declare const getShortcutFromShortcutName: (name: ShortcutName, idx?: number) => string;
|
|
@@ -14,10 +14,10 @@ export type ActionResult = {
|
|
|
14
14
|
type ActionFn<TData = any> = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: TData | undefined, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
|
|
15
15
|
export type UpdaterFn = (res: ActionResult) => void;
|
|
16
16
|
export type ActionFilterFn = (action: Action) => void;
|
|
17
|
-
export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "arrowBinding" | "midpointSnapping" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "
|
|
17
|
+
export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "arrowBinding" | "midpointSnapping" | "showHints" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeBucketFillBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeSloppiness" | "changeFreedrawMode" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeArrowProperties" | "changeOpacity" | "changeFontSize" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "deselect" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleShapeSwitch" | "togglePolygon";
|
|
18
18
|
export type PanelComponentProps = {
|
|
19
19
|
elements: readonly ExcalidrawElement[];
|
|
20
|
-
appState:
|
|
20
|
+
appState: UIAppState;
|
|
21
21
|
updateData: <T = any>(formData?: T) => void;
|
|
22
22
|
appProps: ExcalidrawProps;
|
|
23
23
|
data?: Record<string, any>;
|
|
@@ -26,7 +26,7 @@ export type PanelComponentProps = {
|
|
|
26
26
|
};
|
|
27
27
|
export interface Action<TData = any> {
|
|
28
28
|
name: ActionName;
|
|
29
|
-
label: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<
|
|
29
|
+
label: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<UIAppState>, app: AppClassProperties) => string);
|
|
30
30
|
keywords?: string[];
|
|
31
31
|
icon?: React.ReactNode | ((appState: UIAppState, elements: readonly ExcalidrawElement[]) => React.ReactNode);
|
|
32
32
|
PanelComponent?: React.FC<PanelComponentProps>;
|
|
@@ -34,7 +34,7 @@ export interface Action<TData = any> {
|
|
|
34
34
|
keyPriority?: number;
|
|
35
35
|
keyTest?: (event: React.KeyboardEvent | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[], app: AppClassProperties) => boolean;
|
|
36
36
|
predicate?: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: ExcalidrawProps, app: AppClassProperties) => boolean;
|
|
37
|
-
checked?: (appState: Readonly<
|
|
37
|
+
checked?: (appState: Readonly<UIAppState>) => boolean;
|
|
38
38
|
trackEvent: false | {
|
|
39
39
|
category: "toolbar" | "element" | "canvas" | "export" | "history" | "menu" | "collab" | "hyperlink" | "search_menu" | "shape_switch";
|
|
40
40
|
action?: string;
|
|
@@ -43,5 +43,9 @@ export interface Action<TData = any> {
|
|
|
43
43
|
/** if set to `true`, allow action to be performed in viewMode.
|
|
44
44
|
* Defaults to `false` */
|
|
45
45
|
viewMode?: boolean;
|
|
46
|
+
/** if set to `true`, the action counts as canvas navigation and remains
|
|
47
|
+
* available in the non-interactive editor when
|
|
48
|
+
* `interaction: { enabled: { navigation: true } }`. Defaults to `false` */
|
|
49
|
+
navigation?: boolean;
|
|
46
50
|
}
|
|
47
51
|
export {};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { LaserPointer } from "@excalidraw/laser-pointer";
|
|
2
2
|
import type { LaserPointerOptions } from "@excalidraw/laser-pointer";
|
|
3
|
-
import type { AnimationFrameHandler } from "./animation-frame-handler";
|
|
4
3
|
import type App from "./components/App";
|
|
5
4
|
export interface Trail {
|
|
6
5
|
start(container: SVGSVGElement): void;
|
|
@@ -15,7 +14,6 @@ export interface AnimatedTrailOptions {
|
|
|
15
14
|
animateTrail?: boolean;
|
|
16
15
|
}
|
|
17
16
|
export declare class AnimatedTrail implements Trail {
|
|
18
|
-
private animationFrameHandler;
|
|
19
17
|
protected app: App;
|
|
20
18
|
private options;
|
|
21
19
|
private currentTrail?;
|
|
@@ -23,9 +21,12 @@ export declare class AnimatedTrail implements Trail {
|
|
|
23
21
|
private container?;
|
|
24
22
|
private trailElement;
|
|
25
23
|
private trailAnimation?;
|
|
26
|
-
|
|
24
|
+
private key;
|
|
25
|
+
private static counter;
|
|
26
|
+
constructor(app: App, options: Partial<LaserPointerOptions> & Partial<AnimatedTrailOptions>);
|
|
27
27
|
get hasCurrentTrail(): boolean;
|
|
28
28
|
hasLastPoint(x: number, y: number): boolean;
|
|
29
|
+
private cleanup;
|
|
29
30
|
start(container?: SVGSVGElement): void;
|
|
30
31
|
stop(): void;
|
|
31
32
|
startPath(x: number, y: number): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AppState, NormalizedZoomValue } from "./types";
|
|
1
|
+
import type { AppState, InputDevice, NormalizedZoomValue } from "./types";
|
|
2
2
|
export declare const getDefaultAppState: () => Omit<AppState, "offsetTop" | "offsetLeft" | "width" | "height">;
|
|
3
3
|
export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>) => {
|
|
4
4
|
viewBackgroundColor?: string | undefined;
|
|
@@ -24,14 +24,18 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
|
|
|
24
24
|
selectedLinearElement?: import("@excalidraw/element").LinearElementEditor | null | undefined;
|
|
25
25
|
isBindingEnabled?: boolean | undefined;
|
|
26
26
|
isMidpointSnappingEnabled?: boolean | undefined;
|
|
27
|
+
gridModeEnabled?: boolean | undefined;
|
|
27
28
|
zenModeEnabled?: boolean | undefined;
|
|
28
29
|
shouldCacheIgnoreZoom?: boolean | undefined;
|
|
29
30
|
exportScale?: number | undefined;
|
|
30
31
|
currentItemArrowType?: "round" | "sharp" | "elbow" | undefined;
|
|
31
|
-
bindMode?: import("@excalidraw/element/types").BindMode | undefined;
|
|
32
32
|
gridSize?: number | undefined;
|
|
33
|
+
bindMode?: import("@excalidraw/element/types").BindMode | undefined;
|
|
33
34
|
showWelcomeScreen?: boolean | undefined;
|
|
35
|
+
boxSelectionMode?: import("./types").BoxSelectionMode | undefined;
|
|
34
36
|
bindingPreference?: "enabled" | "disabled" | undefined;
|
|
37
|
+
showHints?: boolean | undefined;
|
|
38
|
+
inputDevice?: InputDevice | undefined;
|
|
35
39
|
preferredSelectionTool?: {
|
|
36
40
|
type: "selection" | "lasso";
|
|
37
41
|
initialized: boolean;
|
|
@@ -42,11 +46,14 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
|
|
|
42
46
|
exportEmbedScene?: boolean | undefined;
|
|
43
47
|
exportWithDarkMode?: boolean | undefined;
|
|
44
48
|
currentItemStrokeColor?: string | undefined;
|
|
49
|
+
currentItemStickynoteStrokeColor?: string | undefined;
|
|
50
|
+
currentItemStickynoteBackgroundColor?: string | undefined;
|
|
45
51
|
currentItemBackgroundColor?: string | undefined;
|
|
46
52
|
currentItemFillStyle?: import("@excalidraw/element/types").FillStyle | undefined;
|
|
47
|
-
|
|
53
|
+
currentItemStrokeWidthKey?: import("@excalidraw/common").StrokeWidthKey | undefined;
|
|
48
54
|
currentItemStrokeStyle?: import("@excalidraw/element/types").StrokeStyle | undefined;
|
|
49
55
|
currentItemRoughness?: number | undefined;
|
|
56
|
+
currentItemStrokeVariability?: import("@excalidraw/element/types").StrokeVariability | undefined;
|
|
50
57
|
currentItemOpacity?: number | undefined;
|
|
51
58
|
currentItemFontFamily?: number | undefined;
|
|
52
59
|
currentItemFontSize?: number | undefined;
|
|
@@ -67,7 +74,6 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
|
|
|
67
74
|
[id: string]: true;
|
|
68
75
|
} | undefined;
|
|
69
76
|
gridStep?: number | undefined;
|
|
70
|
-
gridModeEnabled?: boolean | undefined;
|
|
71
77
|
stats?: {
|
|
72
78
|
open: boolean;
|
|
73
79
|
panels: number;
|
|
@@ -76,21 +82,29 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
|
|
|
76
82
|
lockedMultiSelections?: {
|
|
77
83
|
[groupId: string]: true;
|
|
78
84
|
} | undefined;
|
|
85
|
+
colorTopPicks?: {
|
|
86
|
+
elementStroke: readonly string[] | null;
|
|
87
|
+
elementBackground: readonly string[] | null;
|
|
88
|
+
bucketFill: readonly string[] | null;
|
|
89
|
+
stickyNoteStroke: readonly string[] | null;
|
|
90
|
+
stickyNoteBackground: readonly string[] | null;
|
|
91
|
+
} | undefined;
|
|
92
|
+
fontTopPicks?: readonly number[] | null | undefined;
|
|
79
93
|
};
|
|
80
94
|
export declare const cleanAppStateForExport: (appState: Partial<AppState>) => {
|
|
81
95
|
viewBackgroundColor?: string | undefined;
|
|
96
|
+
gridModeEnabled?: boolean | undefined;
|
|
82
97
|
gridSize?: number | undefined;
|
|
83
98
|
gridStep?: number | undefined;
|
|
84
|
-
gridModeEnabled?: boolean | undefined;
|
|
85
99
|
lockedMultiSelections?: {
|
|
86
100
|
[groupId: string]: true;
|
|
87
101
|
} | undefined;
|
|
88
102
|
};
|
|
89
103
|
export declare const clearAppStateForDatabase: (appState: Partial<AppState>) => {
|
|
90
104
|
viewBackgroundColor?: string | undefined;
|
|
105
|
+
gridModeEnabled?: boolean | undefined;
|
|
91
106
|
gridSize?: number | undefined;
|
|
92
107
|
gridStep?: number | undefined;
|
|
93
|
-
gridModeEnabled?: boolean | undefined;
|
|
94
108
|
lockedMultiSelections?: {
|
|
95
109
|
[groupId: string]: true;
|
|
96
110
|
} | undefined;
|
|
@@ -101,3 +115,13 @@ export declare const isEraserActive: ({ activeTool, }: {
|
|
|
101
115
|
export declare const isHandToolActive: ({ activeTool, }: {
|
|
102
116
|
activeTool: AppState["activeTool"];
|
|
103
117
|
}) => boolean;
|
|
118
|
+
/**
|
|
119
|
+
* The device the wheel mappings follow for the given preference.
|
|
120
|
+
*
|
|
121
|
+
* `auto` is meant to detect the device from the wheel events themselves
|
|
122
|
+
* (line vs. pixel delta modes, whole vs. fractional deltas, one vs. two axes
|
|
123
|
+
* moving, event cadence and momentum tails). That is not implemented yet, so
|
|
124
|
+
* it resolves to `trackpad` — the mapping the editor has always had, and the
|
|
125
|
+
* default to keep until detection exists.
|
|
126
|
+
*/
|
|
127
|
+
export declare const resolveInputDevice: (inputDevice: InputDevice) => Exclude<InputDevice, "auto">;
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NonDeletedElementsMap, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
|
|
2
2
|
import "./Actions.scss";
|
|
3
|
-
import type { AppClassProperties,
|
|
3
|
+
import type { AppClassProperties, UIAppState, AppState } from "../types";
|
|
4
4
|
import type { ActionManager } from "../actions/manager";
|
|
5
|
-
export
|
|
6
|
-
|
|
5
|
+
export { canChangeStrokeColor, canChangeBackgroundColor, } from "./shapeActionPredicates";
|
|
6
|
+
/**
|
|
7
|
+
* Full styles panel: the wide, always-expanded layout used on desktop when the
|
|
8
|
+
* UI is in "full" mode.
|
|
9
|
+
*/
|
|
7
10
|
export declare const SelectedShapeActions: ({ appState, elementsMap, renderAction, app, }: {
|
|
8
11
|
appState: UIAppState;
|
|
9
12
|
elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;
|
|
10
13
|
renderAction: ActionManager["renderAction"];
|
|
11
14
|
app: AppClassProperties;
|
|
12
15
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
/**
|
|
17
|
+
* Compact styles panel — the collapsed, popover-driven layout used on tablets
|
|
18
|
+
* and on desktop when the UI is in "compact" mode.
|
|
19
|
+
*/
|
|
13
20
|
export declare const CompactShapeActions: ({ appState, elementsMap, renderAction, app, setAppState, }: {
|
|
14
21
|
appState: UIAppState;
|
|
15
22
|
elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;
|
|
@@ -17,6 +24,11 @@ export declare const CompactShapeActions: ({ appState, elementsMap, renderAction
|
|
|
17
24
|
app: AppClassProperties;
|
|
18
25
|
setAppState: React.Component<any, AppState>["setState"];
|
|
19
26
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
/**
|
|
28
|
+
* Mobile styles panel — the horizontal action bar used on phones, with an
|
|
29
|
+
* overflow measurement that promotes duplicate/delete out of the popover when
|
|
30
|
+
* there is room.
|
|
31
|
+
*/
|
|
20
32
|
export declare const MobileShapeActions: ({ appState, elementsMap, renderAction, app, setAppState, }: {
|
|
21
33
|
appState: UIAppState;
|
|
22
34
|
elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;
|
|
@@ -24,15 +36,8 @@ export declare const MobileShapeActions: ({ appState, elementsMap, renderAction,
|
|
|
24
36
|
app: AppClassProperties;
|
|
25
37
|
setAppState: React.Component<any, AppState>["setState"];
|
|
26
38
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
-
export declare const
|
|
28
|
-
activeTool: UIAppState["activeTool"];
|
|
29
|
-
setAppState: React.Component<any, AppState>["setState"];
|
|
30
|
-
app: AppClassProperties;
|
|
31
|
-
UIOptions: AppProps["UIOptions"];
|
|
32
|
-
}) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
-
export declare const ZoomActions: ({ renderAction, zoom, }: {
|
|
39
|
+
export declare const ZoomActions: ({ renderAction, }: {
|
|
34
40
|
renderAction: ActionManager["renderAction"];
|
|
35
|
-
zoom: Zoom;
|
|
36
41
|
}) => import("react/jsx-runtime").JSX.Element;
|
|
37
42
|
export declare const UndoRedoActions: ({ renderAction, className, }: {
|
|
38
43
|
renderAction: ActionManager["renderAction"];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const activeConfirmDialogAtom: import("jotai
|
|
1
|
+
export declare const activeConfirmDialogAtom: import("jotai").PrimitiveAtom<"clearCanvas" | null> & {
|
|
2
2
|
init: "clearCanvas" | null;
|
|
3
3
|
};
|
|
4
4
|
export declare const ActiveConfirmDialog: () => import("react/jsx-runtime").JSX.Element | null;
|