@zsviczian/excalidraw 0.17.1-obsidian-19 → 0.17.1-obsidian-21
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/excalidraw.development.js +267 -92
- package/dist/excalidraw.production.min.js +1 -1
- package/dist/styles.development.css +1103 -854
- package/dist/styles.production.css +16 -15
- package/package.json +5 -3
- package/types/excalidraw/actions/actionAddToLibrary.d.ts +20 -5
- package/types/excalidraw/actions/actionAlign.d.ts +39 -27
- package/types/excalidraw/actions/actionBoundText.d.ts +20 -10
- package/types/excalidraw/actions/actionCanvas.d.ts +148 -52
- package/types/excalidraw/actions/actionClipboard.d.ts +72 -30
- package/types/excalidraw/actions/actionDeleteSelected.d.ts +25 -9
- package/types/excalidraw/actions/actionDistribute.d.ts +10 -8
- package/types/excalidraw/actions/actionDuplicateSelection.d.ts +7 -7
- package/types/excalidraw/actions/actionElementLock.d.ts +24 -11
- package/types/excalidraw/actions/actionExport.d.ts +85 -32
- package/types/excalidraw/actions/actionFinalize.d.ts +19 -8
- package/types/excalidraw/actions/actionFlip.d.ts +13 -11
- package/types/excalidraw/actions/actionFrame.d.ts +30 -200
- package/types/excalidraw/actions/actionGroup.d.ts +15 -379
- package/types/excalidraw/actions/actionHistory.d.ts +3 -2
- package/types/excalidraw/actions/actionLinearEditor.d.ts +9 -3
- package/types/excalidraw/actions/actionLink.d.ts +12 -6
- package/types/excalidraw/actions/actionMenu.d.ts +25 -8
- package/types/excalidraw/actions/actionNavigate.d.ts +14 -3
- package/types/excalidraw/actions/actionProperties.d.ts +114 -32
- package/types/excalidraw/actions/actionSelectAll.d.ts +12 -5
- package/types/excalidraw/actions/actionStyles.d.ts +18 -14
- package/types/excalidraw/actions/actionToggleGridMode.d.ts +12 -5
- package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +12 -6
- package/types/excalidraw/actions/actionToggleStats.d.ts +12 -5
- package/types/excalidraw/actions/actionToggleViewMode.d.ts +12 -5
- package/types/excalidraw/actions/actionToggleZenMode.d.ts +12 -5
- package/types/excalidraw/actions/actionZindex.d.ts +26 -23
- package/types/excalidraw/actions/manager.d.ts +3 -3
- package/types/excalidraw/actions/shortcuts.d.ts +2 -2
- package/types/excalidraw/actions/types.d.ts +10 -8
- package/types/excalidraw/appState.d.ts +4 -4
- package/types/excalidraw/change.d.ts +191 -0
- package/types/excalidraw/clients.d.ts +10 -1
- package/types/excalidraw/components/Actions.d.ts +3 -1
- package/types/excalidraw/components/App.d.ts +23 -9
- package/types/excalidraw/components/Avatar.d.ts +2 -3
- package/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -0
- package/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -0
- package/types/excalidraw/components/CommandPalette/types.d.ts +25 -0
- package/types/excalidraw/components/InlineIcon.d.ts +1 -1
- package/types/excalidraw/components/RadioGroup.d.ts +2 -1
- package/types/excalidraw/components/ToolButton.d.ts +1 -0
- package/types/excalidraw/components/UserList.d.ts +3 -7
- package/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -1
- package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +17 -0
- package/types/excalidraw/components/hyperlink/Hyperlink.d.ts +2 -2
- package/types/excalidraw/components/icons.d.ts +26 -1
- package/types/excalidraw/components/main-menu/DefaultItems.d.ts +15 -1
- package/types/excalidraw/constants.d.ts +8 -0
- package/types/excalidraw/data/reconcile.d.ts +6 -0
- package/types/excalidraw/data/restore.d.ts +3 -3
- package/types/excalidraw/data/transform.d.ts +1 -1
- package/types/excalidraw/data/url.d.ts +1 -0
- package/types/excalidraw/deburr.d.ts +1 -0
- package/types/excalidraw/element/binding.d.ts +52 -9
- package/types/excalidraw/element/bounds.d.ts +0 -1
- package/types/excalidraw/element/collision.d.ts +14 -19
- package/types/excalidraw/element/embeddable.d.ts +14 -4
- package/types/excalidraw/element/index.d.ts +0 -1
- package/types/excalidraw/element/linearElementEditor.d.ts +17 -12
- package/types/excalidraw/element/mutateElement.d.ts +1 -2
- package/types/excalidraw/element/newElement.d.ts +1 -1
- package/types/excalidraw/element/resizeElements.d.ts +1 -1
- package/types/excalidraw/element/resizeTest.d.ts +4 -4
- package/types/excalidraw/element/textElement.d.ts +1 -7
- package/types/excalidraw/element/transformHandles.d.ts +22 -4
- package/types/excalidraw/element/typeChecks.d.ts +2 -2
- package/types/excalidraw/element/types.d.ts +22 -6
- package/types/excalidraw/errors.d.ts +3 -0
- package/types/excalidraw/fractionalIndex.d.ts +40 -0
- package/types/excalidraw/frame.d.ts +1 -1
- package/types/excalidraw/groups.d.ts +2 -0
- package/types/excalidraw/history.d.ts +34 -46
- package/types/excalidraw/hooks/useEmitter.d.ts +2 -0
- package/types/excalidraw/hooks/useStableCallback.d.ts +4 -0
- package/types/excalidraw/index.d.ts +3 -1
- package/types/excalidraw/keys.d.ts +1 -0
- package/types/excalidraw/renderer/interactiveScene.d.ts +1 -1
- package/types/excalidraw/scene/Scene.d.ts +7 -6
- package/types/excalidraw/scene/types.d.ts +11 -20
- package/types/excalidraw/store.d.ts +99 -0
- package/types/excalidraw/types.d.ts +39 -6
- package/types/excalidraw/utils.d.ts +7 -0
- package/types/excalidraw/webpack.prod.config.d.ts +1 -1
- package/types/excalidraw/zindex.d.ts +2 -2
- package/types/utils/collision.d.ts +4 -0
- package/types/utils/export.d.ts +2 -2
- package/types/utils/geometry/geometry.d.ts +71 -0
- package/types/utils/geometry/shape.d.ts +56 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { ElementUpdate } from "./element/mutateElement";
|
|
2
|
+
import { OrderedExcalidrawElement, SceneElementsMap } from "./element/types";
|
|
3
|
+
import { AppState, ObservedAppState } from "./types";
|
|
4
|
+
import { ValueOf } from "./utility-types";
|
|
5
|
+
/**
|
|
6
|
+
* Represents the difference between two objects of the same type.
|
|
7
|
+
*
|
|
8
|
+
* Both `deleted` and `inserted` partials represent the same set of added, removed or updated properties, where:
|
|
9
|
+
* - `deleted` is a set of all the deleted values
|
|
10
|
+
* - `inserted` is a set of all the inserted (added, updated) values
|
|
11
|
+
*
|
|
12
|
+
* Keeping it as pure object (without transient state, side-effects, etc.), so we won't have to instantiate it on load.
|
|
13
|
+
*/
|
|
14
|
+
declare class Delta<T> {
|
|
15
|
+
readonly deleted: Partial<T>;
|
|
16
|
+
readonly inserted: Partial<T>;
|
|
17
|
+
private constructor();
|
|
18
|
+
static create<T>(deleted: Partial<T>, inserted: Partial<T>, modifier?: (delta: Partial<T>) => Partial<T>, modifierOptions?: "deleted" | "inserted"): Delta<T>;
|
|
19
|
+
/**
|
|
20
|
+
* Calculates the delta between two objects.
|
|
21
|
+
*
|
|
22
|
+
* @param prevObject - The previous state of the object.
|
|
23
|
+
* @param nextObject - The next state of the object.
|
|
24
|
+
*
|
|
25
|
+
* @returns new delta instance.
|
|
26
|
+
*/
|
|
27
|
+
static calculate<T extends {
|
|
28
|
+
[key: string]: any;
|
|
29
|
+
}>(prevObject: T, nextObject: T, modifier?: (partial: Partial<T>) => Partial<T>, postProcess?: (deleted: Partial<T>, inserted: Partial<T>) => [Partial<T>, Partial<T>]): Delta<T>;
|
|
30
|
+
static empty(): Delta<unknown>;
|
|
31
|
+
static isEmpty<T>(delta: Delta<T>): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Merges deleted and inserted object partials.
|
|
34
|
+
*/
|
|
35
|
+
static mergeObjects<T extends {
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
}>(prev: T, added: T, removed: T): T;
|
|
38
|
+
/**
|
|
39
|
+
* Merges deleted and inserted array partials.
|
|
40
|
+
*/
|
|
41
|
+
static mergeArrays<T>(prev: readonly T[] | null, added: readonly T[] | null | undefined, removed: readonly T[] | null | undefined, predicate?: (value: T) => string): T[];
|
|
42
|
+
/**
|
|
43
|
+
* Diff object partials as part of the `postProcess`.
|
|
44
|
+
*/
|
|
45
|
+
static diffObjects<T, K extends keyof T, V extends ValueOf<T[K]>>(deleted: Partial<T>, inserted: Partial<T>, property: K, setValue: (prevValue: V | undefined) => V): void;
|
|
46
|
+
/**
|
|
47
|
+
* Diff array partials as part of the `postProcess`.
|
|
48
|
+
*/
|
|
49
|
+
static diffArrays<T, K extends keyof T, V extends T[K]>(deleted: Partial<T>, inserted: Partial<T>, property: K, groupBy: (value: V extends ArrayLike<infer T> ? T : never) => string): void;
|
|
50
|
+
/**
|
|
51
|
+
* Compares if object1 contains any different value compared to the object2.
|
|
52
|
+
*/
|
|
53
|
+
static isLeftDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Compares if object2 contains any different value compared to the object1.
|
|
56
|
+
*/
|
|
57
|
+
static isRightDifferent<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Returns all the object1 keys that have distinct values.
|
|
60
|
+
*/
|
|
61
|
+
static getLeftDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
|
|
62
|
+
/**
|
|
63
|
+
* Returns all the object2 keys that have distinct values.
|
|
64
|
+
*/
|
|
65
|
+
static getRightDifferences<T extends {}>(object1: T, object2: T, skipShallowCompare?: boolean): string[];
|
|
66
|
+
/**
|
|
67
|
+
* Iterator comparing values of object properties based on the passed joining strategy.
|
|
68
|
+
*
|
|
69
|
+
* @yields keys of properties with different values
|
|
70
|
+
*
|
|
71
|
+
* WARN: it's based on shallow compare performed only on the first level and doesn't go deeper than that.
|
|
72
|
+
*/
|
|
73
|
+
private static distinctKeysIterator;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Encapsulates the modifications captured as `Delta`/s.
|
|
77
|
+
*/
|
|
78
|
+
interface Change<T> {
|
|
79
|
+
/**
|
|
80
|
+
* Inverses the `Delta`s inside while creating a new `Change`.
|
|
81
|
+
*/
|
|
82
|
+
inverse(): Change<T>;
|
|
83
|
+
/**
|
|
84
|
+
* Applies the `Change` to the previous object.
|
|
85
|
+
*
|
|
86
|
+
* @returns a tuple of the next object `T` with applied change, and `boolean`, indicating whether the applied change resulted in a visible change.
|
|
87
|
+
*/
|
|
88
|
+
applyTo(previous: T, ...options: unknown[]): [T, boolean];
|
|
89
|
+
/**
|
|
90
|
+
* Checks whether there are actually `Delta`s.
|
|
91
|
+
*/
|
|
92
|
+
isEmpty(): boolean;
|
|
93
|
+
}
|
|
94
|
+
export declare class AppStateChange implements Change<AppState> {
|
|
95
|
+
private readonly delta;
|
|
96
|
+
private constructor();
|
|
97
|
+
static calculate<T extends ObservedAppState>(prevAppState: T, nextAppState: T): AppStateChange;
|
|
98
|
+
static empty(): AppStateChange;
|
|
99
|
+
inverse(): AppStateChange;
|
|
100
|
+
applyTo(appState: AppState, nextElements: SceneElementsMap): [AppState, boolean];
|
|
101
|
+
isEmpty(): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* It is necessary to post process the partials in case of reference values,
|
|
104
|
+
* for which we need to calculate the real diff between `deleted` and `inserted`.
|
|
105
|
+
*/
|
|
106
|
+
private static postProcess;
|
|
107
|
+
/**
|
|
108
|
+
* Mutates `nextAppState` be filtering out state related to deleted elements.
|
|
109
|
+
*
|
|
110
|
+
* @returns `true` if a visible change is found, `false` otherwise.
|
|
111
|
+
*/
|
|
112
|
+
private filterInvisibleChanges;
|
|
113
|
+
private static convertToAppStateKey;
|
|
114
|
+
private static filterSelectedElements;
|
|
115
|
+
private static filterSelectedGroups;
|
|
116
|
+
private static stripElementsProps;
|
|
117
|
+
private static stripStandaloneProps;
|
|
118
|
+
}
|
|
119
|
+
type ElementPartial = Omit<ElementUpdate<OrderedExcalidrawElement>, "seed">;
|
|
120
|
+
/**
|
|
121
|
+
* Elements change is a low level primitive to capture a change between two sets of elements.
|
|
122
|
+
* It does so by encapsulating forward and backward `Delta`s, allowing to time-travel in both directions.
|
|
123
|
+
*/
|
|
124
|
+
export declare class ElementsChange implements Change<SceneElementsMap> {
|
|
125
|
+
private readonly added;
|
|
126
|
+
private readonly removed;
|
|
127
|
+
private readonly updated;
|
|
128
|
+
private constructor();
|
|
129
|
+
static create(added: Map<string, Delta<ElementPartial>>, removed: Map<string, Delta<ElementPartial>>, updated: Map<string, Delta<ElementPartial>>, options?: {
|
|
130
|
+
shouldRedistribute: boolean;
|
|
131
|
+
}): ElementsChange;
|
|
132
|
+
private static satisfiesAddition;
|
|
133
|
+
private static satisfiesRemoval;
|
|
134
|
+
private static satisfiesUpdate;
|
|
135
|
+
private static validate;
|
|
136
|
+
/**
|
|
137
|
+
* Calculates the `Delta`s between the previous and next set of elements.
|
|
138
|
+
*
|
|
139
|
+
* @param prevElements - Map representing the previous state of elements.
|
|
140
|
+
* @param nextElements - Map representing the next state of elements.
|
|
141
|
+
*
|
|
142
|
+
* @returns `ElementsChange` instance representing the `Delta` changes between the two sets of elements.
|
|
143
|
+
*/
|
|
144
|
+
static calculate<T extends OrderedExcalidrawElement>(prevElements: Map<string, T>, nextElements: Map<string, T>): ElementsChange;
|
|
145
|
+
static empty(): ElementsChange;
|
|
146
|
+
inverse(): ElementsChange;
|
|
147
|
+
isEmpty(): boolean;
|
|
148
|
+
/**
|
|
149
|
+
* Update delta/s based on the existing elements.
|
|
150
|
+
*
|
|
151
|
+
* @param elements current elements
|
|
152
|
+
* @param modifierOptions defines which of the delta (`deleted` or `inserted`) will be updated
|
|
153
|
+
* @returns new instance with modified delta/s
|
|
154
|
+
*/
|
|
155
|
+
applyLatestChanges(elements: SceneElementsMap): ElementsChange;
|
|
156
|
+
applyTo(elements: SceneElementsMap, snapshot: Map<string, OrderedExcalidrawElement>): [SceneElementsMap, boolean];
|
|
157
|
+
private static createApplier;
|
|
158
|
+
private static createGetter;
|
|
159
|
+
private static applyDelta;
|
|
160
|
+
/**
|
|
161
|
+
* Check for visible changes regardless of whether they were removed, added or updated.
|
|
162
|
+
*/
|
|
163
|
+
private static checkForVisibleDifference;
|
|
164
|
+
/**
|
|
165
|
+
* Resolves conflicts for all previously added, removed and updated elements.
|
|
166
|
+
* Updates the previous deltas with all the changes after conflict resolution.
|
|
167
|
+
*
|
|
168
|
+
* @returns all elements affected by the conflict resolution
|
|
169
|
+
*/
|
|
170
|
+
private resolveConflicts;
|
|
171
|
+
/**
|
|
172
|
+
* Non deleted affected elements of removed elements (before and after applying delta),
|
|
173
|
+
* should be unbound ~ bindings should not point from non deleted into the deleted element/s.
|
|
174
|
+
*/
|
|
175
|
+
private static unbindAffected;
|
|
176
|
+
/**
|
|
177
|
+
* Non deleted affected elements of added or updated element/s (before and after applying delta),
|
|
178
|
+
* should be rebound (if possible) with the current element ~ bindings should be bidirectional.
|
|
179
|
+
*/
|
|
180
|
+
private static rebindAffected;
|
|
181
|
+
private static redrawTextBoundingBoxes;
|
|
182
|
+
private static redrawBoundArrows;
|
|
183
|
+
private static reorderElements;
|
|
184
|
+
/**
|
|
185
|
+
* It is necessary to post process the partials in case of reference values,
|
|
186
|
+
* for which we need to calculate the real diff between `deleted` and `inserted`.
|
|
187
|
+
*/
|
|
188
|
+
private static postProcess;
|
|
189
|
+
private static stripIrrelevantProps;
|
|
190
|
+
}
|
|
191
|
+
export {};
|
|
@@ -1,5 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import { InteractiveCanvasRenderConfig } from "./scene/types";
|
|
2
|
+
import { Collaborator, InteractiveCanvasAppState, SocketId } from "./types";
|
|
3
|
+
export declare const getClientColor: (socketId: SocketId, collaborator: Collaborator | undefined) => string;
|
|
2
4
|
/**
|
|
3
5
|
* returns first char, capitalized
|
|
4
6
|
*/
|
|
5
7
|
export declare const getNameInitial: (name?: string | null) => string;
|
|
8
|
+
export declare const renderRemoteCursors: ({ context, renderConfig, appState, normalizedWidth, normalizedHeight, }: {
|
|
9
|
+
context: CanvasRenderingContext2D;
|
|
10
|
+
renderConfig: InteractiveCanvasRenderConfig;
|
|
11
|
+
appState: InteractiveCanvasAppState;
|
|
12
|
+
normalizedWidth: number;
|
|
13
|
+
normalizedHeight: number;
|
|
14
|
+
}) => void;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ActionManager } from "../actions/manager";
|
|
2
|
-
import { NonDeletedElementsMap, NonDeletedSceneElementsMap } from "../element/types";
|
|
2
|
+
import { ExcalidrawElement, NonDeletedElementsMap, NonDeletedSceneElementsMap } from "../element/types";
|
|
3
3
|
import { AppClassProperties, AppProps, UIAppState, Zoom } from "../types";
|
|
4
4
|
import "./Actions.scss";
|
|
5
|
+
export declare const canChangeStrokeColor: (appState: UIAppState, targetElements: ExcalidrawElement[]) => boolean;
|
|
6
|
+
export declare const canChangeBackgroundColor: (appState: UIAppState, targetElements: ExcalidrawElement[]) => boolean;
|
|
5
7
|
export declare const SelectedShapeActions: ({ appState, elementsMap, renderAction, }: {
|
|
6
8
|
appState: UIAppState;
|
|
7
9
|
elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap;
|
|
@@ -4,13 +4,15 @@ import { ActionManager } from "../actions/manager";
|
|
|
4
4
|
import { EXPORT_IMAGE_TYPES } from "../constants";
|
|
5
5
|
import { ExportedElements } from "../data";
|
|
6
6
|
import { LinearElementEditor } from "../element/linearElementEditor";
|
|
7
|
-
import { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement } from "../element/types";
|
|
8
|
-
import History from "../history";
|
|
7
|
+
import { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted, NonDeletedExcalidrawElement, ExcalidrawFrameLikeElement, ExcalidrawIframeElement, ExcalidrawEmbeddableElement, Ordered } from "../element/types";
|
|
8
|
+
import { History } from "../history";
|
|
9
9
|
import Scene from "../scene/Scene";
|
|
10
|
+
import { GeometricShape } from "../../utils/geometry/shape";
|
|
10
11
|
import { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName, ToolType, OnUserFollowedPayload } from "../types";
|
|
11
12
|
import { FileSystemHandle } from "../data/filesystem";
|
|
12
13
|
import { Renderer } from "../scene/Renderer";
|
|
13
14
|
import { Emitter } from "../emitter";
|
|
15
|
+
import { Store } from "../store";
|
|
14
16
|
import { AnimationFrameHandler } from "../animation-frame-handler";
|
|
15
17
|
import { AnimatedTrail } from "../animated-trail";
|
|
16
18
|
import { LaserTrails } from "../laser-trails";
|
|
@@ -57,6 +59,7 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
57
59
|
library: AppClassProperties["library"];
|
|
58
60
|
libraryItemsFromStorage: LibraryItems | undefined;
|
|
59
61
|
id: string;
|
|
62
|
+
private store;
|
|
60
63
|
private history;
|
|
61
64
|
private excalidrawContainerValue;
|
|
62
65
|
files: BinaryFiles;
|
|
@@ -115,7 +118,7 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
115
118
|
x: number;
|
|
116
119
|
y: number;
|
|
117
120
|
};
|
|
118
|
-
arrowDirection: "
|
|
121
|
+
arrowDirection: "origin" | "end";
|
|
119
122
|
center: {
|
|
120
123
|
x: number;
|
|
121
124
|
y: number;
|
|
@@ -179,7 +182,7 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
179
182
|
x: number;
|
|
180
183
|
y: number;
|
|
181
184
|
};
|
|
182
|
-
arrowDirection: "
|
|
185
|
+
arrowDirection: "origin" | "end";
|
|
183
186
|
center: {
|
|
184
187
|
x: number;
|
|
185
188
|
y: number;
|
|
@@ -235,8 +238,8 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
235
238
|
private toggleOverscrollBehavior;
|
|
236
239
|
render(): import("react/jsx-runtime").JSX.Element;
|
|
237
240
|
focusContainer: AppClassProperties["focusContainer"];
|
|
238
|
-
getSceneElementsIncludingDeleted: () => readonly
|
|
239
|
-
getSceneElements: () => readonly NonDeletedExcalidrawElement[];
|
|
241
|
+
getSceneElementsIncludingDeleted: () => readonly import("../element/types").OrderedExcalidrawElement[];
|
|
242
|
+
getSceneElements: () => readonly Ordered<NonDeletedExcalidrawElement>[];
|
|
240
243
|
onInsertElements: (elements: readonly ExcalidrawElement[]) => void;
|
|
241
244
|
onExportImage: (type: keyof typeof EXPORT_IMAGE_TYPES, elements: ExportedElements, opts: {
|
|
242
245
|
exportingFrame: ExcalidrawFrameLikeElement | null;
|
|
@@ -258,6 +261,7 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
258
261
|
private onUnload;
|
|
259
262
|
private disableEvent;
|
|
260
263
|
private resetHistory;
|
|
264
|
+
private resetStore;
|
|
261
265
|
/**
|
|
262
266
|
* Resets scene & history.
|
|
263
267
|
* ! Do not use to clear scene user action !
|
|
@@ -352,14 +356,15 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
352
356
|
elements?: SceneData["elements"];
|
|
353
357
|
appState?: Pick<AppState, K> | null | undefined;
|
|
354
358
|
collaborators?: SceneData["collaborators"];
|
|
355
|
-
|
|
359
|
+
/** @default StoreAction.CAPTURE */
|
|
360
|
+
storeAction?: SceneData["storeAction"];
|
|
356
361
|
}) => void;
|
|
357
362
|
private onSceneUpdated;
|
|
358
363
|
/**
|
|
359
364
|
* @returns whether the menu was toggled on or off
|
|
360
365
|
*/
|
|
361
366
|
toggleSidebar: ({ name, tab, force, }: {
|
|
362
|
-
name: SidebarName;
|
|
367
|
+
name: SidebarName | null;
|
|
363
368
|
tab?: string | undefined;
|
|
364
369
|
force?: boolean | undefined;
|
|
365
370
|
}) => boolean;
|
|
@@ -396,8 +401,17 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
396
401
|
private handleTextWysiwyg;
|
|
397
402
|
private deselectElements;
|
|
398
403
|
private getTextElementAtPosition;
|
|
404
|
+
/**
|
|
405
|
+
* get the pure geometric shape of an excalidraw element
|
|
406
|
+
* which is then used for hit detection
|
|
407
|
+
*/
|
|
408
|
+
getElementShape(element: ExcalidrawElement): GeometricShape;
|
|
409
|
+
private getBoundTextShape;
|
|
399
410
|
private getElementAtPosition;
|
|
400
411
|
private getElementsAtPosition;
|
|
412
|
+
private getElementHitThreshold;
|
|
413
|
+
private hitElement;
|
|
414
|
+
private getTextBindableContainerAtPosition;
|
|
401
415
|
private startTextEditing;
|
|
402
416
|
private handleCanvasDoubleClick;
|
|
403
417
|
private getElementLinkAtPosition;
|
|
@@ -474,7 +488,6 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
474
488
|
private updateBindingEnabledOnPointerMove;
|
|
475
489
|
private maybeSuggestBindingAtCursor;
|
|
476
490
|
private maybeSuggestBindingsForLinearElementAtCoords;
|
|
477
|
-
private maybeSuggestBindingForAll;
|
|
478
491
|
setSelection(elements: readonly NonDeletedExcalidrawElement[]): void;
|
|
479
492
|
private clearSelection;
|
|
480
493
|
private handleInteractiveCanvasRef;
|
|
@@ -501,6 +514,7 @@ declare global {
|
|
|
501
514
|
setState: React.Component<any, AppState>["setState"];
|
|
502
515
|
app: InstanceType<typeof App>;
|
|
503
516
|
history: History;
|
|
517
|
+
store: Store;
|
|
504
518
|
};
|
|
505
519
|
}
|
|
506
520
|
}
|
|
@@ -5,8 +5,7 @@ type AvatarProps = {
|
|
|
5
5
|
color: string;
|
|
6
6
|
name: string;
|
|
7
7
|
src?: string;
|
|
8
|
-
|
|
9
|
-
isCurrentUser: boolean;
|
|
8
|
+
className?: string;
|
|
10
9
|
};
|
|
11
|
-
export declare const Avatar: ({ color, onClick, name, src,
|
|
10
|
+
export declare const Avatar: ({ color, onClick, name, src, className, }: AvatarProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
11
|
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { CommandPaletteItem } from "./types";
|
|
2
|
+
import * as defaultItems from "./defaultCommandPaletteItems";
|
|
3
|
+
import "./CommandPalette.scss";
|
|
4
|
+
export declare const DEFAULT_CATEGORIES: {
|
|
5
|
+
app: string;
|
|
6
|
+
export: string;
|
|
7
|
+
tools: string;
|
|
8
|
+
editor: string;
|
|
9
|
+
elements: string;
|
|
10
|
+
links: string;
|
|
11
|
+
};
|
|
12
|
+
type CommandPaletteProps = {
|
|
13
|
+
customCommandPaletteItems?: CommandPaletteItem[];
|
|
14
|
+
};
|
|
15
|
+
export declare const CommandPalette: ((props: CommandPaletteProps) => import("react/jsx-runtime").JSX.Element | null) & {
|
|
16
|
+
defaultItems: typeof defaultItems;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ActionManager } from "../../actions/manager";
|
|
2
|
+
import { Action } from "../../actions/types";
|
|
3
|
+
import { UIAppState } from "../../types";
|
|
4
|
+
export type CommandPaletteItem = {
|
|
5
|
+
label: string;
|
|
6
|
+
/** additional keywords to match against
|
|
7
|
+
* (appended to haystack, not displayed) */
|
|
8
|
+
keywords?: string[];
|
|
9
|
+
/**
|
|
10
|
+
* string we should match against when searching
|
|
11
|
+
* (deburred name + keywords)
|
|
12
|
+
*/
|
|
13
|
+
haystack?: string;
|
|
14
|
+
icon?: React.ReactNode | ((appState: UIAppState) => React.ReactNode);
|
|
15
|
+
category: string;
|
|
16
|
+
order?: number;
|
|
17
|
+
predicate?: boolean | Action["predicate"];
|
|
18
|
+
shortcut?: string;
|
|
19
|
+
/** if false, command will not show while in view mode */
|
|
20
|
+
viewMode?: boolean;
|
|
21
|
+
perform: (data: {
|
|
22
|
+
actionManager: ActionManager;
|
|
23
|
+
event: React.MouseEvent | React.KeyboardEvent | KeyboardEvent;
|
|
24
|
+
}) => void;
|
|
25
|
+
};
|
|
@@ -2,21 +2,17 @@ import "./UserList.scss";
|
|
|
2
2
|
import React from "react";
|
|
3
3
|
import { Collaborator, SocketId } from "../types";
|
|
4
4
|
export type GoToCollaboratorComponentProps = {
|
|
5
|
-
|
|
5
|
+
socketId: SocketId;
|
|
6
6
|
collaborator: Collaborator;
|
|
7
7
|
withName: boolean;
|
|
8
8
|
isBeingFollowed: boolean;
|
|
9
9
|
};
|
|
10
|
-
|
|
11
|
-
type ClientId = string & {
|
|
12
|
-
_brand: "UserId";
|
|
13
|
-
};
|
|
14
|
-
type UserListUserObject = Pick<Collaborator, "avatarUrl" | "id" | "socketId" | "username">;
|
|
10
|
+
type UserListUserObject = Pick<Collaborator, "avatarUrl" | "id" | "socketId" | "username" | "isInCall" | "isSpeaking" | "isMuted">;
|
|
15
11
|
type UserListProps = {
|
|
16
12
|
className?: string;
|
|
17
13
|
mobile?: boolean;
|
|
18
14
|
collaborators: Map<SocketId, UserListUserObject>;
|
|
19
15
|
userToFollow: SocketId | null;
|
|
20
16
|
};
|
|
21
|
-
export declare const UserList: React.MemoExoticComponent<({ className, mobile, collaborators, userToFollow }: UserListProps) => import("react/jsx-runtime").JSX.Element
|
|
17
|
+
export declare const UserList: React.MemoExoticComponent<({ className, mobile, collaborators, userToFollow }: UserListProps) => import("react/jsx-runtime").JSX.Element>;
|
|
22
18
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { DOMAttributes } from "react";
|
|
3
|
-
import type { InteractiveCanvasAppState } from "../../types";
|
|
3
|
+
import type { Device, InteractiveCanvasAppState } from "../../types";
|
|
4
4
|
import type { RenderableElementsMap, RenderInteractiveSceneCallback } from "../../scene/types";
|
|
5
5
|
import type { NonDeletedExcalidrawElement } from "../../element/types";
|
|
6
6
|
type InteractiveCanvasProps = {
|
|
@@ -13,6 +13,7 @@ type InteractiveCanvasProps = {
|
|
|
13
13
|
selectionNonce: number | undefined;
|
|
14
14
|
scale: number;
|
|
15
15
|
appState: InteractiveCanvasAppState;
|
|
16
|
+
device: Device;
|
|
16
17
|
renderInteractiveSceneCallback: (data: RenderInteractiveSceneCallback) => void;
|
|
17
18
|
handleCanvasRef: (canvas: HTMLCanvasElement | null) => void;
|
|
18
19
|
onContextMenu: Exclude<DOMAttributes<HTMLCanvasElement | HTMLDivElement>["onContextMenu"], undefined>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type Props<T> = {
|
|
2
|
+
value: T;
|
|
3
|
+
shortcut?: string;
|
|
4
|
+
choices: {
|
|
5
|
+
value: T;
|
|
6
|
+
label: React.ReactNode;
|
|
7
|
+
ariaLabel?: string;
|
|
8
|
+
}[];
|
|
9
|
+
onChange: (value: T) => void;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
name: string;
|
|
12
|
+
};
|
|
13
|
+
declare const DropdownMenuItemContentRadio: {
|
|
14
|
+
<T>({ value, shortcut, onChange, choices, children, name, }: Props<T>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
displayName: string;
|
|
16
|
+
};
|
|
17
|
+
export default DropdownMenuItemContentRadio;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AppState, ExcalidrawProps } from "../../types";
|
|
1
|
+
import { AppState, ExcalidrawProps, UIAppState } from "../../types";
|
|
2
2
|
import { ElementsMap, ExcalidrawEmbeddableElement, NonDeletedExcalidrawElement } from "../../element/types";
|
|
3
3
|
import "./Hyperlink.scss";
|
|
4
4
|
export declare const Hyperlink: ({ element, elementsMap, setAppState, onLinkOpen, setToast, updateEmbedValidationStatus, }: {
|
|
@@ -13,6 +13,6 @@ export declare const Hyperlink: ({ element, elementsMap, setAppState, onLinkOpen
|
|
|
13
13
|
} | null) => void;
|
|
14
14
|
updateEmbedValidationStatus: (element: ExcalidrawEmbeddableElement, status: boolean) => void;
|
|
15
15
|
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
16
|
-
export declare const getContextMenuLabel: (elements: readonly NonDeletedExcalidrawElement[], appState:
|
|
16
|
+
export declare const getContextMenuLabel: (elements: readonly NonDeletedExcalidrawElement[], appState: UIAppState) => "labels.link.editEmbed" | "labels.link.edit" | "labels.link.createEmbed" | "labels.link.create";
|
|
17
17
|
export declare const showHyperlinkTooltip: (element: NonDeletedExcalidrawElement, appState: AppState, elementsMap: ElementsMap) => void;
|
|
18
18
|
export declare const hideHyperlinkToolip: () => void;
|
|
@@ -31,6 +31,7 @@ export declare const ImageIcon: import("react/jsx-runtime").JSX.Element;
|
|
|
31
31
|
export declare const EraserIcon: import("react/jsx-runtime").JSX.Element;
|
|
32
32
|
export declare const ZoomInIcon: import("react/jsx-runtime").JSX.Element;
|
|
33
33
|
export declare const ZoomOutIcon: import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
export declare const ZoomResetIcon: import("react/jsx-runtime").JSX.Element;
|
|
34
35
|
export declare const TrashIcon: import("react/jsx-runtime").JSX.Element;
|
|
35
36
|
export declare const EmbedIcon: import("react/jsx-runtime").JSX.Element;
|
|
36
37
|
export declare const DuplicateIcon: import("react/jsx-runtime").JSX.Element;
|
|
@@ -39,6 +40,7 @@ export declare const SunIcon: import("react/jsx-runtime").JSX.Element;
|
|
|
39
40
|
export declare const HamburgerMenuIcon: import("react/jsx-runtime").JSX.Element;
|
|
40
41
|
export declare const ExportIcon: import("react/jsx-runtime").JSX.Element;
|
|
41
42
|
export declare const HelpIcon: import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
export declare const HelpIconThin: import("react/jsx-runtime").JSX.Element;
|
|
42
44
|
export declare const ExternalLinkIcon: import("react/jsx-runtime").JSX.Element;
|
|
43
45
|
export declare const GithubIcon: import("react/jsx-runtime").JSX.Element;
|
|
44
46
|
export declare const DiscordIcon: import("react/jsx-runtime").JSX.Element;
|
|
@@ -50,6 +52,7 @@ export declare const saveAs: import("react/jsx-runtime").JSX.Element;
|
|
|
50
52
|
export declare const LoadIcon: import("react/jsx-runtime").JSX.Element;
|
|
51
53
|
export declare const clipboard: import("react/jsx-runtime").JSX.Element;
|
|
52
54
|
export declare const palette: import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
export declare const bucketFillIcon: import("react/jsx-runtime").JSX.Element;
|
|
53
56
|
export declare const ExportImageIcon: import("react/jsx-runtime").JSX.Element;
|
|
54
57
|
export declare const exportToFileIcon: import("react/jsx-runtime").JSX.Element;
|
|
55
58
|
export declare const zoomIn: import("react/jsx-runtime").JSX.Element;
|
|
@@ -62,6 +65,7 @@ export declare const questionCircle: import("react/jsx-runtime").JSX.Element;
|
|
|
62
65
|
export declare const share: import("react/jsx-runtime").JSX.Element;
|
|
63
66
|
export declare const warning: import("react/jsx-runtime").JSX.Element;
|
|
64
67
|
export declare const shareIOS: import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
export declare const exportToPlus: import("react/jsx-runtime").JSX.Element;
|
|
65
69
|
export declare const shareWindows: import("react/jsx-runtime").JSX.Element;
|
|
66
70
|
export declare const resetZoom: import("react/jsx-runtime").JSX.Element;
|
|
67
71
|
export declare const BringForwardIcon: import("react/jsx-runtime").JSX.Element;
|
|
@@ -80,7 +84,6 @@ export declare const usersIcon: import("react/jsx-runtime").JSX.Element;
|
|
|
80
84
|
export declare const start: import("react/jsx-runtime").JSX.Element;
|
|
81
85
|
export declare const stop: import("react/jsx-runtime").JSX.Element;
|
|
82
86
|
export declare const CloseIcon: import("react/jsx-runtime").JSX.Element;
|
|
83
|
-
export declare const back: import("react/jsx-runtime").JSX.Element;
|
|
84
87
|
export declare const clone: import("react/jsx-runtime").JSX.Element;
|
|
85
88
|
export declare const shield: import("react/jsx-runtime").JSX.Element;
|
|
86
89
|
export declare const file: import("react/jsx-runtime").JSX.Element;
|
|
@@ -137,6 +140,7 @@ export declare const FontSizeSmallIcon: import("react/jsx-runtime").JSX.Element;
|
|
|
137
140
|
export declare const FontSizeMediumIcon: import("react/jsx-runtime").JSX.Element;
|
|
138
141
|
export declare const FontSizeLargeIcon: import("react/jsx-runtime").JSX.Element;
|
|
139
142
|
export declare const FontSizeExtraLargeIcon: import("react/jsx-runtime").JSX.Element;
|
|
143
|
+
export declare const fontSizeIcon: import("react/jsx-runtime").JSX.Element;
|
|
140
144
|
export declare const FontFamilyNormalIcon: import("react/jsx-runtime").JSX.Element;
|
|
141
145
|
export declare const FontFamilyCodeIcon: import("react/jsx-runtime").JSX.Element;
|
|
142
146
|
export declare const FontFamilyLocalFontIcon: import("react/jsx-runtime").JSX.Element;
|
|
@@ -157,6 +161,7 @@ export declare const eraser: import("react/jsx-runtime").JSX.Element;
|
|
|
157
161
|
export declare const handIcon: import("react/jsx-runtime").JSX.Element;
|
|
158
162
|
export declare const downloadIcon: import("react/jsx-runtime").JSX.Element;
|
|
159
163
|
export declare const copyIcon: import("react/jsx-runtime").JSX.Element;
|
|
164
|
+
export declare const cutIcon: import("react/jsx-runtime").JSX.Element;
|
|
160
165
|
export declare const helpIcon: import("react/jsx-runtime").JSX.Element;
|
|
161
166
|
export declare const playerPlayIcon: import("react/jsx-runtime").JSX.Element;
|
|
162
167
|
export declare const playerStopFilledIcon: import("react/jsx-runtime").JSX.Element;
|
|
@@ -169,10 +174,30 @@ export declare const mermaidLogoIcon: import("react/jsx-runtime").JSX.Element;
|
|
|
169
174
|
export declare const ArrowRightIcon: import("react/jsx-runtime").JSX.Element;
|
|
170
175
|
export declare const laserPointerToolIcon: import("react/jsx-runtime").JSX.Element;
|
|
171
176
|
export declare const MagicIcon: import("react/jsx-runtime").JSX.Element;
|
|
177
|
+
export declare const MagicIconThin: import("react/jsx-runtime").JSX.Element;
|
|
172
178
|
export declare const OpenAIIcon: import("react/jsx-runtime").JSX.Element;
|
|
173
179
|
export declare const fullscreenIcon: import("react/jsx-runtime").JSX.Element;
|
|
174
180
|
export declare const eyeIcon: import("react/jsx-runtime").JSX.Element;
|
|
175
181
|
export declare const eyeClosedIcon: import("react/jsx-runtime").JSX.Element;
|
|
176
182
|
export declare const brainIcon: import("react/jsx-runtime").JSX.Element;
|
|
183
|
+
export declare const brainIconThin: import("react/jsx-runtime").JSX.Element;
|
|
177
184
|
export declare const searchIcon: import("react/jsx-runtime").JSX.Element;
|
|
185
|
+
export declare const clockIcon: import("react/jsx-runtime").JSX.Element;
|
|
186
|
+
export declare const microphoneIcon: import("react/jsx-runtime").JSX.Element;
|
|
187
|
+
export declare const microphoneMutedIcon: import("react/jsx-runtime").JSX.Element;
|
|
188
|
+
export declare const boltIcon: import("react/jsx-runtime").JSX.Element;
|
|
189
|
+
export declare const selectAllIcon: import("react/jsx-runtime").JSX.Element;
|
|
190
|
+
export declare const abacusIcon: import("react/jsx-runtime").JSX.Element;
|
|
191
|
+
export declare const flipVertical: import("react/jsx-runtime").JSX.Element;
|
|
192
|
+
export declare const flipHorizontal: import("react/jsx-runtime").JSX.Element;
|
|
193
|
+
export declare const paintIcon: import("react/jsx-runtime").JSX.Element;
|
|
194
|
+
export declare const zoomAreaIcon: import("react/jsx-runtime").JSX.Element;
|
|
195
|
+
export declare const svgIcon: import("react/jsx-runtime").JSX.Element;
|
|
196
|
+
export declare const pngIcon: import("react/jsx-runtime").JSX.Element;
|
|
197
|
+
export declare const magnetIcon: import("react/jsx-runtime").JSX.Element;
|
|
198
|
+
export declare const coffeeIcon: import("react/jsx-runtime").JSX.Element;
|
|
199
|
+
export declare const DeviceDesktopIcon: import("react/jsx-runtime").JSX.Element;
|
|
200
|
+
export declare const arrowBarToLeftIcon: import("react/jsx-runtime").JSX.Element;
|
|
201
|
+
export declare const youtubeIcon: import("react/jsx-runtime").JSX.Element;
|
|
202
|
+
export declare const gridIcon: import("react/jsx-runtime").JSX.Element;
|
|
178
203
|
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Theme } from "../../element/types";
|
|
1
2
|
import "./DefaultItems.scss";
|
|
2
3
|
export declare const LoadScene: {
|
|
3
4
|
(): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -11,6 +12,12 @@ export declare const SaveAsImage: {
|
|
|
11
12
|
(): import("react/jsx-runtime").JSX.Element;
|
|
12
13
|
displayName: string;
|
|
13
14
|
};
|
|
15
|
+
export declare const CommandPalette: {
|
|
16
|
+
(opts?: {
|
|
17
|
+
className?: string;
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
displayName: string;
|
|
20
|
+
};
|
|
14
21
|
export declare const Help: {
|
|
15
22
|
(): import("react/jsx-runtime").JSX.Element;
|
|
16
23
|
displayName: string;
|
|
@@ -20,7 +27,14 @@ export declare const ClearCanvas: {
|
|
|
20
27
|
displayName: string;
|
|
21
28
|
};
|
|
22
29
|
export declare const ToggleTheme: {
|
|
23
|
-
(
|
|
30
|
+
(props: {
|
|
31
|
+
allowSystemTheme: true;
|
|
32
|
+
theme: Theme | "system";
|
|
33
|
+
onSelect: (theme: Theme | "system") => void;
|
|
34
|
+
} | {
|
|
35
|
+
allowSystemTheme?: false | undefined;
|
|
36
|
+
onSelect?: ((theme: Theme) => void) | undefined;
|
|
37
|
+
}): import("react/jsx-runtime").JSX.Element | null;
|
|
24
38
|
displayName: string;
|
|
25
39
|
};
|
|
26
40
|
export declare const ChangeCanvasBackground: {
|
|
@@ -8,6 +8,7 @@ export declare const isChrome: boolean;
|
|
|
8
8
|
export declare const isSafari: boolean;
|
|
9
9
|
export declare const isIOS: boolean;
|
|
10
10
|
export declare const isBrave: () => boolean;
|
|
11
|
+
export declare const supportsResizeObserver: boolean;
|
|
11
12
|
export declare const APP_NAME = "Excalidraw";
|
|
12
13
|
export declare const DRAGGING_THRESHOLD = 10;
|
|
13
14
|
export declare const LINE_CONFIRM_THRESHOLD = 8;
|
|
@@ -15,6 +16,7 @@ export declare const ELEMENT_SHIFT_TRANSLATE_AMOUNT = 5;
|
|
|
15
16
|
export declare const ELEMENT_TRANSLATE_AMOUNT = 1;
|
|
16
17
|
export declare const TEXT_TO_CENTER_SNAP_THRESHOLD = 30;
|
|
17
18
|
export declare const SHIFT_LOCKING_ANGLE: number;
|
|
19
|
+
export declare const DEFAULT_LASER_COLOR = "red";
|
|
18
20
|
export declare const CURSOR_TYPE: {
|
|
19
21
|
TEXT: string;
|
|
20
22
|
CROSSHAIR: string;
|
|
@@ -122,6 +124,11 @@ export declare const DEFAULT_TEXT_ALIGN = "left";
|
|
|
122
124
|
export declare const DEFAULT_VERTICAL_ALIGN = "top";
|
|
123
125
|
export declare const DEFAULT_VERSION = "{version}";
|
|
124
126
|
export declare const DEFAULT_TRANSFORM_HANDLE_SPACING = 2;
|
|
127
|
+
export declare const SIDE_RESIZING_THRESHOLD: number;
|
|
128
|
+
export declare const DEFAULT_COLLISION_THRESHOLD: number;
|
|
129
|
+
export declare const COLOR_WHITE = "#ffffff";
|
|
130
|
+
export declare const COLOR_CHARCOAL_BLACK = "#1e1e1e";
|
|
131
|
+
export declare const COLOR_VOICE_CALL = "#a2f1a6";
|
|
125
132
|
export declare const CANVAS_ONLY_ACTIONS: string[];
|
|
126
133
|
export declare const GRID_SIZE = 20;
|
|
127
134
|
export declare const IMAGE_MIME_TYPES: {
|
|
@@ -173,6 +180,7 @@ export declare const VERSION_TIMEOUT = 30000;
|
|
|
173
180
|
export declare const SCROLL_TIMEOUT = 100;
|
|
174
181
|
export declare const ZOOM_STEP = 0.05;
|
|
175
182
|
export declare const MIN_ZOOM = 0.1;
|
|
183
|
+
export declare const MAX_ZOOM = 30;
|
|
176
184
|
export declare const HYPERLINK_TOOLTIP_DELAY = 300;
|
|
177
185
|
export declare const IDLE_THRESHOLD = 60000;
|
|
178
186
|
export declare const ACTIVE_THRESHOLD = 3000;
|