@excalidraw/math 0.18.0-4ce38fb → 0.18.0-4ce8305
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/types/common/src/utils.d.ts +7 -1
- package/dist/types/element/src/align.d.ts +4 -1
- package/dist/types/element/src/binding.d.ts +36 -0
- package/dist/types/element/src/bounds.d.ts +10 -2
- package/dist/types/element/src/collision.d.ts +7 -0
- package/dist/types/element/src/cropElement.d.ts +36 -4
- package/dist/types/element/src/delta.d.ts +7 -1
- package/dist/types/element/src/distribute.d.ts +4 -1
- package/dist/types/element/src/dragElements.d.ts +8 -3
- package/dist/types/element/src/elbowArrow.d.ts +5 -0
- package/dist/types/element/src/embeddable.d.ts +2 -1
- package/dist/types/element/src/groups.d.ts +1 -6
- package/dist/types/element/src/image.d.ts +5 -2
- package/dist/types/element/src/index.d.ts +1 -0
- package/dist/types/element/src/linearElementEditor.d.ts +4 -1
- package/dist/types/element/src/listMarker.d.ts +7 -2
- package/dist/types/element/src/newElement.d.ts +3 -1
- package/dist/types/element/src/renderElement.d.ts +10 -0
- package/dist/types/element/src/renderEnvironment.d.ts +66 -0
- package/dist/types/element/src/resizeElements.d.ts +15 -5
- package/dist/types/element/src/selection.d.ts +1 -7
- package/dist/types/element/src/shape.d.ts +2 -0
- package/dist/types/element/src/stickyNote.d.ts +8 -0
- package/dist/types/element/src/textElement.d.ts +3 -2
- package/dist/types/element/src/textMeasurements.d.ts +15 -11
- package/dist/types/element/src/textWrapping.d.ts +3 -2
- package/dist/types/element/src/transform.d.ts +5 -1
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +46 -221
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +4 -588
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionExport.d.ts +7 -7
- package/dist/types/excalidraw/actions/actionFrame.d.ts +41 -525
- package/dist/types/excalidraw/actions/actionGroup.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleWrap.d.ts +12 -0
- package/dist/types/excalidraw/actions/index.d.ts +1 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +1 -1
- package/dist/types/excalidraw/appState.d.ts +7 -7
- package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -1
- package/dist/types/excalidraw/charts/charts.helpers.d.ts +6 -5
- package/dist/types/excalidraw/charts/charts.line.d.ts +2 -1
- package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -1
- package/dist/types/excalidraw/charts/index.d.ts +2 -1
- package/dist/types/excalidraw/components/App.d.ts +34 -20
- package/dist/types/excalidraw/components/App.host.d.ts +102 -0
- package/dist/types/excalidraw/components/App.modifiers.d.ts +38 -0
- package/dist/types/excalidraw/components/App.selection.d.ts +265 -0
- package/dist/types/excalidraw/components/App.selectionTool.d.ts +93 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +13 -3
- package/dist/types/excalidraw/components/App.wrap.d.ts +31 -0
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -1
- package/dist/types/excalidraw/components/Stats/utils.d.ts +4 -2
- package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +2 -1
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +5 -2
- package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +2 -1
- package/dist/types/excalidraw/components/TTDDialog/common.d.ts +4 -1
- package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +3 -2
- package/dist/types/excalidraw/components/TTDDialog/types.d.ts +14 -1
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +27 -1
- package/dist/types/excalidraw/components/Tooltip.d.ts +11 -1
- package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +1 -1
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +0 -1
- package/dist/types/excalidraw/components/hyperlink/Hyperlink.d.ts +3 -2
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +13 -2
- package/dist/types/excalidraw/data/blob.d.ts +14 -14
- package/dist/types/excalidraw/data/index.d.ts +3 -3
- package/dist/types/excalidraw/data/json.d.ts +7 -7
- package/dist/types/excalidraw/fonts/Fonts.d.ts +9 -6
- package/dist/types/excalidraw/history.d.ts +10 -4
- package/dist/types/excalidraw/reactUtils.d.ts +1 -1
- package/dist/types/excalidraw/renderer/animation.d.ts +11 -4
- package/dist/types/excalidraw/renderer/staticScene.d.ts +11 -6
- package/dist/types/excalidraw/scene/Renderer.d.ts +1 -1
- package/dist/types/excalidraw/scene/export.d.ts +343 -20
- package/dist/types/excalidraw/scene/types.d.ts +23 -1
- package/dist/types/excalidraw/types.d.ts +49 -1
- package/dist/types/utils/src/index.d.ts +3 -1
- package/package.json +2 -2
- package/dist/types/utils/src/export.d.ts +0 -36
|
@@ -17,7 +17,7 @@ export type TopPicksDragState<T> = {
|
|
|
17
17
|
slotSpan: number;
|
|
18
18
|
} | null;
|
|
19
19
|
export type TopPicksGhost = {
|
|
20
|
-
/** the ghost's visual. Rendered into `document.body` — outside the
|
|
20
|
+
/** the ghost's visual. Rendered into the source's `document.body` — outside the
|
|
21
21
|
* editor's CSS scope, so theme-dependent styling must be resolved from the
|
|
22
22
|
* rendered DOM (computed styles) rather than CSS variables */
|
|
23
23
|
content: HTMLElement;
|
|
@@ -31,6 +31,5 @@ type InteractiveCanvasProps = {
|
|
|
31
31
|
onPointerDown: Exclude<DOMAttributes<HTMLCanvasElement>["onPointerDown"], undefined>;
|
|
32
32
|
onDoubleClick: Exclude<DOMAttributes<HTMLCanvasElement>["onDoubleClick"], undefined>;
|
|
33
33
|
};
|
|
34
|
-
export declare const INTERACTIVE_SCENE_ANIMATION_KEY = "animateInteractiveScene";
|
|
35
34
|
declare const _default: React.MemoExoticComponent<(props: InteractiveCanvasProps) => import("react/jsx-runtime").JSX.Element>;
|
|
36
35
|
export default _default;
|
|
@@ -2,6 +2,7 @@ import type { Scene } from "@excalidraw/element";
|
|
|
2
2
|
import type { ElementsMap, ExcalidrawEmbeddableElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
3
3
|
import "./Hyperlink.scss";
|
|
4
4
|
import type { AppState, ExcalidrawProps, UIAppState } from "../../types";
|
|
5
|
+
export type HyperlinkTooltipOwner = Record<string, unknown>;
|
|
5
6
|
export declare const Hyperlink: ({ element, scene, setAppState, onLinkOpen, setToast, updateEmbedValidationStatus, }: {
|
|
6
7
|
element: NonDeletedExcalidrawElement;
|
|
7
8
|
scene: Scene;
|
|
@@ -15,5 +16,5 @@ export declare const Hyperlink: ({ element, scene, setAppState, onLinkOpen, setT
|
|
|
15
16
|
updateEmbedValidationStatus: (element: ExcalidrawEmbeddableElement, status: boolean) => void;
|
|
16
17
|
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
17
18
|
export declare const getContextMenuLabel: (elements: readonly NonDeletedExcalidrawElement[], appState: UIAppState) => "labels.link.editEmbed" | "labels.link.edit" | "labels.link.create";
|
|
18
|
-
export declare const showHyperlinkTooltip: (element: NonDeletedExcalidrawElement, appState: AppState, elementsMap: ElementsMap) => void;
|
|
19
|
-
export declare const hideHyperlinkToolip: () => void;
|
|
19
|
+
export declare const showHyperlinkTooltip: (element: NonDeletedExcalidrawElement, appState: AppState, elementsMap: ElementsMap, ownerDocument: Document, owner: HyperlinkTooltipOwner) => void;
|
|
20
|
+
export declare const hideHyperlinkToolip: (owner?: HyperlinkTooltipOwner) => void;
|
|
@@ -1,10 +1,21 @@
|
|
|
1
|
+
import type { RenderEnvironment } from "@excalidraw/element/renderEnvironment";
|
|
1
2
|
import type { GlobalPoint, Radians } from "@excalidraw/math";
|
|
2
3
|
import type { Bounds } from "@excalidraw/common";
|
|
3
4
|
import type { ElementsMap, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
4
5
|
import type { AppState } from "../../types";
|
|
5
6
|
export declare const DEFAULT_LINK_SIZE = 12;
|
|
6
|
-
|
|
7
|
-
export
|
|
7
|
+
type SettledLinkImgStatus = Exclude<LinkImgStatus, "decoding">;
|
|
8
|
+
export type LinkImgStatus = "decoding" | "decoded" | "failed";
|
|
9
|
+
export type LinkImg = {
|
|
10
|
+
/** Only safe as a `drawImage` source while `status` is `decoded`. */
|
|
11
|
+
img: HTMLImageElement;
|
|
12
|
+
status: LinkImgStatus;
|
|
13
|
+
settled: Promise<SettledLinkImgStatus>;
|
|
14
|
+
};
|
|
15
|
+
export declare const getExternalLinkImg: (renderEnvironment: RenderEnvironment) => LinkImg;
|
|
16
|
+
export declare const getElementLinkImg: (renderEnvironment: RenderEnvironment) => LinkImg;
|
|
17
|
+
export declare const startLinkImgDecoding: (renderEnvironment: RenderEnvironment) => Promise<boolean>;
|
|
8
18
|
export declare const getLinkHandleFromCoords: ([x1, y1, x2, y2]: Bounds, angle: Radians, appState: Pick<AppState, "zoom">) => Bounds;
|
|
9
19
|
export declare const isPointHittingLinkIcon: (element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, appState: AppState, [x, y]: GlobalPoint) => boolean;
|
|
10
20
|
export declare const isPointHittingLink: (element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, appState: AppState, [x, y]: GlobalPoint, isMobile: boolean) => boolean;
|
|
21
|
+
export {};
|
|
@@ -30,6 +30,11 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
30
30
|
};
|
|
31
31
|
name: string | null;
|
|
32
32
|
zoom: import("../types").Zoom;
|
|
33
|
+
isBindingEnabled: boolean;
|
|
34
|
+
isMidpointSnappingEnabled: boolean;
|
|
35
|
+
selectedElementIds: Readonly<{
|
|
36
|
+
[id: string]: true;
|
|
37
|
+
}>;
|
|
33
38
|
scrollX: number;
|
|
34
39
|
scrollY: number;
|
|
35
40
|
viewModeEnabled: boolean;
|
|
@@ -51,9 +56,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
51
56
|
rawText: string;
|
|
52
57
|
};
|
|
53
58
|
editingGroupId: import("@excalidraw/element/types").GroupId | null;
|
|
54
|
-
selectedElementIds: Readonly<{
|
|
55
|
-
[id: string]: true;
|
|
56
|
-
}>;
|
|
57
59
|
frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
58
60
|
activeTool: {
|
|
59
61
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
@@ -71,8 +73,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
71
73
|
selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
|
|
72
74
|
multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
73
75
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
74
|
-
isBindingEnabled: boolean;
|
|
75
|
-
isMidpointSnappingEnabled: boolean;
|
|
76
76
|
gridModeEnabled: boolean;
|
|
77
77
|
suggestedBinding: {
|
|
78
78
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
@@ -108,8 +108,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
108
108
|
shouldCacheIgnoreZoom: boolean;
|
|
109
109
|
exportScale: number;
|
|
110
110
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
111
|
-
gridSize: number;
|
|
112
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
113
111
|
contextMenu: {
|
|
114
112
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
115
113
|
top: number;
|
|
@@ -171,6 +169,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
171
169
|
closable?: boolean;
|
|
172
170
|
duration?: number;
|
|
173
171
|
} | null;
|
|
172
|
+
gridSize: number;
|
|
174
173
|
gridStep: number;
|
|
175
174
|
fileHandle: FileSystemFileHandle | null;
|
|
176
175
|
stats: {
|
|
@@ -186,6 +185,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
186
185
|
lockedMultiSelections: {
|
|
187
186
|
[groupId: string]: true;
|
|
188
187
|
};
|
|
188
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
189
189
|
colorTopPicks: {
|
|
190
190
|
elementStroke: readonly string[] | null;
|
|
191
191
|
elementBackground: readonly string[] | null;
|
|
@@ -218,6 +218,11 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
218
218
|
};
|
|
219
219
|
name: string | null;
|
|
220
220
|
zoom: import("../types").Zoom;
|
|
221
|
+
isBindingEnabled: boolean;
|
|
222
|
+
isMidpointSnappingEnabled: boolean;
|
|
223
|
+
selectedElementIds: Readonly<{
|
|
224
|
+
[id: string]: true;
|
|
225
|
+
}>;
|
|
221
226
|
scrollX: number;
|
|
222
227
|
scrollY: number;
|
|
223
228
|
viewModeEnabled: boolean;
|
|
@@ -239,9 +244,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
239
244
|
rawText: string;
|
|
240
245
|
};
|
|
241
246
|
editingGroupId: import("@excalidraw/element/types").GroupId | null;
|
|
242
|
-
selectedElementIds: Readonly<{
|
|
243
|
-
[id: string]: true;
|
|
244
|
-
}>;
|
|
245
247
|
frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
246
248
|
activeTool: {
|
|
247
249
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
@@ -259,8 +261,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
259
261
|
selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
|
|
260
262
|
multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
261
263
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
262
|
-
isBindingEnabled: boolean;
|
|
263
|
-
isMidpointSnappingEnabled: boolean;
|
|
264
264
|
gridModeEnabled: boolean;
|
|
265
265
|
suggestedBinding: {
|
|
266
266
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
@@ -296,8 +296,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
296
296
|
shouldCacheIgnoreZoom: boolean;
|
|
297
297
|
exportScale: number;
|
|
298
298
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
299
|
-
gridSize: number;
|
|
300
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
301
299
|
contextMenu: {
|
|
302
300
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
303
301
|
top: number;
|
|
@@ -359,6 +357,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
359
357
|
closable?: boolean;
|
|
360
358
|
duration?: number;
|
|
361
359
|
} | null;
|
|
360
|
+
gridSize: number;
|
|
362
361
|
gridStep: number;
|
|
363
362
|
fileHandle: FileSystemFileHandle | null;
|
|
364
363
|
stats: {
|
|
@@ -374,6 +373,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
374
373
|
lockedMultiSelections: {
|
|
375
374
|
[groupId: string]: true;
|
|
376
375
|
};
|
|
376
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
377
377
|
colorTopPicks: {
|
|
378
378
|
elementStroke: readonly string[] | null;
|
|
379
379
|
elementBackground: readonly string[] | null;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
2
|
+
import type { RenderEnvironment } from "@excalidraw/element";
|
|
2
3
|
import type { ExportType } from "../scene/types";
|
|
3
4
|
import type { AppState, BinaryFiles } from "../types";
|
|
4
5
|
export { loadFromBlob } from "./blob";
|
|
@@ -10,12 +11,11 @@ export declare const prepareElementsForExport: (allElements: readonly Excalidraw
|
|
|
10
11
|
exportingFrame: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
11
12
|
exportedElements: ExportedElements;
|
|
12
13
|
};
|
|
13
|
-
export declare const exportCanvas: (type: Omit<ExportType, "backend">, elements: ExportedElements, appState: AppState, files: BinaryFiles, {
|
|
14
|
-
exportBackground: boolean;
|
|
14
|
+
export declare const exportCanvas: (type: Omit<ExportType, "backend">, elements: ExportedElements, appState: AppState, files: BinaryFiles, { exportPadding, name, fileHandle, exportingFrame, renderEnvironment, }: {
|
|
15
15
|
exportPadding?: number;
|
|
16
|
-
viewBackgroundColor: string;
|
|
17
16
|
/** filename, if applicable */
|
|
18
17
|
name?: string;
|
|
19
18
|
fileHandle?: FileSystemFileHandle | null;
|
|
20
19
|
exportingFrame: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
20
|
+
renderEnvironment?: RenderEnvironment;
|
|
21
21
|
}) => Promise<FileSystemFileHandle | null | undefined>;
|
|
@@ -28,6 +28,11 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
28
28
|
};
|
|
29
29
|
name: string | null;
|
|
30
30
|
zoom: import("../types").Zoom;
|
|
31
|
+
isBindingEnabled: boolean;
|
|
32
|
+
isMidpointSnappingEnabled: boolean;
|
|
33
|
+
selectedElementIds: Readonly<{
|
|
34
|
+
[id: string]: true;
|
|
35
|
+
}>;
|
|
31
36
|
scrollX: number;
|
|
32
37
|
scrollY: number;
|
|
33
38
|
viewModeEnabled: boolean;
|
|
@@ -49,9 +54,6 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
49
54
|
rawText: string;
|
|
50
55
|
};
|
|
51
56
|
editingGroupId: import("@excalidraw/element/types").GroupId | null;
|
|
52
|
-
selectedElementIds: Readonly<{
|
|
53
|
-
[id: string]: true;
|
|
54
|
-
}>;
|
|
55
57
|
frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
56
58
|
activeTool: {
|
|
57
59
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
@@ -69,8 +71,6 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
69
71
|
selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
|
|
70
72
|
multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
71
73
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
72
|
-
isBindingEnabled: boolean;
|
|
73
|
-
isMidpointSnappingEnabled: boolean;
|
|
74
74
|
gridModeEnabled: boolean;
|
|
75
75
|
suggestedBinding: {
|
|
76
76
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
@@ -106,8 +106,6 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
106
106
|
shouldCacheIgnoreZoom: boolean;
|
|
107
107
|
exportScale: number;
|
|
108
108
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
109
|
-
gridSize: number;
|
|
110
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
111
109
|
contextMenu: {
|
|
112
110
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
113
111
|
top: number;
|
|
@@ -169,6 +167,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
169
167
|
closable?: boolean;
|
|
170
168
|
duration?: number;
|
|
171
169
|
} | null;
|
|
170
|
+
gridSize: number;
|
|
172
171
|
gridStep: number;
|
|
173
172
|
fileHandle: FileSystemFileHandle | null;
|
|
174
173
|
stats: {
|
|
@@ -184,6 +183,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
184
183
|
lockedMultiSelections: {
|
|
185
184
|
[groupId: string]: true;
|
|
186
185
|
};
|
|
186
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
187
187
|
colorTopPicks: {
|
|
188
188
|
elementStroke: readonly string[] | null;
|
|
189
189
|
elementBackground: readonly string[] | null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type FontMetadata } from "@excalidraw/common";
|
|
2
|
-
import type { ExcalidrawElement } from "@excalidraw/element/types";
|
|
2
|
+
import type { ExcalidrawElement, ExcalidrawTextElement } from "@excalidraw/element/types";
|
|
3
3
|
import type { Scene } from "@excalidraw/element";
|
|
4
4
|
import { ExcalidrawFontFace } from "./ExcalidrawFontFace";
|
|
5
5
|
export declare class Fonts {
|
|
@@ -16,6 +16,7 @@ export declare class Fonts {
|
|
|
16
16
|
}>;
|
|
17
17
|
private readonly scene;
|
|
18
18
|
private readonly ownerDocument;
|
|
19
|
+
private readonly loadedFonts;
|
|
19
20
|
constructor(scene: Scene, ownerDocument?: Document);
|
|
20
21
|
/**
|
|
21
22
|
* Get all the font families for the given scene.
|
|
@@ -33,9 +34,15 @@ export declare class Fonts {
|
|
|
33
34
|
/**
|
|
34
35
|
* Load font faces for a given scene and trigger scene update.
|
|
35
36
|
*/
|
|
36
|
-
loadSceneFonts: () => Promise<FontFace[]>;
|
|
37
|
+
loadSceneFonts: (defaultFontFamily?: ExcalidrawTextElement["fontFamily"]) => Promise<FontFace[]>;
|
|
37
38
|
/**
|
|
38
39
|
* Load font faces for passed elements - use when the scene is unavailable (i.e. export).
|
|
40
|
+
*
|
|
41
|
+
* Loads into the document's font set, or in a worker into the worker's own
|
|
42
|
+
* (`self.fonts`, what an `OffscreenCanvas` there measures with). Where there
|
|
43
|
+
* is neither -- e.g. a DOM shim without `FontFaceSet` (`linkedom`), or Node
|
|
44
|
+
* -- nothing is loaded: the host makes the fonts available itself, and is
|
|
45
|
+
* warned once if the elements use fonts that would need loading.
|
|
39
46
|
*/
|
|
40
47
|
static loadElementsFonts: (elements: readonly ExcalidrawElement[], ownerDocument?: Document) => Promise<FontFace[]>;
|
|
41
48
|
/**
|
|
@@ -69,10 +76,6 @@ export declare class Fonts {
|
|
|
69
76
|
* Get characters for a given family.
|
|
70
77
|
*/
|
|
71
78
|
private static getCharacters;
|
|
72
|
-
/**
|
|
73
|
-
* Get all registered font families.
|
|
74
|
-
*/
|
|
75
|
-
private static getAllFamilies;
|
|
76
79
|
}
|
|
77
80
|
export interface ExcalidrawFontFaceDescriptor {
|
|
78
81
|
uri: string;
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { Emitter } from "@excalidraw/common";
|
|
2
2
|
import { StoreDelta } from "@excalidraw/element";
|
|
3
|
-
import type { StoreSnapshot, Store } from "@excalidraw/element";
|
|
3
|
+
import type { RenderEnvironment, StoreSnapshot, Store } from "@excalidraw/element";
|
|
4
4
|
import type { SceneElementsMap } from "@excalidraw/element/types";
|
|
5
5
|
import type { AppState } from "./types";
|
|
6
6
|
export declare class HistoryDelta extends StoreDelta {
|
|
7
7
|
/**
|
|
8
8
|
* Apply the delta to the passed elements and appState, does not modify the snapshot.
|
|
9
9
|
*/
|
|
10
|
-
applyTo(elements: SceneElementsMap, appState: AppState, snapshot: StoreSnapshot
|
|
10
|
+
applyTo(elements: SceneElementsMap, appState: AppState, snapshot: StoreSnapshot,
|
|
11
|
+
/** measures the labels re-laid out after applying */
|
|
12
|
+
renderEnvironment?: RenderEnvironment): [SceneElementsMap, AppState, boolean];
|
|
11
13
|
/**
|
|
12
14
|
* Overriding once to avoid type casting everywhere.
|
|
13
15
|
*/
|
|
@@ -40,8 +42,12 @@ export declare class History {
|
|
|
40
42
|
* Do not re-record history entries, which were already pushed to undo / redo stack, as part of history action.
|
|
41
43
|
*/
|
|
42
44
|
record(delta: StoreDelta): void;
|
|
43
|
-
undo(elements: SceneElementsMap, appState: AppState
|
|
44
|
-
|
|
45
|
+
undo(elements: SceneElementsMap, appState: AppState,
|
|
46
|
+
/** measures the labels re-laid out after undoing (the host's, in the editor) */
|
|
47
|
+
renderEnvironment?: RenderEnvironment): void | [SceneElementsMap, AppState];
|
|
48
|
+
redo(elements: SceneElementsMap, appState: AppState,
|
|
49
|
+
/** measures the labels re-laid out after redoing (the host's, in the editor) */
|
|
50
|
+
renderEnvironment?: RenderEnvironment): void | [SceneElementsMap, AppState];
|
|
45
51
|
private perform;
|
|
46
52
|
private static pop;
|
|
47
53
|
private static push;
|
|
@@ -6,7 +6,7 @@ export declare const withBatchedUpdates: <TFunction extends ((event: any) => voi
|
|
|
6
6
|
* barches React state updates and throttles the calls to a single call per
|
|
7
7
|
* animation frame
|
|
8
8
|
*/
|
|
9
|
-
export declare const withBatchedUpdatesThrottled: <TFunction extends ((event: any) => void) | (() => void)>(func: Parameters<TFunction>["length"] extends 0 | 1 ? TFunction : never) => {
|
|
9
|
+
export declare const withBatchedUpdatesThrottled: <TFunction extends ((event: any) => void) | (() => void)>(func: Parameters<TFunction>["length"] extends 0 | 1 ? TFunction : never, ownerWindow?: Window) => {
|
|
10
10
|
(...args: Parameters<TFunction>): void;
|
|
11
11
|
flush(): void;
|
|
12
12
|
cancel(): void;
|
|
@@ -1,16 +1,23 @@
|
|
|
1
|
+
/** String keys are shared process-wide; symbols are created per owning
|
|
2
|
+
* instance, which lets concurrent instances run the same named animation
|
|
3
|
+
* independently. */
|
|
4
|
+
export type AnimationKey = string | symbol;
|
|
1
5
|
export type Animation<R extends object> = (params: {
|
|
2
6
|
deltaTime: number;
|
|
3
7
|
state?: R;
|
|
4
8
|
}) => R | null | undefined;
|
|
9
|
+
export type AnimationScheduler = Pick<Window, "requestAnimationFrame" | "cancelAnimationFrame" | "setTimeout" | "clearTimeout">;
|
|
5
10
|
export declare class AnimationController {
|
|
6
|
-
private static
|
|
11
|
+
private static scheduledFrames;
|
|
7
12
|
private static animations;
|
|
8
|
-
static
|
|
13
|
+
private static readonly schedulerCleanups;
|
|
14
|
+
static start<R extends object>(key: AnimationKey, animation: Animation<R>, scheduler?: AnimationScheduler): void;
|
|
9
15
|
private static scheduleNextFrame;
|
|
10
16
|
private static cancelScheduledFrame;
|
|
11
17
|
private static cancelScheduledFrameIfIdle;
|
|
18
|
+
private static registerSchedulerCleanup;
|
|
12
19
|
private static tick;
|
|
13
|
-
static running(key:
|
|
14
|
-
static cancel(key:
|
|
20
|
+
static running(key: AnimationKey): boolean;
|
|
21
|
+
static cancel(key: AnimationKey): void;
|
|
15
22
|
static reset(): void;
|
|
16
23
|
}
|
|
@@ -2,12 +2,17 @@ import type { ExcalidrawFrameLikeElement } from "@excalidraw/element/types";
|
|
|
2
2
|
import type { StaticCanvasRenderConfig, StaticSceneRenderConfig } from "../scene/types";
|
|
3
3
|
import type { StaticCanvasAppState } from "../types";
|
|
4
4
|
export declare const frameClip: (frame: ExcalidrawFrameLikeElement, context: CanvasRenderingContext2D, renderConfig: StaticCanvasRenderConfig, appState: StaticCanvasAppState) => void;
|
|
5
|
-
/**
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Throttled to animation framerate, one throttle per canvas. A shared
|
|
7
|
+
* throttle drops all but the last caller's pending frame when multiple
|
|
8
|
+
* editors render in the same frame, and a module-realm scheduler would run
|
|
9
|
+
* popout renders on the main window's rAF, which freezes while that window
|
|
10
|
+
* is hidden.
|
|
11
|
+
*/
|
|
12
|
+
export declare const renderStaticSceneThrottled: (config: StaticSceneRenderConfig) => void;
|
|
13
|
+
/** Drops the canvas' pending frame; the throttle itself is dropped with the
|
|
14
|
+
* canvas. */
|
|
15
|
+
export declare const cancelStaticSceneThrottle: (canvas: HTMLCanvasElement) => void;
|
|
11
16
|
/**
|
|
12
17
|
* Static scene is the non-ui canvas where we render elements.
|
|
13
18
|
*/
|