@excalidraw/math 0.18.0-2a82821 → 0.18.0-2b1c2a9
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 +270 -107
- package/dist/dev/index.js.map +4 -4
- package/dist/prod/index.js +1 -1
- package/dist/types/common/src/colors.d.ts +19 -0
- package/dist/types/common/src/constants.d.ts +3 -0
- package/dist/types/common/src/keys.d.ts +2 -0
- package/dist/types/common/src/points.d.ts +1 -1
- package/dist/types/common/src/utils.d.ts +1 -43
- package/dist/types/element/src/Scene.d.ts +1 -1
- 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 +17 -8
- package/dist/types/element/src/bounds.d.ts +5 -9
- package/dist/types/element/src/bucketFill.d.ts +110 -0
- package/dist/types/element/src/collision.d.ts +1 -1
- package/dist/types/element/src/comparisons.d.ts +4 -4
- package/dist/types/element/src/convertToShape.d.ts +23 -0
- 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 +3 -3
- package/dist/types/element/src/embeddable.d.ts +2 -2
- package/dist/types/element/src/flowchart.d.ts +7 -7
- package/dist/types/element/src/fractionalIndex.d.ts +2 -2
- package/dist/types/element/src/frame.d.ts +4 -4
- package/dist/types/element/src/groups.d.ts +9 -9
- package/dist/types/element/src/index.d.ts +4 -1
- package/dist/types/element/src/linearElementEditor.d.ts +27 -10
- package/dist/types/element/src/newElement.d.ts +14 -0
- package/dist/types/element/src/renderElement.d.ts +0 -3
- package/dist/types/element/src/resizeElements.d.ts +2 -2
- package/dist/types/element/src/selection.d.ts +5 -5
- package/dist/types/element/src/shape.d.ts +12 -0
- package/dist/types/element/src/sortElements.d.ts +10 -0
- package/dist/types/element/src/textElement.d.ts +13 -9
- package/dist/types/element/src/transform.d.ts +2 -2
- package/dist/types/element/src/typeChecks.d.ts +25 -25
- package/dist/types/element/src/types.d.ts +9 -1
- package/dist/types/element/src/utils.d.ts +7 -3
- package/dist/types/element/src/zindex.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +36 -12
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +24 -8
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +146 -931
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +24 -8
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +12 -4
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +38 -13
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +9 -4
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +12 -4
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +25 -9
- package/dist/types/excalidraw/actions/actionExport.d.ts +26 -10
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
- package/dist/types/excalidraw/actions/actionFrame.d.ts +48 -197
- package/dist/types/excalidraw/actions/actionGroup.d.ts +39 -23
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +16 -6
- package/dist/types/excalidraw/actions/actionLink.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionMenu.d.ts +12 -4
- package/dist/types/excalidraw/actions/actionProperties.d.ts +43 -24
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +17 -9
- package/dist/types/excalidraw/actions/actionStyles.d.ts +12 -4
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +16 -9
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +16 -9
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +13 -5
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +14 -6
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +13 -5
- package/dist/types/excalidraw/actions/index.d.ts +1 -2
- package/dist/types/excalidraw/actions/manager.d.ts +1 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +8 -4
- package/dist/types/excalidraw/appState.d.ts +9 -4
- package/dist/types/excalidraw/components/Actions.d.ts +17 -12
- package/dist/types/excalidraw/components/App.arrowText.d.ts +104 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
- package/dist/types/excalidraw/components/App.d.ts +372 -67
- package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
- package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +73 -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 +3 -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/keyboardNavHandlers.d.ts +2 -1
- package/dist/types/excalidraw/components/ColorPicker/topPicksDnD.d.ts +31 -0
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +1 -1
- package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
- package/dist/types/excalidraw/components/{ToolButton.d.ts → IconButton.d.ts} +16 -19
- 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/LockButton.d.ts +3 -4
- package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
- package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
- package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
- package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
- package/dist/types/excalidraw/components/Popover.d.ts +1 -3
- package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
- package/dist/types/excalidraw/components/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/ToolPopover.d.ts +3 -6
- package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
- package/dist/types/excalidraw/components/Tools.d.ts +146 -0
- package/dist/types/excalidraw/components/UserList.d.ts +3 -2
- package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -0
- package/dist/types/excalidraw/components/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 +4 -1
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
- package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
- package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
- package/dist/types/excalidraw/data/blob.d.ts +28 -12
- package/dist/types/excalidraw/data/index.d.ts +4 -4
- package/dist/types/excalidraw/data/json.d.ts +20 -12
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- 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/useTextEditorFocus.d.ts +5 -5
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
- package/dist/types/excalidraw/renderer/animation.d.ts +1 -0
- package/dist/types/excalidraw/renderer/helpers.d.ts +7 -0
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -3
- package/dist/types/excalidraw/scene/Renderer.d.ts +12 -11
- package/dist/types/excalidraw/scene/export.d.ts +3 -3
- package/dist/types/excalidraw/scene/index.d.ts +1 -1
- package/dist/types/excalidraw/scene/types.d.ts +4 -3
- package/dist/types/excalidraw/snapping.d.ts +7 -7
- package/dist/types/excalidraw/types.d.ts +410 -20
- package/dist/types/excalidraw/viewport.d.ts +275 -0
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -3
- package/dist/types/laser-pointer/src/state.d.ts +1 -0
- package/dist/types/math/src/curve.d.ts +19 -12
- package/dist/types/math/src/index.d.ts +1 -0
- package/dist/types/math/src/pca.d.ts +79 -0
- package/dist/types/math/src/polygon.d.ts +25 -1
- package/dist/types/math/src/segment.d.ts +6 -0
- package/dist/types/utils/src/export.d.ts +3 -3
- package/package.json +2 -2
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +0 -172
- 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/shapes.d.ts +0 -270
- 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
|
@@ -4,7 +4,8 @@ import type { AppClassProperties } from "../types";
|
|
|
4
4
|
type ToolOption = {
|
|
5
5
|
type: string;
|
|
6
6
|
icon: React.ReactNode;
|
|
7
|
-
title
|
|
7
|
+
title: string;
|
|
8
|
+
fillable?: boolean;
|
|
8
9
|
};
|
|
9
10
|
type ToolPopoverProps = {
|
|
10
11
|
app: AppClassProperties;
|
|
@@ -13,13 +14,9 @@ type ToolPopoverProps = {
|
|
|
13
14
|
type: string;
|
|
14
15
|
};
|
|
15
16
|
defaultOption: string;
|
|
16
|
-
className?: string;
|
|
17
|
-
namePrefix: string;
|
|
18
|
-
title: string;
|
|
19
17
|
"data-testid": string;
|
|
20
18
|
onToolChange: (type: string) => void;
|
|
21
19
|
displayedOption: ToolOption;
|
|
22
|
-
fillable?: boolean;
|
|
23
20
|
};
|
|
24
|
-
export declare const ToolPopover: ({ app, options, activeTool, defaultOption,
|
|
21
|
+
export declare const ToolPopover: ({ app, options, activeTool, defaultOption, "data-testid": dataTestId, onToolChange, displayedOption, }: ToolPopoverProps) => import("react/jsx-runtime").JSX.Element;
|
|
25
22
|
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { AppClassProperties, AppProps, AppState, UIAppState } from "../types";
|
|
2
|
+
/** the main (desktop/tablet) toolbar island */
|
|
3
|
+
export declare const Toolbar: ({ app, appState, setAppState, UIOptions, onPenModeToggle, onLockToggle, heading, }: {
|
|
4
|
+
app: AppClassProperties;
|
|
5
|
+
appState: UIAppState;
|
|
6
|
+
setAppState: React.Component<any, AppState>["setState"];
|
|
7
|
+
UIOptions: AppProps["UIOptions"];
|
|
8
|
+
onPenModeToggle: AppClassProperties["togglePenMode"];
|
|
9
|
+
onLockToggle: () => void;
|
|
10
|
+
heading: React.ReactNode;
|
|
11
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import type { AppClassProperties, AppState, ToolType, UIAppState } from "../types";
|
|
2
|
+
export type ToolConfig = {
|
|
3
|
+
icon: React.ReactNode;
|
|
4
|
+
/** letter shortcut(s) — the first one is shown in tooltips */
|
|
5
|
+
letterKey?: string | readonly string[];
|
|
6
|
+
/** whether `letterKey` requires Shift to be held (e.g. Shift+X) */
|
|
7
|
+
shiftKey?: boolean;
|
|
8
|
+
numericKey?: string;
|
|
9
|
+
/** whether the tool's shapes can be filled — fills the icon when active */
|
|
10
|
+
fillable?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* re-activating the tool switches back to the previously active tool
|
|
13
|
+
* (via the keyboard shortcut or ESC — see `setActiveTool`'s `toggle`
|
|
14
|
+
* option)
|
|
15
|
+
*/
|
|
16
|
+
toggle?: boolean;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Tool data — the single source of truth for tool buttons, keyboard
|
|
20
|
+
* shortcuts (`findShapeByKey`), and the command palette. Toolbar placement
|
|
21
|
+
* is not defined here: toolbars compose the `*ToolButton` components below
|
|
22
|
+
* manually, so entries without a toolbar slot (e.g. laser) are data-only.
|
|
23
|
+
*/
|
|
24
|
+
export declare const TOOLS: {
|
|
25
|
+
hand: ToolConfig;
|
|
26
|
+
selection: ToolConfig;
|
|
27
|
+
rectangle: ToolConfig;
|
|
28
|
+
diamond: ToolConfig;
|
|
29
|
+
ellipse: ToolConfig;
|
|
30
|
+
arrow: ToolConfig;
|
|
31
|
+
line: ToolConfig;
|
|
32
|
+
freedraw: ToolConfig;
|
|
33
|
+
text: ToolConfig;
|
|
34
|
+
image: ToolConfig;
|
|
35
|
+
eraser: ToolConfig;
|
|
36
|
+
frame: ToolConfig;
|
|
37
|
+
autoshape: ToolConfig;
|
|
38
|
+
embeddable: ToolConfig;
|
|
39
|
+
laser: ToolConfig;
|
|
40
|
+
bucketfill: ToolConfig;
|
|
41
|
+
lasso: ToolConfig;
|
|
42
|
+
};
|
|
43
|
+
export type ToolbarToolType = keyof typeof TOOLS;
|
|
44
|
+
/**
|
|
45
|
+
* tools that, when activated while already active, switch back to the
|
|
46
|
+
* previously active tool (see `setActiveTool`'s `toggle` option)
|
|
47
|
+
*/
|
|
48
|
+
export declare const TOGGLE_TOOLS: readonly (ToolType | "custom")[];
|
|
49
|
+
export declare const getToolLetter: (type: ToolbarToolType) => string | undefined;
|
|
50
|
+
/** human-readable shortcut hint, e.g. "R or 2", used in tooltips & aria */
|
|
51
|
+
export declare const getToolShortcut: (type: ToolbarToolType) => string;
|
|
52
|
+
export declare const findShapeByKey: (key: string, app: AppClassProperties, shiftKey?: boolean) => "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "lasso" | "eraser" | "hand" | "laser" | "autoshape" | "bucketfill" | null;
|
|
53
|
+
/**
|
|
54
|
+
* Whether a toolbar entry activating the given tool renders disabled — true
|
|
55
|
+
* when the active tool is host-controlled (`props.activeTool`) and the entry
|
|
56
|
+
* doesn't activate the forced tool (`setActiveTool` refuses it).
|
|
57
|
+
*/
|
|
58
|
+
export declare const isToolButtonDisabled: (app: AppClassProperties, type: string) => boolean;
|
|
59
|
+
export type ToolButtonComponentProps = {
|
|
60
|
+
app: AppClassProperties;
|
|
61
|
+
activeTool: UIAppState["activeTool"];
|
|
62
|
+
/** hide the keybinding badge rendered in the button's corner */
|
|
63
|
+
hideKeyBinding?: boolean;
|
|
64
|
+
/**
|
|
65
|
+
* hide all shortcut affordances (tooltip hint, aria-keyshortcuts, and the
|
|
66
|
+
* keybinding badge) — used on mobile where there's no keyboard
|
|
67
|
+
*/
|
|
68
|
+
hideShortcut?: boolean;
|
|
69
|
+
};
|
|
70
|
+
export declare const HandToolButton: {
|
|
71
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
72
|
+
displayName: string;
|
|
73
|
+
};
|
|
74
|
+
export declare const RectangleToolButton: {
|
|
75
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
76
|
+
displayName: string;
|
|
77
|
+
};
|
|
78
|
+
export declare const DiamondToolButton: {
|
|
79
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
80
|
+
displayName: string;
|
|
81
|
+
};
|
|
82
|
+
export declare const EllipseToolButton: {
|
|
83
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
84
|
+
displayName: string;
|
|
85
|
+
};
|
|
86
|
+
export declare const ArrowToolButton: {
|
|
87
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
88
|
+
displayName: string;
|
|
89
|
+
};
|
|
90
|
+
export declare const LineToolButton: {
|
|
91
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
92
|
+
displayName: string;
|
|
93
|
+
};
|
|
94
|
+
export declare const FreedrawToolButton: {
|
|
95
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
96
|
+
displayName: string;
|
|
97
|
+
};
|
|
98
|
+
export declare const TextToolButton: {
|
|
99
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
100
|
+
displayName: string;
|
|
101
|
+
};
|
|
102
|
+
export declare const ImageToolButton: {
|
|
103
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
104
|
+
displayName: string;
|
|
105
|
+
};
|
|
106
|
+
export declare const EraserToolButton: {
|
|
107
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
108
|
+
displayName: string;
|
|
109
|
+
};
|
|
110
|
+
export declare const FrameToolButton: {
|
|
111
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
112
|
+
displayName: string;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* The selection tool button — pointer-clicking it while the selection tool
|
|
116
|
+
* is active switches to lasso.
|
|
117
|
+
*/
|
|
118
|
+
export declare const SelectionToolButton: {
|
|
119
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
120
|
+
displayName: string;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Rendered in place of the selection button when lasso is the preferred
|
|
124
|
+
* selection tool; the selection shortcut activates it then.
|
|
125
|
+
*/
|
|
126
|
+
export declare const LassoToolButton: {
|
|
127
|
+
({ app, activeTool, hideKeyBinding, hideShortcut, }: ToolButtonComponentProps): import("react/jsx-runtime").JSX.Element;
|
|
128
|
+
displayName: string;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* The selection ⇄ lasso popover used in compact (tablet) and mobile
|
|
132
|
+
* toolbars; picking an option also makes it the preferred selection tool.
|
|
133
|
+
*/
|
|
134
|
+
export declare const SelectionToolPopover: ({ app, activeTool, setAppState, }: {
|
|
135
|
+
app: AppClassProperties;
|
|
136
|
+
activeTool: UIAppState["activeTool"];
|
|
137
|
+
setAppState: React.Component<any, AppState>["setState"];
|
|
138
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
139
|
+
/**
|
|
140
|
+
* The freedraw ⇄ draw-shape popover used in compact (tablet) and mobile
|
|
141
|
+
* toolbars. The trigger remembers and displays the most recently used option.
|
|
142
|
+
*/
|
|
143
|
+
export declare const FreedrawToolPopover: ({ app, activeTool, }: {
|
|
144
|
+
app: AppClassProperties;
|
|
145
|
+
activeTool: UIAppState["activeTool"];
|
|
146
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -7,12 +7,13 @@ export type GoToCollaboratorComponentProps = {
|
|
|
7
7
|
withName: boolean;
|
|
8
8
|
isBeingFollowed: boolean;
|
|
9
9
|
};
|
|
10
|
-
type UserListUserObject = Pick<Collaborator, "avatarUrl" | "id" | "socketId" | "username" | "isInCall" | "isSpeaking" | "isMuted">;
|
|
10
|
+
type UserListUserObject = Pick<Collaborator, "avatarUrl" | "id" | "socketId" | "username" | "isInCall" | "isSpeaking" | "isMuted" | "isCurrentUser">;
|
|
11
11
|
type UserListProps = {
|
|
12
12
|
className?: string;
|
|
13
13
|
mobile?: boolean;
|
|
14
14
|
collaborators: Map<SocketId, UserListUserObject>;
|
|
15
15
|
userToFollow: SocketId | null;
|
|
16
|
+
currentUserControls?: React.ReactNode | ((isMobile: boolean) => React.ReactNode);
|
|
16
17
|
};
|
|
17
|
-
export declare const UserList: React.MemoExoticComponent<({ className, mobile, collaborators, userToFollow }: UserListProps) => import("react/jsx-runtime").JSX.Element>;
|
|
18
|
+
export declare const UserList: React.MemoExoticComponent<({ className, mobile, collaborators, userToFollow, currentUserControls, }: UserListProps) => import("react/jsx-runtime").JSX.Element>;
|
|
18
19
|
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import "./ViewportStatusFrame.scss";
|
|
2
|
+
import type { CSSProperties } from "react";
|
|
3
|
+
import type { ViewportStatusFrame as ViewportStatusFrameType } from "../../types";
|
|
4
|
+
export declare const ViewportStatusBorder: ({ border, style, }: {
|
|
5
|
+
border: string;
|
|
6
|
+
style?: CSSProperties;
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare const ViewportStatusBadge: ({ label, border, }: {
|
|
9
|
+
label: NonNullable<ViewportStatusFrameType["label"]>;
|
|
10
|
+
border?: ViewportStatusFrameType["border"];
|
|
11
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -18,6 +18,8 @@ type InteractiveCanvasProps = {
|
|
|
18
18
|
renderScrollbars: boolean;
|
|
19
19
|
editorInterface: EditorInterface;
|
|
20
20
|
app: AppClassProperties;
|
|
21
|
+
interactionEnabled: boolean;
|
|
22
|
+
navigationEnabled: boolean;
|
|
21
23
|
renderInteractiveSceneCallback: (data: RenderInteractiveSceneCallback) => void;
|
|
22
24
|
handleCanvasRef: (canvas: HTMLCanvasElement | null) => void;
|
|
23
25
|
onContextMenu: Exclude<DOMAttributes<HTMLCanvasElement | HTMLDivElement>["onContextMenu"], undefined>;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { ActionManager } from "../../actions/manager";
|
|
2
2
|
import type { UIAppState } from "../../types";
|
|
3
3
|
declare const Footer: {
|
|
4
|
-
({ appState, actionManager, showExitZenModeBtn, renderWelcomeScreen, }: {
|
|
4
|
+
({ appState, actionManager, showExitZenModeBtn, renderWelcomeScreen, defaultUIEnabled, zoomUIEnabled, }: {
|
|
5
5
|
appState: UIAppState;
|
|
6
6
|
actionManager: ActionManager;
|
|
7
7
|
showExitZenModeBtn: boolean;
|
|
8
8
|
renderWelcomeScreen: boolean;
|
|
9
|
+
defaultUIEnabled: boolean;
|
|
10
|
+
zoomUIEnabled: boolean;
|
|
9
11
|
}): import("react/jsx-runtime").JSX.Element;
|
|
10
12
|
displayName: string;
|
|
11
13
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { GlobalPoint, Radians } from "@excalidraw/math";
|
|
2
2
|
import type { Bounds } from "@excalidraw/common";
|
|
3
3
|
import type { ElementsMap, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
4
|
-
import type { AppState
|
|
4
|
+
import type { AppState } from "../../types";
|
|
5
5
|
export declare const DEFAULT_LINK_SIZE = 12;
|
|
6
6
|
export declare const EXTERNAL_LINK_IMG: HTMLImageElement;
|
|
7
7
|
export declare const ELEMENT_LINK_IMG: HTMLImageElement;
|
|
8
|
-
export declare const getLinkHandleFromCoords: ([x1, y1, x2, y2]: Bounds, angle: Radians, appState: Pick<
|
|
8
|
+
export declare const getLinkHandleFromCoords: ([x1, y1, x2, y2]: Bounds, angle: Radians, appState: Pick<AppState, "zoom">) => Bounds;
|
|
9
9
|
export declare const isPointHittingLinkIcon: (element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, appState: AppState, [x, y]: GlobalPoint) => boolean;
|
|
10
10
|
export declare const isPointHittingLink: (element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, appState: AppState, [x, y]: GlobalPoint, isMobile: boolean) => boolean;
|
|
@@ -57,6 +57,7 @@ export declare const saveAs: import("react/jsx-runtime").JSX.Element;
|
|
|
57
57
|
export declare const LoadIcon: import("react/jsx-runtime").JSX.Element;
|
|
58
58
|
export declare const clipboard: import("react/jsx-runtime").JSX.Element;
|
|
59
59
|
export declare const palette: import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export declare const bucketFillIconSvgPaths: readonly ["M5 16l1.465 1.638a2 2 0 1 1 -3.015 .099l1.55 -1.737z", "M13.737 9.737c2.299 -2.3 3.23 -5.095 2.081 -6.245c-1.15 -1.15 -3.945 -.217 -6.244 2.082c-2.3 2.299 -3.231 5.095 -2.082 6.244c1.15 1.15 3.946 .218 6.245 -2.081z", "M7.492 11.818c.362 .362 .768 .676 1.208 .934l6.895 4.047c1.078 .557 2.255 -.075 3.692 -1.512c1.437 -1.437 2.07 -2.614 1.512 -3.692c-.372 -.718 -1.72 -3.017 -4.047 -6.895a6.015 6.015 0 0 0 -.934 -1.208"];
|
|
60
61
|
export declare const bucketFillIcon: import("react/jsx-runtime").JSX.Element;
|
|
61
62
|
export declare const slashIcon: import("react/jsx-runtime").JSX.Element;
|
|
62
63
|
export declare const ExportImageIcon: import("react/jsx-runtime").JSX.Element;
|
|
@@ -196,13 +197,14 @@ export declare const playerPlayIcon: import("react/jsx-runtime").JSX.Element;
|
|
|
196
197
|
export declare const playerStopFilledIcon: import("react/jsx-runtime").JSX.Element;
|
|
197
198
|
export declare const tablerCheckIcon: import("react/jsx-runtime").JSX.Element;
|
|
198
199
|
export declare const alertTriangleIcon: import("react/jsx-runtime").JSX.Element;
|
|
200
|
+
export declare const eyeDropperIconSvgPaths: readonly ["M4 16l11.7 -11.7a1 1 0 0 1 1.4 0l2.6 2.6a1 1 0 0 1 0 1.4l-11.7 11.7h-4v-4z", "M11 7l6 6"];
|
|
199
201
|
export declare const eyeDropperIcon: import("react/jsx-runtime").JSX.Element;
|
|
200
|
-
export declare const extraToolsIcon: import("react/jsx-runtime").JSX.Element;
|
|
201
202
|
export declare const frameToolIcon: import("react/jsx-runtime").JSX.Element;
|
|
202
203
|
export declare const mermaidLogoIcon: import("react/jsx-runtime").JSX.Element;
|
|
203
204
|
export declare const RetryIcon: import("react/jsx-runtime").JSX.Element;
|
|
204
205
|
export declare const stackPushIcon: import("react/jsx-runtime").JSX.Element;
|
|
205
206
|
export declare const ArrowRightIcon: import("react/jsx-runtime").JSX.Element;
|
|
207
|
+
export declare const drawShapeToolIcon: import("react/jsx-runtime").JSX.Element;
|
|
206
208
|
export declare const laserPointerToolIcon: import("react/jsx-runtime").JSX.Element;
|
|
207
209
|
export declare const MagicIcon: import("react/jsx-runtime").JSX.Element;
|
|
208
210
|
export declare const MagicIconThin: import("react/jsx-runtime").JSX.Element;
|
|
@@ -250,6 +252,7 @@ export declare const sidebarRightIcon: import("react/jsx-runtime").JSX.Element;
|
|
|
250
252
|
export declare const messageCircleIcon: import("react/jsx-runtime").JSX.Element;
|
|
251
253
|
export declare const presentationIcon: import("react/jsx-runtime").JSX.Element;
|
|
252
254
|
export declare const emptyIcon: import("react/jsx-runtime").JSX.Element;
|
|
255
|
+
export declare const chevronDownIcon: import("react/jsx-runtime").JSX.Element;
|
|
253
256
|
export declare const chevronRight: import("react/jsx-runtime").JSX.Element;
|
|
254
257
|
export declare const settingsIcon: import("react/jsx-runtime").JSX.Element;
|
|
255
258
|
export {};
|
|
@@ -79,7 +79,7 @@ export declare const Preferences: {
|
|
|
79
79
|
ToggleMidpointSnapping: () => import("react/jsx-runtime").JSX.Element;
|
|
80
80
|
ToggleGridMode: () => import("react/jsx-runtime").JSX.Element;
|
|
81
81
|
ToggleZenMode: () => import("react/jsx-runtime").JSX.Element;
|
|
82
|
-
ToggleViewMode: () => import("react/jsx-runtime").JSX.Element;
|
|
82
|
+
ToggleViewMode: () => import("react/jsx-runtime").JSX.Element | null;
|
|
83
83
|
ToggleElementProperties: () => import("react/jsx-runtime").JSX.Element;
|
|
84
84
|
displayName: string;
|
|
85
85
|
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Positions an element beside a cursor within a container, flipping the
|
|
3
|
+
* element to the other side of the cursor when it would overflow the
|
|
4
|
+
* container, resolved independently on each axis.
|
|
5
|
+
*
|
|
6
|
+
* Takes the cursor in client (viewport) coordinates and returns
|
|
7
|
+
* container-local coordinates.
|
|
8
|
+
*/
|
|
9
|
+
export declare const positionElementBesideCursor: ({ cursor, element, container, gap, }: {
|
|
10
|
+
/** client (viewport) coordinates */
|
|
11
|
+
cursor: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
};
|
|
15
|
+
element: {
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
};
|
|
19
|
+
/** the container's bounding client rect */
|
|
20
|
+
container: Pick<DOMRect, "left" | "top" | "width" | "height">;
|
|
21
|
+
/** distance between the cursor and the positioned element */
|
|
22
|
+
gap: number;
|
|
23
|
+
}) => {
|
|
24
|
+
left: number;
|
|
25
|
+
top: number;
|
|
26
|
+
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
|
|
2
|
+
import type { AppClassProperties, UIAppState } from "../types";
|
|
3
|
+
export declare const canChangeStrokeColor: (appState: UIAppState, targetElements: ExcalidrawElement[]) => boolean;
|
|
4
|
+
export declare const canChangeBackgroundColor: (appState: UIAppState, targetElements: ExcalidrawElement[]) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Single source of truth for "which shape-action controls are relevant right
|
|
7
|
+
* now". Each flag answers whether a given control should be shown, given the
|
|
8
|
+
* active tool and the current selection. All three styles-panel layouts
|
|
9
|
+
* (full / compact / mobile) and the compact popovers consume these flags so
|
|
10
|
+
* that visibility logic lives in one place and layout stays pure.
|
|
11
|
+
*/
|
|
12
|
+
export declare const getShapeActionPredicates: (appState: UIAppState, targetElements: ExcalidrawElement[], elementsMap: NonDeletedElementsMap | NonDeletedSceneElementsMap, app: AppClassProperties) => {
|
|
13
|
+
/** some element(s) selected */
|
|
14
|
+
hasSelection: boolean;
|
|
15
|
+
/** actions on selected elements (delete/duplicate/...) */
|
|
16
|
+
showExtraActions: boolean;
|
|
17
|
+
strokeColor: boolean;
|
|
18
|
+
backgroundColor: boolean;
|
|
19
|
+
fill: boolean;
|
|
20
|
+
strokeWidth: boolean;
|
|
21
|
+
freedrawMode: boolean;
|
|
22
|
+
strokeStyle: boolean;
|
|
23
|
+
sloppiness: boolean;
|
|
24
|
+
roundness: boolean;
|
|
25
|
+
arrowType: boolean;
|
|
26
|
+
arrowheads: boolean;
|
|
27
|
+
text: boolean;
|
|
28
|
+
textAlign: boolean;
|
|
29
|
+
verticalAlign: boolean;
|
|
30
|
+
opacity: boolean;
|
|
31
|
+
layers: boolean;
|
|
32
|
+
align: boolean;
|
|
33
|
+
distribute: boolean;
|
|
34
|
+
link: boolean;
|
|
35
|
+
linkSingleOnly: boolean;
|
|
36
|
+
cropEditor: boolean;
|
|
37
|
+
lineEditor: boolean;
|
|
38
|
+
};
|
|
39
|
+
export type ShapeActionPredicates = ReturnType<typeof getShapeActionPredicates>;
|
|
@@ -73,12 +73,17 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
73
73
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
74
74
|
isBindingEnabled: boolean;
|
|
75
75
|
isMidpointSnappingEnabled: boolean;
|
|
76
|
+
gridModeEnabled: boolean;
|
|
76
77
|
suggestedBinding: {
|
|
77
78
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
78
79
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
79
80
|
} | null;
|
|
81
|
+
hoveredArrowTextAnchor: {
|
|
82
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
83
|
+
anchor: "start" | "end" | "label";
|
|
84
|
+
} | null;
|
|
80
85
|
isRotating: boolean;
|
|
81
|
-
elementsToHighlight: import("@excalidraw/element/types").
|
|
86
|
+
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
82
87
|
collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
|
|
83
88
|
snapLines: readonly import("../snapping").SnapLine[];
|
|
84
89
|
zenModeEnabled: boolean;
|
|
@@ -96,8 +101,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
96
101
|
shouldCacheIgnoreZoom: boolean;
|
|
97
102
|
exportScale: number;
|
|
98
103
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
99
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
100
104
|
gridSize: number;
|
|
105
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
101
106
|
contextMenu: {
|
|
102
107
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
103
108
|
top: number;
|
|
@@ -109,7 +114,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
109
114
|
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
110
115
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
111
116
|
bindingPreference: "enabled" | "disabled";
|
|
112
|
-
editingFrame:
|
|
117
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
113
118
|
preferredSelectionTool: {
|
|
114
119
|
type: "selection" | "lasso";
|
|
115
120
|
initialized: boolean;
|
|
@@ -134,6 +139,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
134
139
|
currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
|
|
135
140
|
currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
|
|
136
141
|
currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
|
|
142
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
137
143
|
cursorButton: "up" | "down";
|
|
138
144
|
scrolledOutside: boolean;
|
|
139
145
|
isResizing: boolean;
|
|
@@ -155,7 +161,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
155
161
|
duration?: number;
|
|
156
162
|
} | null;
|
|
157
163
|
gridStep: number;
|
|
158
|
-
gridModeEnabled: boolean;
|
|
159
164
|
fileHandle: FileSystemFileHandle | null;
|
|
160
165
|
stats: {
|
|
161
166
|
open: boolean;
|
|
@@ -167,11 +172,14 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
167
172
|
y: number;
|
|
168
173
|
} | null;
|
|
169
174
|
objectsSnapModeEnabled: boolean;
|
|
170
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
171
|
-
followedBy: Set<import("../types").SocketId>;
|
|
172
175
|
lockedMultiSelections: {
|
|
173
176
|
[groupId: string]: true;
|
|
174
177
|
};
|
|
178
|
+
colorTopPicks: {
|
|
179
|
+
elementStroke: readonly string[] | null;
|
|
180
|
+
elementBackground: readonly string[] | null;
|
|
181
|
+
bucketFill: readonly string[] | null;
|
|
182
|
+
};
|
|
175
183
|
};
|
|
176
184
|
files: import("../types").BinaryFiles;
|
|
177
185
|
};
|
|
@@ -239,12 +247,17 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
239
247
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
240
248
|
isBindingEnabled: boolean;
|
|
241
249
|
isMidpointSnappingEnabled: boolean;
|
|
250
|
+
gridModeEnabled: boolean;
|
|
242
251
|
suggestedBinding: {
|
|
243
252
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
244
253
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
245
254
|
} | null;
|
|
255
|
+
hoveredArrowTextAnchor: {
|
|
256
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
257
|
+
anchor: "start" | "end" | "label";
|
|
258
|
+
} | null;
|
|
246
259
|
isRotating: boolean;
|
|
247
|
-
elementsToHighlight: import("@excalidraw/element/types").
|
|
260
|
+
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
248
261
|
collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
|
|
249
262
|
snapLines: readonly import("../snapping").SnapLine[];
|
|
250
263
|
zenModeEnabled: boolean;
|
|
@@ -262,8 +275,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
262
275
|
shouldCacheIgnoreZoom: boolean;
|
|
263
276
|
exportScale: number;
|
|
264
277
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
265
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
266
278
|
gridSize: number;
|
|
279
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
267
280
|
contextMenu: {
|
|
268
281
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
269
282
|
top: number;
|
|
@@ -275,7 +288,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
275
288
|
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
276
289
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
277
290
|
bindingPreference: "enabled" | "disabled";
|
|
278
|
-
editingFrame:
|
|
291
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
279
292
|
preferredSelectionTool: {
|
|
280
293
|
type: "selection" | "lasso";
|
|
281
294
|
initialized: boolean;
|
|
@@ -300,6 +313,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
300
313
|
currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
|
|
301
314
|
currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
|
|
302
315
|
currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
|
|
316
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
303
317
|
cursorButton: "up" | "down";
|
|
304
318
|
scrolledOutside: boolean;
|
|
305
319
|
isResizing: boolean;
|
|
@@ -321,7 +335,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
321
335
|
duration?: number;
|
|
322
336
|
} | null;
|
|
323
337
|
gridStep: number;
|
|
324
|
-
gridModeEnabled: boolean;
|
|
325
338
|
fileHandle: FileSystemFileHandle | null;
|
|
326
339
|
stats: {
|
|
327
340
|
open: boolean;
|
|
@@ -333,11 +346,14 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
333
346
|
y: number;
|
|
334
347
|
} | null;
|
|
335
348
|
objectsSnapModeEnabled: boolean;
|
|
336
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
337
|
-
followedBy: Set<import("../types").SocketId>;
|
|
338
349
|
lockedMultiSelections: {
|
|
339
350
|
[groupId: string]: true;
|
|
340
351
|
};
|
|
352
|
+
colorTopPicks: {
|
|
353
|
+
elementStroke: readonly string[] | null;
|
|
354
|
+
elementBackground: readonly string[] | null;
|
|
355
|
+
bucketFill: readonly string[] | null;
|
|
356
|
+
};
|
|
341
357
|
};
|
|
342
358
|
files: import("../types").BinaryFiles;
|
|
343
359
|
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
1
|
+
import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
2
2
|
import type { ExportType } from "../scene/types";
|
|
3
3
|
import type { AppState, BinaryFiles } from "../types";
|
|
4
4
|
export { loadFromBlob } from "./blob";
|
|
@@ -6,8 +6,8 @@ export { loadFromJSON, saveAsJSON } from "./json";
|
|
|
6
6
|
export type ExportedElements = readonly NonDeletedExcalidrawElement[] & {
|
|
7
7
|
_brand: "exportedElements";
|
|
8
8
|
};
|
|
9
|
-
export declare const prepareElementsForExport: (
|
|
10
|
-
exportingFrame: ExcalidrawFrameLikeElement | null;
|
|
9
|
+
export declare const prepareElementsForExport: (allElements: readonly ExcalidrawElement[], { selectedElementIds }: Pick<AppState, "selectedElementIds">, exportSelectionOnly: boolean) => {
|
|
10
|
+
exportingFrame: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
11
11
|
exportedElements: ExportedElements;
|
|
12
12
|
};
|
|
13
13
|
export declare const exportCanvas: (type: Omit<ExportType, "backend">, elements: ExportedElements, appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, name, fileHandle, exportingFrame, }: {
|
|
@@ -17,5 +17,5 @@ export declare const exportCanvas: (type: Omit<ExportType, "backend">, elements:
|
|
|
17
17
|
/** filename, if applicable */
|
|
18
18
|
name?: string;
|
|
19
19
|
fileHandle?: FileSystemFileHandle | null;
|
|
20
|
-
exportingFrame: ExcalidrawFrameLikeElement | null;
|
|
20
|
+
exportingFrame: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
21
21
|
}) => Promise<FileSystemFileHandle | null | undefined>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { ExcalidrawElement
|
|
1
|
+
import type { ExcalidrawElement } from "@excalidraw/element/types";
|
|
2
2
|
import type { MaybePromise } from "@excalidraw/common/utility-types";
|
|
3
3
|
import type { AppState, BinaryFiles, LibraryItems } from "../types";
|
|
4
4
|
import type { ImportedDataState, ImportedLibraryData } from "./types";
|
|
5
5
|
export type JSONExportData = {
|
|
6
|
-
elements: readonly
|
|
6
|
+
elements: readonly ExcalidrawElement[];
|
|
7
7
|
appState: AppState;
|
|
8
8
|
files: BinaryFiles;
|
|
9
9
|
};
|
|
@@ -52,7 +52,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
52
52
|
selectedElementIds: Readonly<{
|
|
53
53
|
[id: string]: true;
|
|
54
54
|
}>;
|
|
55
|
-
frameToHighlight: NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
55
|
+
frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
56
56
|
activeTool: {
|
|
57
57
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
58
58
|
locked: boolean;
|
|
@@ -67,16 +67,21 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
67
67
|
[groupId: string]: boolean;
|
|
68
68
|
};
|
|
69
69
|
selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
|
|
70
|
-
multiElement: NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
71
|
-
newElement: NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
70
|
+
multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
|
|
71
|
+
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
72
72
|
isBindingEnabled: boolean;
|
|
73
73
|
isMidpointSnappingEnabled: boolean;
|
|
74
|
+
gridModeEnabled: boolean;
|
|
74
75
|
suggestedBinding: {
|
|
75
|
-
element: NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
76
|
+
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
76
77
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
77
78
|
} | null;
|
|
79
|
+
hoveredArrowTextAnchor: {
|
|
80
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
81
|
+
anchor: "start" | "end" | "label";
|
|
82
|
+
} | null;
|
|
78
83
|
isRotating: boolean;
|
|
79
|
-
elementsToHighlight:
|
|
84
|
+
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
80
85
|
collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
|
|
81
86
|
snapLines: readonly import("../snapping").SnapLine[];
|
|
82
87
|
zenModeEnabled: boolean;
|
|
@@ -94,8 +99,8 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
94
99
|
shouldCacheIgnoreZoom: boolean;
|
|
95
100
|
exportScale: number;
|
|
96
101
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
97
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
98
102
|
gridSize: number;
|
|
103
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
99
104
|
contextMenu: {
|
|
100
105
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
101
106
|
top: number;
|
|
@@ -107,7 +112,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
107
112
|
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
108
113
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
109
114
|
bindingPreference: "enabled" | "disabled";
|
|
110
|
-
editingFrame:
|
|
115
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
111
116
|
preferredSelectionTool: {
|
|
112
117
|
type: "selection" | "lasso";
|
|
113
118
|
initialized: boolean;
|
|
@@ -132,6 +137,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
132
137
|
currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
|
|
133
138
|
currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
|
|
134
139
|
currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
|
|
140
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
135
141
|
cursorButton: "up" | "down";
|
|
136
142
|
scrolledOutside: boolean;
|
|
137
143
|
isResizing: boolean;
|
|
@@ -153,7 +159,6 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
153
159
|
duration?: number;
|
|
154
160
|
} | null;
|
|
155
161
|
gridStep: number;
|
|
156
|
-
gridModeEnabled: boolean;
|
|
157
162
|
fileHandle: FileSystemFileHandle | null;
|
|
158
163
|
stats: {
|
|
159
164
|
open: boolean;
|
|
@@ -165,11 +170,14 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
165
170
|
y: number;
|
|
166
171
|
} | null;
|
|
167
172
|
objectsSnapModeEnabled: boolean;
|
|
168
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
169
|
-
followedBy: Set<import("../types").SocketId>;
|
|
170
173
|
lockedMultiSelections: {
|
|
171
174
|
[groupId: string]: true;
|
|
172
175
|
};
|
|
176
|
+
colorTopPicks: {
|
|
177
|
+
elementStroke: readonly string[] | null;
|
|
178
|
+
elementBackground: readonly string[] | null;
|
|
179
|
+
bucketFill: readonly string[] | null;
|
|
180
|
+
};
|
|
173
181
|
};
|
|
174
182
|
files: BinaryFiles;
|
|
175
183
|
}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GlobalPoint } from "@excalidraw/math";
|
|
2
|
+
import type App from "./components/App";
|
|
3
|
+
import type { Trail } from "./animatedTrail";
|
|
4
|
+
export declare class DrawShapeTrail implements Trail {
|
|
5
|
+
private app;
|
|
6
|
+
private trail;
|
|
7
|
+
constructor(app: App);
|
|
8
|
+
private getTrailOptions;
|
|
9
|
+
startPath(x: number, y: number): void;
|
|
10
|
+
addPointToPath(x: number, y: number): void;
|
|
11
|
+
endPath(): void;
|
|
12
|
+
clearTrails(): void;
|
|
13
|
+
getCurrentPoints(): GlobalPoint[];
|
|
14
|
+
start(container: SVGSVGElement): void;
|
|
15
|
+
stop(): void;
|
|
16
|
+
}
|