@excalidraw/math 0.18.0-a9ca16e → 0.18.0-ab0255f
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 +297 -99
- package/dist/dev/index.js.map +4 -4
- package/dist/prod/index.js +1 -1
- package/dist/types/common/src/colors.d.ts +17 -1
- package/dist/types/common/src/constants.d.ts +12 -7
- 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 +6 -4
- 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 +22 -7
- 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 +5 -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 +4 -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 +9 -8
- 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 +17 -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 +6 -6
- package/dist/types/element/src/shape.d.ts +13 -1
- package/dist/types/element/src/textElement.d.ts +12 -9
- package/dist/types/element/src/transform.d.ts +2 -2
- package/dist/types/element/src/typeChecks.d.ts +26 -25
- package/dist/types/element/src/types.d.ts +8 -1
- package/dist/types/element/src/utils.d.ts +1 -1
- package/dist/types/element/src/zindex.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +30 -12
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +20 -8
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +132 -926
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +20 -8
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +10 -4
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +32 -13
- package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionDeselect.d.ts} +24 -33
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +10 -4
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +21 -9
- package/dist/types/excalidraw/actions/actionExport.d.ts +22 -10
- package/dist/types/excalidraw/actions/actionFrame.d.ts +42 -196
- package/dist/types/excalidraw/actions/actionGroup.d.ts +35 -23
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +14 -6
- package/dist/types/excalidraw/actions/actionLink.d.ts +11 -5
- package/dist/types/excalidraw/actions/actionMenu.d.ts +10 -4
- package/dist/types/excalidraw/actions/actionProperties.d.ts +50 -26
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +15 -9
- package/dist/types/excalidraw/actions/actionStyles.d.ts +10 -4
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +11 -5
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +14 -9
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +11 -5
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +11 -5
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +14 -9
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +11 -5
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +12 -6
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +11 -5
- package/dist/types/excalidraw/actions/index.d.ts +2 -2
- package/dist/types/excalidraw/actions/manager.d.ts +1 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +8 -4
- package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
- package/dist/types/excalidraw/appState.d.ts +7 -5
- package/dist/types/excalidraw/components/Actions.d.ts +17 -12
- package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/App.arrowText.d.ts +72 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +34 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +31 -0
- package/dist/types/excalidraw/components/App.d.ts +355 -65
- 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 +5 -3
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +1 -0
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +6 -1
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
- package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
- package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
- package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
- package/dist/types/excalidraw/components/{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 +4 -2
- package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
- package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
- package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
- package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
- package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
- package/dist/types/excalidraw/components/Popover.d.ts +1 -3
- package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
- package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
- package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
- package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
- package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
- package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
- package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
- package/dist/types/excalidraw/components/Tools.d.ts +146 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -1
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
- package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
- package/dist/types/excalidraw/components/icons.d.ts +3 -1
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +8 -4
- package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
- package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
- package/dist/types/excalidraw/data/blob.d.ts +24 -12
- package/dist/types/excalidraw/data/index.d.ts +4 -4
- package/dist/types/excalidraw/data/json.d.ts +18 -12
- package/dist/types/excalidraw/data/library.d.ts +1 -1
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- package/dist/types/excalidraw/eraser/index.d.ts +2 -3
- package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
- package/dist/types/excalidraw/lasso/index.d.ts +2 -3
- package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -3
- package/dist/types/excalidraw/scene/Renderer.d.ts +426 -19
- package/dist/types/excalidraw/scene/export.d.ts +3 -3
- package/dist/types/excalidraw/scene/index.d.ts +2 -2
- package/dist/types/excalidraw/scene/types.d.ts +4 -3
- package/dist/types/excalidraw/snapping.d.ts +7 -7
- package/dist/types/excalidraw/types.d.ts +368 -19
- package/dist/types/excalidraw/viewport.d.ts +272 -0
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -3
- package/dist/types/fractional-indexing/src/index.d.ts +29 -0
- package/dist/types/laser-pointer/src/index.d.ts +2 -0
- package/dist/types/laser-pointer/src/math.d.ts +16 -0
- package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
- package/dist/types/laser-pointer/src/state.d.ts +36 -0
- package/dist/types/math/src/constants.d.ts +0 -1
- package/dist/types/math/src/curve.d.ts +4 -1
- package/dist/types/math/src/index.d.ts +1 -0
- package/dist/types/math/src/pca.d.ts +79 -0
- package/dist/types/math/src/point.d.ts +1 -0
- package/dist/types/math/src/polygon.d.ts +25 -1
- package/dist/types/utils/src/export.d.ts +3 -3
- package/dist/types/utils/src/index.d.ts +1 -2
- package/package.json +2 -2
- package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
- 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 -263
- package/dist/types/excalidraw/cursor.d.ts +0 -5
- package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
- package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
- package/dist/types/utils/src/bbox.d.ts +0 -9
- package/dist/types/utils/src/withinBounds.d.ts +0 -19
|
@@ -9,13 +9,13 @@ interface UseTTDChatStorageReturn {
|
|
|
9
9
|
restoreChat: (chat: SavedChat) => SavedChat;
|
|
10
10
|
createNewChatId: () => Promise<string>;
|
|
11
11
|
}
|
|
12
|
-
export declare const savedChatsAtom: import("jotai
|
|
12
|
+
export declare const savedChatsAtom: import("jotai").PrimitiveAtom<SavedChats> & {
|
|
13
13
|
init: SavedChats;
|
|
14
14
|
};
|
|
15
|
-
export declare const isLoadingChatsAtom: import("jotai
|
|
15
|
+
export declare const isLoadingChatsAtom: import("jotai").PrimitiveAtom<boolean> & {
|
|
16
16
|
init: boolean;
|
|
17
17
|
};
|
|
18
|
-
export declare const chatsLoadedAtom: import("jotai
|
|
18
|
+
export declare const chatsLoadedAtom: import("jotai").PrimitiveAtom<boolean> & {
|
|
19
19
|
init: boolean;
|
|
20
20
|
};
|
|
21
21
|
export declare const useTTDChatStorage: ({ persistenceAdapter, }: UseTTDChatStorageProps) => UseTTDChatStorageReturn;
|
|
@@ -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;
|
|
@@ -11,13 +11,15 @@ type InteractiveCanvasProps = {
|
|
|
11
11
|
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
12
12
|
selectedElements: readonly NonDeletedExcalidrawElement[];
|
|
13
13
|
allElementsMap: NonDeletedSceneElementsMap;
|
|
14
|
-
|
|
14
|
+
canvasNonce: string;
|
|
15
15
|
selectionNonce: number | undefined;
|
|
16
16
|
scale: number;
|
|
17
17
|
appState: InteractiveCanvasAppState;
|
|
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>;
|
|
@@ -4,6 +4,7 @@ import type { AppState } from "../../types";
|
|
|
4
4
|
import type { RoughCanvas } from "roughjs/bin/canvas";
|
|
5
5
|
interface NewElementCanvasProps {
|
|
6
6
|
appState: AppState;
|
|
7
|
+
newElement: NonNullable<AppState["newElement"]>;
|
|
7
8
|
elementsMap: RenderableElementsMap;
|
|
8
9
|
allElementsMap: NonDeletedSceneElementsMap;
|
|
9
10
|
scale: number;
|
|
@@ -9,7 +9,7 @@ type StaticCanvasProps = {
|
|
|
9
9
|
elementsMap: RenderableElementsMap;
|
|
10
10
|
allElementsMap: NonDeletedSceneElementsMap;
|
|
11
11
|
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
12
|
-
|
|
12
|
+
canvasNonce: string;
|
|
13
13
|
selectionNonce: number | undefined;
|
|
14
14
|
scale: number;
|
|
15
15
|
appState: StaticCanvasAppState;
|
|
@@ -9,9 +9,10 @@ type Props<T> = {
|
|
|
9
9
|
onChange: (value: T) => void;
|
|
10
10
|
children: React.ReactNode;
|
|
11
11
|
name: string;
|
|
12
|
+
icon?: React.ReactNode;
|
|
12
13
|
};
|
|
13
14
|
declare const DropdownMenuItemContentRadio: {
|
|
14
|
-
<T>({ value, shortcut, onChange, choices, children, name, }: Props<T>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
<T>({ value, shortcut, onChange, choices, children, name, icon, }: Props<T>): import("react/jsx-runtime").JSX.Element;
|
|
15
16
|
displayName: string;
|
|
16
17
|
};
|
|
17
18
|
export default DropdownMenuItemContentRadio;
|
|
@@ -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;
|
|
@@ -114,6 +114,8 @@ export declare const StrokeStyleDottedIcon: import("react/jsx-runtime").JSX.Elem
|
|
|
114
114
|
export declare const SloppinessArchitectIcon: import("react/jsx-runtime").JSX.Element;
|
|
115
115
|
export declare const SloppinessArtistIcon: import("react/jsx-runtime").JSX.Element;
|
|
116
116
|
export declare const SloppinessCartoonistIcon: import("react/jsx-runtime").JSX.Element;
|
|
117
|
+
export declare const strokeVariabilityConstantIcon: import("react/jsx-runtime").JSX.Element;
|
|
118
|
+
export declare const strokeVariabilityVariableIcon: import("react/jsx-runtime").JSX.Element;
|
|
117
119
|
export declare const EdgeSharpIcon: import("react/jsx-runtime").JSX.Element;
|
|
118
120
|
export declare const EdgeRoundIcon: import("react/jsx-runtime").JSX.Element;
|
|
119
121
|
export declare const ArrowheadNoneIcon: React.MemoExoticComponent<({ flip }: {
|
|
@@ -195,12 +197,12 @@ export declare const playerStopFilledIcon: import("react/jsx-runtime").JSX.Eleme
|
|
|
195
197
|
export declare const tablerCheckIcon: import("react/jsx-runtime").JSX.Element;
|
|
196
198
|
export declare const alertTriangleIcon: import("react/jsx-runtime").JSX.Element;
|
|
197
199
|
export declare const eyeDropperIcon: import("react/jsx-runtime").JSX.Element;
|
|
198
|
-
export declare const extraToolsIcon: import("react/jsx-runtime").JSX.Element;
|
|
199
200
|
export declare const frameToolIcon: import("react/jsx-runtime").JSX.Element;
|
|
200
201
|
export declare const mermaidLogoIcon: import("react/jsx-runtime").JSX.Element;
|
|
201
202
|
export declare const RetryIcon: import("react/jsx-runtime").JSX.Element;
|
|
202
203
|
export declare const stackPushIcon: import("react/jsx-runtime").JSX.Element;
|
|
203
204
|
export declare const ArrowRightIcon: import("react/jsx-runtime").JSX.Element;
|
|
205
|
+
export declare const drawShapeToolIcon: import("react/jsx-runtime").JSX.Element;
|
|
204
206
|
export declare const laserPointerToolIcon: import("react/jsx-runtime").JSX.Element;
|
|
205
207
|
export declare const MagicIcon: import("react/jsx-runtime").JSX.Element;
|
|
206
208
|
export declare const MagicIconThin: import("react/jsx-runtime").JSX.Element;
|
|
@@ -35,11 +35,14 @@ export declare const ClearCanvas: {
|
|
|
35
35
|
export declare const ToggleTheme: {
|
|
36
36
|
(props: {
|
|
37
37
|
allowSystemTheme: true;
|
|
38
|
+
/**
|
|
39
|
+
* Controls the theme of this UI component only.
|
|
40
|
+
* You should subscribe to `props.onThemeChange` and control the theme
|
|
41
|
+
* upstream.
|
|
42
|
+
*/
|
|
38
43
|
theme: Theme | "system";
|
|
39
|
-
onSelect: (theme: Theme | "system") => void;
|
|
40
44
|
} | {
|
|
41
|
-
allowSystemTheme
|
|
42
|
-
onSelect?: (theme: Theme) => void;
|
|
45
|
+
allowSystemTheme: false;
|
|
43
46
|
}): import("react/jsx-runtime").JSX.Element | null;
|
|
44
47
|
displayName: string;
|
|
45
48
|
};
|
|
@@ -70,12 +73,13 @@ export declare const Preferences: {
|
|
|
70
73
|
additionalItems?: React.ReactNode;
|
|
71
74
|
}): import("react/jsx-runtime").JSX.Element;
|
|
72
75
|
ToggleToolLock: () => import("react/jsx-runtime").JSX.Element;
|
|
76
|
+
BoxSelectionMode: () => import("react/jsx-runtime").JSX.Element;
|
|
73
77
|
ToggleSnapMode: () => import("react/jsx-runtime").JSX.Element;
|
|
74
78
|
ToggleArrowBinding: () => import("react/jsx-runtime").JSX.Element;
|
|
75
79
|
ToggleMidpointSnapping: () => import("react/jsx-runtime").JSX.Element;
|
|
76
80
|
ToggleGridMode: () => import("react/jsx-runtime").JSX.Element;
|
|
77
81
|
ToggleZenMode: () => import("react/jsx-runtime").JSX.Element;
|
|
78
|
-
ToggleViewMode: () => import("react/jsx-runtime").JSX.Element;
|
|
82
|
+
ToggleViewMode: () => import("react/jsx-runtime").JSX.Element | null;
|
|
79
83
|
ToggleElementProperties: () => import("react/jsx-runtime").JSX.Element;
|
|
80
84
|
displayName: string;
|
|
81
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;
|
|
@@ -107,9 +112,9 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
107
112
|
isLoading: boolean;
|
|
108
113
|
errorMessage: React.ReactNode;
|
|
109
114
|
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
115
|
+
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
110
116
|
bindingPreference: "enabled" | "disabled";
|
|
111
|
-
|
|
112
|
-
editingFrame: string | null;
|
|
117
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
113
118
|
preferredSelectionTool: {
|
|
114
119
|
type: "selection" | "lasso";
|
|
115
120
|
initialized: boolean;
|
|
@@ -122,9 +127,10 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
122
127
|
currentItemStrokeColor: string;
|
|
123
128
|
currentItemBackgroundColor: string;
|
|
124
129
|
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
125
|
-
|
|
130
|
+
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
126
131
|
currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
|
|
127
132
|
currentItemRoughness: number;
|
|
133
|
+
currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
|
|
128
134
|
currentItemOpacity: number;
|
|
129
135
|
currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
|
|
130
136
|
currentItemFontSize: number;
|
|
@@ -133,6 +139,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
133
139
|
currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
|
|
134
140
|
currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
|
|
135
141
|
currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
|
|
142
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
136
143
|
cursorButton: "up" | "down";
|
|
137
144
|
scrolledOutside: boolean;
|
|
138
145
|
isResizing: boolean;
|
|
@@ -154,7 +161,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
154
161
|
duration?: number;
|
|
155
162
|
} | null;
|
|
156
163
|
gridStep: number;
|
|
157
|
-
gridModeEnabled: boolean;
|
|
158
164
|
fileHandle: FileSystemFileHandle | null;
|
|
159
165
|
stats: {
|
|
160
166
|
open: boolean;
|
|
@@ -238,12 +244,17 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
238
244
|
newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
|
|
239
245
|
isBindingEnabled: boolean;
|
|
240
246
|
isMidpointSnappingEnabled: boolean;
|
|
247
|
+
gridModeEnabled: boolean;
|
|
241
248
|
suggestedBinding: {
|
|
242
249
|
element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
|
|
243
250
|
midPoint?: import("@excalidraw/math").GlobalPoint;
|
|
244
251
|
} | null;
|
|
252
|
+
hoveredArrowTextAnchor: {
|
|
253
|
+
elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
|
|
254
|
+
anchor: "start" | "end" | "label";
|
|
255
|
+
} | null;
|
|
245
256
|
isRotating: boolean;
|
|
246
|
-
elementsToHighlight: import("@excalidraw/element/types").
|
|
257
|
+
elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
|
|
247
258
|
collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
|
|
248
259
|
snapLines: readonly import("../snapping").SnapLine[];
|
|
249
260
|
zenModeEnabled: boolean;
|
|
@@ -261,8 +272,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
261
272
|
shouldCacheIgnoreZoom: boolean;
|
|
262
273
|
exportScale: number;
|
|
263
274
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
264
|
-
bindMode: import("@excalidraw/element/types").BindMode;
|
|
265
275
|
gridSize: number;
|
|
276
|
+
bindMode: import("@excalidraw/element/types").BindMode;
|
|
266
277
|
contextMenu: {
|
|
267
278
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
268
279
|
top: number;
|
|
@@ -272,9 +283,9 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
272
283
|
isLoading: boolean;
|
|
273
284
|
errorMessage: React.ReactNode;
|
|
274
285
|
resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
|
|
286
|
+
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
275
287
|
bindingPreference: "enabled" | "disabled";
|
|
276
|
-
|
|
277
|
-
editingFrame: string | null;
|
|
288
|
+
editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
278
289
|
preferredSelectionTool: {
|
|
279
290
|
type: "selection" | "lasso";
|
|
280
291
|
initialized: boolean;
|
|
@@ -287,9 +298,10 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
287
298
|
currentItemStrokeColor: string;
|
|
288
299
|
currentItemBackgroundColor: string;
|
|
289
300
|
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
290
|
-
|
|
301
|
+
currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
|
|
291
302
|
currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
|
|
292
303
|
currentItemRoughness: number;
|
|
304
|
+
currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
|
|
293
305
|
currentItemOpacity: number;
|
|
294
306
|
currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
|
|
295
307
|
currentItemFontSize: number;
|
|
@@ -298,6 +310,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
298
310
|
currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
|
|
299
311
|
currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
|
|
300
312
|
currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
|
|
313
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
301
314
|
cursorButton: "up" | "down";
|
|
302
315
|
scrolledOutside: boolean;
|
|
303
316
|
isResizing: boolean;
|
|
@@ -319,7 +332,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
319
332
|
duration?: number;
|
|
320
333
|
} | null;
|
|
321
334
|
gridStep: number;
|
|
322
|
-
gridModeEnabled: boolean;
|
|
323
335
|
fileHandle: FileSystemFileHandle | null;
|
|
324
336
|
stats: {
|
|
325
337
|
open: boolean;
|
|
@@ -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>;
|