@dwelle/excalidraw 0.4.0-9db4535 → 0.4.0-9fa56da
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/CHANGELOG.md +255 -1
- package/README.md +4 -0
- package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js → vendor-d415b28e9024dee4bb1b.js} +2 -2
- package/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.js → vendor-a14cd58fa2db417e42b2.js} +6 -6
- package/dist/excalidraw.development.js +2123 -1783
- package/dist/excalidraw.production.min.js +1 -1
- package/package.json +7 -2
- package/types/actions/actionAddToLibrary.d.ts +84 -43
- package/types/actions/actionAlign.d.ts +33 -28
- package/types/actions/actionBoundText.d.ts +60 -32
- package/types/actions/actionCanvas.d.ts +436 -164
- package/types/actions/actionClipboard.d.ts +140 -74
- package/types/actions/actionDeleteSelected.d.ts +80 -42
- package/types/actions/actionDistribute.d.ts +11 -12
- package/types/actions/actionDuplicateSelection.d.ts +2 -3
- package/types/actions/actionElementLock.d.ts +58 -30
- package/types/actions/actionExport.d.ts +303 -177
- package/types/actions/actionFinalize.d.ts +56 -32
- package/types/actions/actionFlip.d.ts +8 -9
- package/types/actions/actionFrame.d.ts +423 -0
- package/types/actions/actionGroup.d.ts +250 -13
- package/types/actions/actionLinearEditor.d.ts +30 -17
- package/types/actions/actionMenu.d.ts +87 -47
- package/types/actions/actionNavigate.d.ts +1 -1
- package/types/actions/actionProperties.d.ts +370 -187
- package/types/actions/actionSelectAll.d.ts +123 -4
- package/types/actions/actionStyles.d.ts +32 -19
- package/types/actions/actionToggleGridMode.d.ts +30 -17
- package/types/actions/actionToggleObjectsSnapMode.d.ts +137 -0
- package/types/actions/actionToggleStats.d.ts +30 -17
- package/types/actions/actionToggleViewMode.d.ts +30 -17
- package/types/actions/actionToggleZenMode.d.ts +30 -17
- package/types/actions/actionZindex.d.ts +12 -12
- package/types/actions/index.d.ts +1 -0
- package/types/actions/shortcuts.d.ts +1 -1
- package/types/actions/types.d.ts +4 -3
- package/types/appState.d.ts +10 -15
- package/types/clients.d.ts +1 -5
- package/types/clipboard.d.ts +1 -0
- package/types/colors.d.ts +9 -9
- package/types/components/Actions.d.ts +4 -5
- package/types/components/App.d.ts +61 -28
- package/types/components/Avatar.d.ts +0 -1
- package/types/components/Button.d.ts +0 -1
- package/types/components/Card.d.ts +0 -1
- package/types/components/ColorPicker/ColorInput.d.ts +3 -1
- package/types/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
- package/types/components/DefaultSidebar.d.ts +0 -1
- package/types/components/Dialog.d.ts +2 -1
- package/types/components/ExcalidrawLogo.d.ts +15 -0
- package/types/components/EyeDropper.d.ts +18 -8
- package/types/components/FilledButton.d.ts +2 -1
- package/types/components/HintViewer.d.ts +3 -4
- package/types/components/JSONExportDialog.d.ts +1 -1
- package/types/components/LaserTool/LaserPathManager.d.ts +28 -0
- package/types/components/LaserTool/LaserPointerButton.d.ts +10 -0
- package/types/components/LaserTool/LaserTool.d.ts +7 -0
- package/types/components/LayerUI.d.ts +6 -2
- package/types/components/LibraryMenuHeaderContent.d.ts +0 -1
- package/types/components/LibraryUnit.d.ts +0 -1
- package/types/components/LoadingMessage.d.ts +0 -1
- package/types/components/MobileMenu.d.ts +4 -3
- package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
- package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
- package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
- package/types/components/Section.d.ts +1 -1
- package/types/components/Sidebar/Sidebar.d.ts +1 -1
- package/types/components/Sidebar/SidebarTab.d.ts +0 -1
- package/types/components/Sidebar/SidebarTabTrigger.d.ts +0 -1
- package/types/components/Sidebar/SidebarTabTriggers.d.ts +0 -1
- package/types/components/Sidebar/SidebarTabs.d.ts +0 -1
- package/types/components/Stack.d.ts +2 -2
- package/types/components/ToolButton.d.ts +2 -1
- package/types/components/Trans.d.ts +2 -1
- package/types/components/canvases/InteractiveCanvas.d.ts +27 -0
- package/types/components/canvases/StaticCanvas.d.ts +18 -0
- package/types/components/canvases/index.d.ts +3 -0
- package/types/components/dropdownMenu/DropdownMenu.d.ts +9 -5
- package/types/components/dropdownMenu/DropdownMenuItem.d.ts +2 -1
- package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -1
- package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +2 -1
- package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -2
- package/types/components/dropdownMenu/common.d.ts +1 -1
- package/types/components/icons.d.ts +6 -0
- package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -1
- package/types/components/main-menu/MainMenu.d.ts +9 -5
- package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -1
- package/types/components/welcome-screen/WelcomeScreen.d.ts +0 -1
- package/types/constants.d.ts +35 -3
- package/types/context/tunnels.d.ts +1 -0
- package/types/data/transform.d.ts +71 -0
- package/types/data/url.d.ts +7 -0
- package/types/element/Hyperlink.d.ts +40 -23
- package/types/element/binding.d.ts +2 -1
- package/types/element/bounds.d.ts +30 -6
- package/types/element/collision.d.ts +7 -7
- package/types/element/dragElements.d.ts +12 -2
- package/types/element/embeddable.d.ts +153 -0
- package/types/element/index.d.ts +3 -2
- package/types/element/linearElementEditor.d.ts +33 -20
- package/types/element/newElement.d.ts +15 -6
- package/types/element/resizeElements.d.ts +2 -2
- package/types/element/sizeHelpers.d.ts +8 -1
- package/types/element/textElement.d.ts +5 -7
- package/types/element/textWysiwyg.d.ts +1 -1
- package/types/element/transformHandles.d.ts +10 -3
- package/types/element/typeChecks.d.ts +3 -1
- package/types/element/types.d.ts +19 -3
- package/types/frame.d.ts +40 -0
- package/types/groups.d.ts +15 -11
- package/types/history.d.ts +3 -3
- package/types/hooks/useOutsideClick.d.ts +0 -1
- package/types/hooks/useScrollPosition.d.ts +0 -1
- package/types/hooks/useStable.d.ts +1 -0
- package/types/i18n.d.ts +5 -2
- package/types/keys.d.ts +4 -0
- package/types/math.d.ts +3 -0
- package/types/packages/excalidraw/example/initialData.d.ts +182 -64
- package/types/packages/excalidraw/index.d.ts +3 -1
- package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
- package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
- package/types/packages/utils.d.ts +4 -1
- package/types/renderer/renderElement.d.ts +11 -22
- package/types/renderer/renderScene.d.ts +19 -27
- package/types/renderer/renderSnaps.d.ts +2 -0
- package/types/renderer/roundRect.d.ts +1 -1
- package/types/scene/Renderer.d.ts +25 -0
- package/types/scene/Scene.d.ts +23 -1
- package/types/scene/Shape.d.ts +12 -0
- package/types/scene/ShapeCache.d.ts +20 -0
- package/types/scene/export.d.ts +35 -9
- package/types/scene/scroll.d.ts +1 -1
- package/types/scene/scrollbars.d.ts +2 -6
- package/types/scene/selection.d.ts +26 -5
- package/types/scene/types.d.ts +66 -31
- package/types/snapping.d.ts +108 -0
- package/types/types.d.ts +130 -25
- package/types/utility-types.d.ts +3 -1
- package/types/utils.d.ts +60 -23
- package/types/zindex.d.ts +4 -4
- /package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
- /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
- /package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.d.ts → vendor-a14cd58fa2db417e42b2.d.ts} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { RoughCanvas } from "roughjs/bin/canvas";
|
|
3
|
+
import type { StaticCanvasAppState } from "../../types";
|
|
4
|
+
import type { StaticCanvasRenderConfig } from "../../scene/types";
|
|
5
|
+
import type { NonDeletedExcalidrawElement } from "../../element/types";
|
|
6
|
+
type StaticCanvasProps = {
|
|
7
|
+
canvas: HTMLCanvasElement;
|
|
8
|
+
rc: RoughCanvas;
|
|
9
|
+
elements: readonly NonDeletedExcalidrawElement[];
|
|
10
|
+
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
11
|
+
versionNonce: number | undefined;
|
|
12
|
+
selectionNonce: number | undefined;
|
|
13
|
+
scale: number;
|
|
14
|
+
appState: StaticCanvasAppState;
|
|
15
|
+
renderConfig: StaticCanvasRenderConfig;
|
|
16
|
+
};
|
|
17
|
+
declare const _default: React.MemoExoticComponent<(props: StaticCanvasProps) => JSX.Element>;
|
|
18
|
+
export default _default;
|
|
@@ -6,11 +6,12 @@ declare const DropdownMenu: {
|
|
|
6
6
|
open: boolean;
|
|
7
7
|
}): JSX.Element;
|
|
8
8
|
Trigger: {
|
|
9
|
-
({ className, children, onToggle, }: {
|
|
9
|
+
({ className, children, onToggle, title, ...rest }: {
|
|
10
10
|
className?: string | undefined;
|
|
11
11
|
children: React.ReactNode;
|
|
12
12
|
onToggle: () => void;
|
|
13
|
-
|
|
13
|
+
title?: string | undefined;
|
|
14
|
+
} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
|
|
14
15
|
displayName: string;
|
|
15
16
|
};
|
|
16
17
|
Content: {
|
|
@@ -24,29 +25,32 @@ declare const DropdownMenu: {
|
|
|
24
25
|
displayName: string;
|
|
25
26
|
};
|
|
26
27
|
Item: {
|
|
27
|
-
({ icon, onSelect, children, shortcut, className, ...rest }: {
|
|
28
|
+
({ icon, onSelect, children, shortcut, className, selected, ...rest }: {
|
|
28
29
|
icon?: JSX.Element | undefined;
|
|
29
30
|
onSelect: (event: Event) => void;
|
|
30
31
|
children: React.ReactNode;
|
|
31
32
|
shortcut?: string | undefined;
|
|
33
|
+
selected?: boolean | undefined;
|
|
32
34
|
className?: string | undefined;
|
|
33
35
|
} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
|
|
34
36
|
displayName: string;
|
|
35
37
|
};
|
|
36
38
|
ItemLink: {
|
|
37
|
-
({ icon, shortcut, href, children, onSelect, className, ...rest }: {
|
|
39
|
+
({ icon, shortcut, href, children, onSelect, className, selected, ...rest }: {
|
|
38
40
|
href: string;
|
|
39
41
|
icon?: JSX.Element | undefined;
|
|
40
42
|
children: React.ReactNode;
|
|
41
43
|
shortcut?: string | undefined;
|
|
42
44
|
className?: string | undefined;
|
|
45
|
+
selected?: boolean | undefined;
|
|
43
46
|
onSelect?: ((event: Event) => void) | undefined;
|
|
44
47
|
} & React.AnchorHTMLAttributes<HTMLAnchorElement>): JSX.Element;
|
|
45
48
|
displayName: string;
|
|
46
49
|
};
|
|
47
|
-
ItemCustom: ({ children, className, ...rest }: {
|
|
50
|
+
ItemCustom: ({ children, className, selected, ...rest }: {
|
|
48
51
|
children: React.ReactNode;
|
|
49
52
|
className?: string | undefined;
|
|
53
|
+
selected?: boolean | undefined;
|
|
50
54
|
} & React.HTMLAttributes<HTMLDivElement>) => JSX.Element;
|
|
51
55
|
Group: {
|
|
52
56
|
({ children, className, style, title, }: {
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
declare const DropdownMenuItem: {
|
|
3
|
-
({ icon, onSelect, children, shortcut, className, ...rest }: {
|
|
3
|
+
({ icon, onSelect, children, shortcut, className, selected, ...rest }: {
|
|
4
4
|
icon?: JSX.Element | undefined;
|
|
5
5
|
onSelect: (event: Event) => void;
|
|
6
6
|
children: React.ReactNode;
|
|
7
7
|
shortcut?: string | undefined;
|
|
8
|
+
selected?: boolean | undefined;
|
|
8
9
|
className?: string | undefined;
|
|
9
10
|
} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
|
|
10
11
|
displayName: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
declare const DropdownMenuItemCustom: ({ children, className, ...rest }: {
|
|
2
|
+
declare const DropdownMenuItemCustom: ({ children, className, selected, ...rest }: {
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
className?: string | undefined;
|
|
5
|
+
selected?: boolean | undefined;
|
|
5
6
|
} & React.HTMLAttributes<HTMLDivElement>) => JSX.Element;
|
|
6
7
|
export default DropdownMenuItemCustom;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
declare const DropdownMenuItemLink: {
|
|
3
|
-
({ icon, shortcut, href, children, onSelect, className, ...rest }: {
|
|
3
|
+
({ icon, shortcut, href, children, onSelect, className, selected, ...rest }: {
|
|
4
4
|
href: string;
|
|
5
5
|
icon?: JSX.Element | undefined;
|
|
6
6
|
children: React.ReactNode;
|
|
7
7
|
shortcut?: string | undefined;
|
|
8
8
|
className?: string | undefined;
|
|
9
|
+
selected?: boolean | undefined;
|
|
9
10
|
onSelect?: ((event: Event) => void) | undefined;
|
|
10
11
|
} & React.AnchorHTMLAttributes<HTMLAnchorElement>): JSX.Element;
|
|
11
12
|
displayName: string;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
declare const MenuTrigger: {
|
|
2
|
-
({ className, children, onToggle, }: {
|
|
2
|
+
({ className, children, onToggle, title, ...rest }: {
|
|
3
3
|
className?: string | undefined;
|
|
4
4
|
children: React.ReactNode;
|
|
5
5
|
onToggle: () => void;
|
|
6
|
-
|
|
6
|
+
title?: string | undefined;
|
|
7
|
+
} & Omit<import("react").ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
|
|
7
8
|
displayName: string;
|
|
8
9
|
};
|
|
9
10
|
export default MenuTrigger;
|
|
@@ -2,5 +2,5 @@ import React from "react";
|
|
|
2
2
|
export declare const DropdownMenuContentPropsContext: React.Context<{
|
|
3
3
|
onSelect?: ((event: Event) => void) | undefined;
|
|
4
4
|
}>;
|
|
5
|
-
export declare const getDropdownMenuItemClassName: (className?: string) => string;
|
|
5
|
+
export declare const getDropdownMenuItemClassName: (className?: string, selected?: boolean) => string;
|
|
6
6
|
export declare const useHandleDropdownMenuItemClick: (origOnClick: React.MouseEventHandler<HTMLAnchorElement | HTMLButtonElement> | undefined, onSelect: ((event: Event) => void) | undefined) => (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement, MouseEvent>) => void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Theme } from "../element/types";
|
|
3
|
+
export declare const iconFillColor: (theme: Theme) => string;
|
|
3
4
|
type Opts = {
|
|
4
5
|
width?: number;
|
|
5
6
|
height?: number;
|
|
@@ -31,6 +32,7 @@ export declare const EraserIcon: JSX.Element;
|
|
|
31
32
|
export declare const ZoomInIcon: JSX.Element;
|
|
32
33
|
export declare const ZoomOutIcon: JSX.Element;
|
|
33
34
|
export declare const TrashIcon: JSX.Element;
|
|
35
|
+
export declare const EmbedIcon: JSX.Element;
|
|
34
36
|
export declare const DuplicateIcon: JSX.Element;
|
|
35
37
|
export declare const MoonIcon: JSX.Element;
|
|
36
38
|
export declare const SunIcon: JSX.Element;
|
|
@@ -144,5 +146,9 @@ export declare const helpIcon: JSX.Element;
|
|
|
144
146
|
export declare const playerPlayIcon: JSX.Element;
|
|
145
147
|
export declare const playerStopFilledIcon: JSX.Element;
|
|
146
148
|
export declare const tablerCheckIcon: JSX.Element;
|
|
149
|
+
export declare const alertTriangleIcon: JSX.Element;
|
|
147
150
|
export declare const eyeDropperIcon: JSX.Element;
|
|
151
|
+
export declare const extraToolsIcon: JSX.Element;
|
|
152
|
+
export declare const frameToolIcon: JSX.Element;
|
|
153
|
+
export declare const laserPointerToolIcon: JSX.Element;
|
|
148
154
|
export {};
|
|
@@ -10,37 +10,41 @@ declare const MainMenu: React.FC<{
|
|
|
10
10
|
__fallback?: boolean | undefined;
|
|
11
11
|
}> & {
|
|
12
12
|
Trigger: {
|
|
13
|
-
({ className, children, onToggle, }: {
|
|
13
|
+
({ className, children, onToggle, title, ...rest }: {
|
|
14
14
|
className?: string | undefined;
|
|
15
15
|
children: React.ReactNode;
|
|
16
16
|
onToggle: () => void;
|
|
17
|
-
|
|
17
|
+
title?: string | undefined;
|
|
18
|
+
} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
|
|
18
19
|
displayName: string;
|
|
19
20
|
};
|
|
20
21
|
Item: {
|
|
21
|
-
({ icon, onSelect, children, shortcut, className, ...rest }: {
|
|
22
|
+
({ icon, onSelect, children, shortcut, className, selected, ...rest }: {
|
|
22
23
|
icon?: JSX.Element | undefined;
|
|
23
24
|
onSelect: (event: Event) => void;
|
|
24
25
|
children: React.ReactNode;
|
|
25
26
|
shortcut?: string | undefined;
|
|
27
|
+
selected?: boolean | undefined;
|
|
26
28
|
className?: string | undefined;
|
|
27
29
|
} & Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "onSelect">): JSX.Element;
|
|
28
30
|
displayName: string;
|
|
29
31
|
};
|
|
30
32
|
ItemLink: {
|
|
31
|
-
({ icon, shortcut, href, children, onSelect, className, ...rest }: {
|
|
33
|
+
({ icon, shortcut, href, children, onSelect, className, selected, ...rest }: {
|
|
32
34
|
href: string;
|
|
33
35
|
icon?: JSX.Element | undefined;
|
|
34
36
|
children: React.ReactNode;
|
|
35
37
|
shortcut?: string | undefined;
|
|
36
38
|
className?: string | undefined;
|
|
39
|
+
selected?: boolean | undefined;
|
|
37
40
|
onSelect?: ((event: Event) => void) | undefined;
|
|
38
41
|
} & React.AnchorHTMLAttributes<HTMLAnchorElement>): JSX.Element;
|
|
39
42
|
displayName: string;
|
|
40
43
|
};
|
|
41
|
-
ItemCustom: ({ children, className, ...rest }: {
|
|
44
|
+
ItemCustom: ({ children, className, selected, ...rest }: {
|
|
42
45
|
children: React.ReactNode;
|
|
43
46
|
className?: string | undefined;
|
|
47
|
+
selected?: boolean | undefined;
|
|
44
48
|
} & React.HTMLAttributes<HTMLDivElement>) => JSX.Element;
|
|
45
49
|
Group: {
|
|
46
50
|
({ children, className, style, title, }: {
|
package/types/constants.d.ts
CHANGED
|
@@ -29,6 +29,11 @@ export declare const POINTER_BUTTON: {
|
|
|
29
29
|
readonly SECONDARY: 2;
|
|
30
30
|
readonly TOUCH: -1;
|
|
31
31
|
};
|
|
32
|
+
export declare const POINTER_EVENTS: {
|
|
33
|
+
readonly enabled: "all";
|
|
34
|
+
readonly disabled: "none";
|
|
35
|
+
readonly inheritFromUI: any;
|
|
36
|
+
};
|
|
32
37
|
export declare enum EVENT {
|
|
33
38
|
COPY = "copy",
|
|
34
39
|
PASTE = "paste",
|
|
@@ -57,8 +62,17 @@ export declare enum EVENT {
|
|
|
57
62
|
VISIBILITY_CHANGE = "visibilitychange",
|
|
58
63
|
SCROLL = "scroll",
|
|
59
64
|
EXCALIDRAW_LINK = "excalidraw-link",
|
|
60
|
-
MENU_ITEM_SELECT = "menu.itemSelect"
|
|
65
|
+
MENU_ITEM_SELECT = "menu.itemSelect",
|
|
66
|
+
MESSAGE = "message"
|
|
61
67
|
}
|
|
68
|
+
export declare const YOUTUBE_STATES: {
|
|
69
|
+
readonly UNSTARTED: -1;
|
|
70
|
+
readonly ENDED: 0;
|
|
71
|
+
readonly PLAYING: 1;
|
|
72
|
+
readonly PAUSED: 2;
|
|
73
|
+
readonly BUFFERING: 3;
|
|
74
|
+
readonly CUED: 5;
|
|
75
|
+
};
|
|
62
76
|
export declare const ENV: {
|
|
63
77
|
TEST: string;
|
|
64
78
|
DEVELOPMENT: string;
|
|
@@ -73,10 +87,24 @@ export declare const FONT_FAMILY: {
|
|
|
73
87
|
Cascadia: number;
|
|
74
88
|
};
|
|
75
89
|
export declare const THEME: {
|
|
76
|
-
LIGHT:
|
|
77
|
-
DARK:
|
|
90
|
+
readonly LIGHT: "light";
|
|
91
|
+
readonly DARK: "dark";
|
|
92
|
+
};
|
|
93
|
+
export declare const FRAME_STYLE: {
|
|
94
|
+
strokeColor: string;
|
|
95
|
+
strokeWidth: number;
|
|
96
|
+
strokeStyle: import("./element/types").StrokeStyle;
|
|
97
|
+
fillStyle: import("./element/types").FillStyle;
|
|
98
|
+
roughness: number;
|
|
99
|
+
roundness: {
|
|
100
|
+
type: import("./element/types").RoundnessType;
|
|
101
|
+
value?: number | undefined;
|
|
102
|
+
} | null;
|
|
103
|
+
backgroundColor: string;
|
|
104
|
+
radius: number;
|
|
78
105
|
};
|
|
79
106
|
export declare const WINDOWS_EMOJI_FALLBACK_FONT = "Segoe UI Emoji";
|
|
107
|
+
export declare const MIN_FONT_SIZE = 1;
|
|
80
108
|
export declare const DEFAULT_FONT_SIZE = 20;
|
|
81
109
|
export declare const DEFAULT_FONT_FAMILY: FontFamilyValues;
|
|
82
110
|
export declare const DEFAULT_TEXT_ALIGN = "left";
|
|
@@ -124,6 +152,7 @@ export declare const EXPORT_DATA_TYPES: {
|
|
|
124
152
|
readonly excalidraw: "excalidraw";
|
|
125
153
|
readonly excalidrawClipboard: "excalidraw/clipboard";
|
|
126
154
|
readonly excalidrawLibrary: "excalidrawlib";
|
|
155
|
+
readonly excalidrawClipboardWithAPI: "excalidraw-api/clipboard";
|
|
127
156
|
};
|
|
128
157
|
export declare const EXPORT_SOURCE: string;
|
|
129
158
|
export declare const IMAGE_RENDER_TIMEOUT = 500;
|
|
@@ -163,6 +192,8 @@ export declare const VERSIONS: {
|
|
|
163
192
|
readonly excalidrawLibrary: 2;
|
|
164
193
|
};
|
|
165
194
|
export declare const BOUND_TEXT_PADDING = 5;
|
|
195
|
+
export declare const ARROW_LABEL_WIDTH_FRACTION = 0.7;
|
|
196
|
+
export declare const ARROW_LABEL_FONT_SIZE_TO_MIN_WIDTH_RATIO = 11;
|
|
166
197
|
export declare const VERTICAL_ALIGN: {
|
|
167
198
|
TOP: string;
|
|
168
199
|
MIDDLE: string;
|
|
@@ -199,3 +230,4 @@ export declare const DEFAULT_SIDEBAR: {
|
|
|
199
230
|
readonly name: "default";
|
|
200
231
|
readonly defaultTab: "library";
|
|
201
232
|
};
|
|
233
|
+
export declare const LIBRARY_DISABLED_TYPES: Set<"embeddable" | "image">;
|
|
@@ -10,6 +10,7 @@ type TunnelsContextValue = {
|
|
|
10
10
|
FooterCenterTunnel: Tunnel;
|
|
11
11
|
DefaultSidebarTriggerTunnel: Tunnel;
|
|
12
12
|
DefaultSidebarTabTriggersTunnel: Tunnel;
|
|
13
|
+
OverwriteConfirmDialogTunnel: Tunnel;
|
|
13
14
|
jotaiScope: symbol;
|
|
14
15
|
};
|
|
15
16
|
export declare const TunnelsContext: React.Context<TunnelsContextValue>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { ElementConstructorOpts } from "../element/newElement";
|
|
2
|
+
import { ExcalidrawBindableElement, ExcalidrawElement, ExcalidrawEmbeddableElement, ExcalidrawFrameElement, ExcalidrawFreeDrawElement, ExcalidrawGenericElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawSelectionElement, ExcalidrawTextElement, FileId, FontFamilyValues, TextAlign, VerticalAlign } from "../element/types";
|
|
3
|
+
import { MarkOptional } from "../utility-types";
|
|
4
|
+
export type ValidLinearElement = {
|
|
5
|
+
type: "arrow" | "line";
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
label?: {
|
|
9
|
+
text: string;
|
|
10
|
+
fontSize?: number;
|
|
11
|
+
fontFamily?: FontFamilyValues;
|
|
12
|
+
textAlign?: TextAlign;
|
|
13
|
+
verticalAlign?: VerticalAlign;
|
|
14
|
+
} & MarkOptional<ElementConstructorOpts, "x" | "y">;
|
|
15
|
+
end?: (({
|
|
16
|
+
type: Exclude<ExcalidrawBindableElement["type"], "image" | "text" | "frame" | "embeddable">;
|
|
17
|
+
id?: ExcalidrawGenericElement["id"];
|
|
18
|
+
} | {
|
|
19
|
+
id: ExcalidrawGenericElement["id"];
|
|
20
|
+
type?: Exclude<ExcalidrawBindableElement["type"], "image" | "text" | "frame" | "embeddable">;
|
|
21
|
+
}) | (({
|
|
22
|
+
type: "text";
|
|
23
|
+
text: string;
|
|
24
|
+
} | {
|
|
25
|
+
type?: "text";
|
|
26
|
+
id: ExcalidrawTextElement["id"];
|
|
27
|
+
text: string;
|
|
28
|
+
}) & Partial<ExcalidrawTextElement>)) & MarkOptional<ElementConstructorOpts, "x" | "y">;
|
|
29
|
+
start?: (({
|
|
30
|
+
type: Exclude<ExcalidrawBindableElement["type"], "image" | "text" | "frame" | "embeddable">;
|
|
31
|
+
id?: ExcalidrawGenericElement["id"];
|
|
32
|
+
} | {
|
|
33
|
+
id: ExcalidrawGenericElement["id"];
|
|
34
|
+
type?: Exclude<ExcalidrawBindableElement["type"], "image" | "text" | "frame" | "embeddable">;
|
|
35
|
+
}) | (({
|
|
36
|
+
type: "text";
|
|
37
|
+
text: string;
|
|
38
|
+
} | {
|
|
39
|
+
type?: "text";
|
|
40
|
+
id: ExcalidrawTextElement["id"];
|
|
41
|
+
text: string;
|
|
42
|
+
}) & Partial<ExcalidrawTextElement>)) & MarkOptional<ElementConstructorOpts, "x" | "y">;
|
|
43
|
+
} & Partial<ExcalidrawLinearElement>;
|
|
44
|
+
export type ValidContainer = {
|
|
45
|
+
type: Exclude<ExcalidrawGenericElement["type"], "selection">;
|
|
46
|
+
id?: ExcalidrawGenericElement["id"];
|
|
47
|
+
label?: {
|
|
48
|
+
text: string;
|
|
49
|
+
fontSize?: number;
|
|
50
|
+
fontFamily?: FontFamilyValues;
|
|
51
|
+
textAlign?: TextAlign;
|
|
52
|
+
verticalAlign?: VerticalAlign;
|
|
53
|
+
} & MarkOptional<ElementConstructorOpts, "x" | "y">;
|
|
54
|
+
} & ElementConstructorOpts;
|
|
55
|
+
export type ExcalidrawElementSkeleton = Extract<Exclude<ExcalidrawElement, ExcalidrawSelectionElement>, ExcalidrawEmbeddableElement | ExcalidrawFreeDrawElement | ExcalidrawFrameElement> | ({
|
|
56
|
+
type: Extract<ExcalidrawLinearElement["type"], "line">;
|
|
57
|
+
x: number;
|
|
58
|
+
y: number;
|
|
59
|
+
} & Partial<ExcalidrawLinearElement>) | ValidContainer | ValidLinearElement | ({
|
|
60
|
+
type: "text";
|
|
61
|
+
text: string;
|
|
62
|
+
x: number;
|
|
63
|
+
y: number;
|
|
64
|
+
id?: ExcalidrawTextElement["id"];
|
|
65
|
+
} & Partial<ExcalidrawTextElement>) | ({
|
|
66
|
+
type: Extract<ExcalidrawImageElement["type"], "image">;
|
|
67
|
+
x: number;
|
|
68
|
+
y: number;
|
|
69
|
+
fileId: FileId;
|
|
70
|
+
} & Partial<ExcalidrawImageElement>);
|
|
71
|
+
export declare const convertToExcalidrawElements: (elements: ExcalidrawElementSkeleton[] | null) => ExcalidrawElement[];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const normalizeLink: (link: string) => string;
|
|
2
|
+
export declare const isLocalLink: (link: string | null) => boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Returns URL sanitized and safe for usage in places such as
|
|
5
|
+
* iframe's src attribute or <a> href attributes.
|
|
6
|
+
*/
|
|
7
|
+
export declare const toValidURL: (link: string) => string;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
import { AppState, ExcalidrawProps, UIAppState } from "../types";
|
|
3
2
|
import { NonDeletedExcalidrawElement } from "./types";
|
|
4
3
|
import { Bounds } from "./bounds";
|
|
5
4
|
import "./Hyperlink.scss";
|
|
6
5
|
export declare const EXTERNAL_LINK_IMG: HTMLImageElement;
|
|
7
|
-
export declare const Hyperlink: ({ element, setAppState, onLinkOpen, }: {
|
|
6
|
+
export declare const Hyperlink: ({ element, setAppState, onLinkOpen, setToast, }: {
|
|
8
7
|
element: NonDeletedExcalidrawElement;
|
|
9
8
|
setAppState: React.Component<any, AppState>["setState"];
|
|
10
9
|
onLinkOpen: ExcalidrawProps["onLinkOpen"];
|
|
10
|
+
setToast: (toast: {
|
|
11
|
+
message: string;
|
|
12
|
+
closable?: boolean;
|
|
13
|
+
duration?: number;
|
|
14
|
+
} | null) => void;
|
|
11
15
|
}) => JSX.Element | null;
|
|
12
|
-
export declare const normalizeLink: (link: string) => string;
|
|
13
|
-
export declare const isLocalLink: (link: string | null) => boolean;
|
|
14
16
|
export declare const actionLink: {
|
|
15
17
|
name: "hyperlink";
|
|
16
18
|
perform: (elements: readonly import("./types").ExcalidrawElement[], appState: Readonly<AppState>) => false | {
|
|
@@ -26,6 +28,10 @@ export declare const actionLink: {
|
|
|
26
28
|
showWelcomeScreen: boolean;
|
|
27
29
|
isLoading: boolean;
|
|
28
30
|
errorMessage: import("react").ReactNode;
|
|
31
|
+
activeEmbeddable: {
|
|
32
|
+
element: NonDeletedExcalidrawElement;
|
|
33
|
+
state: "active" | "hover";
|
|
34
|
+
} | null;
|
|
29
35
|
draggingElement: NonDeletedExcalidrawElement | null;
|
|
30
36
|
resizingElement: NonDeletedExcalidrawElement | null;
|
|
31
37
|
multiElement: import("./types").NonDeleted<import("./types").ExcalidrawLinearElement> | null;
|
|
@@ -33,18 +39,21 @@ export declare const actionLink: {
|
|
|
33
39
|
isBindingEnabled: boolean;
|
|
34
40
|
startBoundElement: import("./types").NonDeleted<import("./types").ExcalidrawBindableElement> | null;
|
|
35
41
|
suggestedBindings: import("./binding").SuggestedBinding[];
|
|
42
|
+
frameToHighlight: import("./types").NonDeleted<import("./types").ExcalidrawFrameElement> | null;
|
|
43
|
+
frameRendering: {
|
|
44
|
+
enabled: boolean;
|
|
45
|
+
name: boolean;
|
|
46
|
+
outline: boolean;
|
|
47
|
+
clip: boolean;
|
|
48
|
+
};
|
|
49
|
+
editingFrame: string | null;
|
|
50
|
+
elementsToHighlight: import("./types").NonDeleted<import("./types").ExcalidrawElement>[] | null;
|
|
36
51
|
editingElement: NonDeletedExcalidrawElement | null;
|
|
37
52
|
editingLinearElement: import("./linearElementEditor").LinearElementEditor | null;
|
|
38
53
|
activeTool: {
|
|
39
|
-
lastActiveTool: import("../types").
|
|
54
|
+
lastActiveTool: import("../types").ActiveTool | null;
|
|
40
55
|
locked: boolean;
|
|
41
|
-
} & (
|
|
42
|
-
type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
|
|
43
|
-
customType: null;
|
|
44
|
-
} | {
|
|
45
|
-
type: "custom";
|
|
46
|
-
customType: string;
|
|
47
|
-
});
|
|
56
|
+
} & import("../types").ActiveTool;
|
|
48
57
|
penMode: boolean;
|
|
49
58
|
penDetected: boolean;
|
|
50
59
|
exportBackground: boolean;
|
|
@@ -83,12 +92,13 @@ export declare const actionLink: {
|
|
|
83
92
|
openDialog: "imageExport" | "help" | "jsonExport" | null;
|
|
84
93
|
defaultSidebarDockedPreference: boolean;
|
|
85
94
|
lastPointerDownWith: import("./types").PointerType;
|
|
86
|
-
selectedElementIds: {
|
|
87
|
-
[id: string]:
|
|
88
|
-
}
|
|
95
|
+
selectedElementIds: Readonly<{
|
|
96
|
+
[id: string]: true;
|
|
97
|
+
}>;
|
|
89
98
|
previousSelectedElementIds: {
|
|
90
|
-
[id: string]:
|
|
99
|
+
[id: string]: true;
|
|
91
100
|
};
|
|
101
|
+
selectedElementsAreBeingDragged: boolean;
|
|
92
102
|
shouldCacheIgnoreZoom: boolean;
|
|
93
103
|
toast: {
|
|
94
104
|
message: string;
|
|
@@ -96,7 +106,7 @@ export declare const actionLink: {
|
|
|
96
106
|
duration?: number | undefined;
|
|
97
107
|
} | null;
|
|
98
108
|
zenModeEnabled: boolean;
|
|
99
|
-
theme:
|
|
109
|
+
theme: import("./types").Theme;
|
|
100
110
|
gridSize: number | null;
|
|
101
111
|
viewModeEnabled: boolean;
|
|
102
112
|
selectedGroupIds: {
|
|
@@ -120,6 +130,12 @@ export declare const actionLink: {
|
|
|
120
130
|
};
|
|
121
131
|
pendingImageElementId: string | null;
|
|
122
132
|
selectedLinearElement: import("./linearElementEditor").LinearElementEditor | null;
|
|
133
|
+
snapLines: readonly import("../snapping").SnapLine[];
|
|
134
|
+
originSnapOffset: {
|
|
135
|
+
x: number;
|
|
136
|
+
y: number;
|
|
137
|
+
} | null;
|
|
138
|
+
objectsSnapModeEnabled: boolean;
|
|
123
139
|
};
|
|
124
140
|
commitToHistory: true;
|
|
125
141
|
};
|
|
@@ -127,16 +143,17 @@ export declare const actionLink: {
|
|
|
127
143
|
category: "hyperlink";
|
|
128
144
|
action: string;
|
|
129
145
|
};
|
|
130
|
-
keyTest: (event:
|
|
131
|
-
contextItemLabel: (elements: readonly import("./types").ExcalidrawElement[], appState: Readonly<AppState>) => "labels.link.edit" | "labels.link.create";
|
|
146
|
+
keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
|
|
147
|
+
contextItemLabel: (elements: readonly import("./types").ExcalidrawElement[], appState: Readonly<AppState>) => "labels.link.editEmbed" | "labels.link.edit" | "labels.link.createEmbed" | "labels.link.create";
|
|
132
148
|
predicate: (elements: readonly import("./types").ExcalidrawElement[], appState: AppState) => boolean;
|
|
133
149
|
PanelComponent: ({ elements, appState, updateData }: import("../actions/types").PanelComponentProps) => JSX.Element;
|
|
134
150
|
} & {
|
|
135
|
-
keyTest?: ((event:
|
|
151
|
+
keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
|
|
136
152
|
};
|
|
137
|
-
export declare const getContextMenuLabel: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState) => "labels.link.edit" | "labels.link.create";
|
|
138
|
-
export declare const getLinkHandleFromCoords: ([x1, y1, x2, y2]: Bounds, angle: number, appState: UIAppState) => [x: number, y: number, width: number, height: number];
|
|
139
|
-
export declare const isPointHittingLinkIcon: (element: NonDeletedExcalidrawElement, appState: AppState, [x, y]: readonly [number, number]
|
|
153
|
+
export declare const getContextMenuLabel: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState) => "labels.link.editEmbed" | "labels.link.edit" | "labels.link.createEmbed" | "labels.link.create";
|
|
154
|
+
export declare const getLinkHandleFromCoords: ([x1, y1, x2, y2]: Bounds, angle: number, appState: Pick<UIAppState, "zoom">) => [x: number, y: number, width: number, height: number];
|
|
155
|
+
export declare const isPointHittingLinkIcon: (element: NonDeletedExcalidrawElement, appState: AppState, [x, y]: readonly [number, number]) => boolean;
|
|
156
|
+
export declare const isPointHittingLink: (element: NonDeletedExcalidrawElement, appState: AppState, [x, y]: readonly [number, number], isMobile: boolean) => boolean;
|
|
140
157
|
export declare const showHyperlinkTooltip: (element: NonDeletedExcalidrawElement, appState: AppState) => void;
|
|
141
158
|
export declare const hideHyperlinkToolip: () => void;
|
|
142
159
|
export declare const shouldHideLinkPopup: (element: NonDeletedExcalidrawElement, appState: AppState, [clientX, clientY]: readonly [number, number]) => Boolean;
|
|
@@ -7,7 +7,7 @@ export type SuggestedPointBinding = [
|
|
|
7
7
|
"start" | "end" | "both",
|
|
8
8
|
NonDeleted<ExcalidrawBindableElement>
|
|
9
9
|
];
|
|
10
|
-
export declare const shouldEnableBindingForPointerEvent: (event: React.PointerEvent<
|
|
10
|
+
export declare const shouldEnableBindingForPointerEvent: (event: React.PointerEvent<HTMLElement>) => boolean;
|
|
11
11
|
export declare const isBindingEnabled: (appState: AppState) => boolean;
|
|
12
12
|
export declare const bindOrUnbindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, startBindingElement: ExcalidrawBindableElement | null | "keep", endBindingElement: ExcalidrawBindableElement | null | "keep") => void;
|
|
13
13
|
export declare const bindOrUnbindSelectedElements: (elements: NonDeleted<ExcalidrawElement>[]) => void;
|
|
@@ -15,6 +15,7 @@ export declare const maybeBindLinearElement: (linearElement: NonDeleted<Excalidr
|
|
|
15
15
|
x: number;
|
|
16
16
|
y: number;
|
|
17
17
|
}) => void;
|
|
18
|
+
export declare const bindLinearElement: (linearElement: NonDeleted<ExcalidrawLinearElement>, hoveredElement: ExcalidrawBindableElement, startOrEnd: "start" | "end") => void;
|
|
18
19
|
export declare const isLinearElementSimpleAndAlreadyBound: (linearElement: NonDeleted<ExcalidrawLinearElement>, alreadyBoundToId: ExcalidrawBindableElement["id"] | undefined, bindableElement: ExcalidrawBindableElement) => boolean;
|
|
19
20
|
export declare const unbindLinearElements: (elements: NonDeleted<ExcalidrawElement>[]) => void;
|
|
20
21
|
export declare const getHoveredElementForBinding: (pointerCoords: {
|
|
@@ -1,21 +1,45 @@
|
|
|
1
1
|
import { ExcalidrawElement, ExcalidrawLinearElement, Arrowhead, NonDeleted } from "./types";
|
|
2
2
|
import { Drawable, Op } from "roughjs/bin/core";
|
|
3
|
-
|
|
3
|
+
import { Point } from "../types";
|
|
4
|
+
export type RectangleBox = {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
angle: number;
|
|
10
|
+
};
|
|
11
|
+
export type Bounds = readonly [x1: number, y1: number, x2: number, y2: number];
|
|
12
|
+
export declare class ElementBounds {
|
|
13
|
+
private static boundsCache;
|
|
14
|
+
static getBounds(element: ExcalidrawElement): Bounds;
|
|
15
|
+
private static calculateBounds;
|
|
16
|
+
}
|
|
4
17
|
export declare const getElementAbsoluteCoords: (element: ExcalidrawElement, includeBoundText?: boolean) => [number, number, number, number, number, number];
|
|
18
|
+
export declare const getElementLineSegments: (element: ExcalidrawElement) => [Point, Point][];
|
|
19
|
+
/**
|
|
20
|
+
* Scene -> Scene coords, but in x1,x2,y1,y2 format.
|
|
21
|
+
*
|
|
22
|
+
* Rectangle here means any rectangular frame, not an excalidraw element.
|
|
23
|
+
*/
|
|
24
|
+
export declare const getRectangleBoxAbsoluteCoords: (boxSceneCoords: RectangleBox) => number[];
|
|
5
25
|
export declare const pointRelativeTo: (element: ExcalidrawElement, absoluteCoords: readonly [number, number]) => readonly [number, number];
|
|
6
26
|
export declare const getDiamondPoints: (element: ExcalidrawElement) => number[];
|
|
7
27
|
export declare const getCurvePathOps: (shape: Drawable) => Op[];
|
|
8
28
|
export declare const getMinMaxXYFromCurvePathOps: (ops: Op[], transformXY?: ((x: number, y: number) => [number, number]) | undefined) => [number, number, number, number];
|
|
9
29
|
export declare const getArrowheadPoints: (element: ExcalidrawLinearElement, shape: Drawable[], position: "start" | "end", arrowhead: Arrowhead) => number[] | null;
|
|
10
|
-
export declare const getElementBounds: (element: ExcalidrawElement) =>
|
|
11
|
-
export declare const getCommonBounds: (elements: readonly ExcalidrawElement[]) =>
|
|
30
|
+
export declare const getElementBounds: (element: ExcalidrawElement) => Bounds;
|
|
31
|
+
export declare const getCommonBounds: (elements: readonly ExcalidrawElement[]) => Bounds;
|
|
32
|
+
export declare const getDraggedElementsBounds: (elements: ExcalidrawElement[], dragOffset: {
|
|
33
|
+
x: number;
|
|
34
|
+
y: number;
|
|
35
|
+
}) => number[];
|
|
12
36
|
export declare const getResizedElementAbsoluteCoords: (element: ExcalidrawElement, nextWidth: number, nextHeight: number, normalizePoints: boolean) => [number, number, number, number];
|
|
13
37
|
export declare const getElementPointsCoords: (element: ExcalidrawLinearElement, points: readonly (readonly [number, number])[]) => [number, number, number, number];
|
|
14
38
|
export declare const getClosestElementBounds: (elements: readonly ExcalidrawElement[], from: {
|
|
15
39
|
x: number;
|
|
16
40
|
y: number;
|
|
17
|
-
}) =>
|
|
18
|
-
export interface
|
|
41
|
+
}) => Bounds;
|
|
42
|
+
export interface BoundingBox {
|
|
19
43
|
minX: number;
|
|
20
44
|
minY: number;
|
|
21
45
|
maxX: number;
|
|
@@ -25,4 +49,4 @@ export interface Box {
|
|
|
25
49
|
width: number;
|
|
26
50
|
height: number;
|
|
27
51
|
}
|
|
28
|
-
export declare const getCommonBoundingBox: (elements: ExcalidrawElement[] | readonly NonDeleted<ExcalidrawElement>[]) =>
|
|
52
|
+
export declare const getCommonBoundingBox: (elements: ExcalidrawElement[] | readonly NonDeleted<ExcalidrawElement>[]) => BoundingBox;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as GA from "../ga";
|
|
2
|
-
import { NonDeletedExcalidrawElement, ExcalidrawBindableElement, ExcalidrawElement, ExcalidrawRectangleElement, ExcalidrawDiamondElement, ExcalidrawTextElement, ExcalidrawEllipseElement, NonDeleted, ExcalidrawImageElement } from "./types";
|
|
3
|
-
import { Point } from "../types";
|
|
2
|
+
import { NonDeletedExcalidrawElement, ExcalidrawBindableElement, ExcalidrawElement, ExcalidrawRectangleElement, ExcalidrawEmbeddableElement, ExcalidrawDiamondElement, ExcalidrawTextElement, ExcalidrawEllipseElement, NonDeleted, ExcalidrawImageElement, ExcalidrawFrameElement } from "./types";
|
|
3
|
+
import { FrameNameBoundsCache, Point } from "../types";
|
|
4
4
|
import { AppState } from "../types";
|
|
5
|
-
export declare const hitTest: (element: NonDeletedExcalidrawElement, appState: AppState, x: number, y: number) => boolean;
|
|
6
|
-
export declare const isHittingElementBoundingBoxWithoutHittingElement: (element: NonDeletedExcalidrawElement, appState: AppState, x: number, y: number) => boolean;
|
|
7
|
-
export declare const isHittingElementNotConsideringBoundingBox: (element: NonDeletedExcalidrawElement, appState: AppState, point: readonly [number, number]) => boolean;
|
|
8
|
-
export declare const isPointHittingElementBoundingBox: (element: NonDeleted<ExcalidrawElement>, [x, y]: readonly [number, number], threshold: number) => boolean;
|
|
5
|
+
export declare const hitTest: (element: NonDeletedExcalidrawElement, appState: AppState, frameNameBoundsCache: FrameNameBoundsCache, x: number, y: number) => boolean;
|
|
6
|
+
export declare const isHittingElementBoundingBoxWithoutHittingElement: (element: NonDeletedExcalidrawElement, appState: AppState, frameNameBoundsCache: FrameNameBoundsCache, x: number, y: number) => boolean;
|
|
7
|
+
export declare const isHittingElementNotConsideringBoundingBox: (element: NonDeletedExcalidrawElement, appState: AppState, frameNameBoundsCache: FrameNameBoundsCache | null, point: readonly [number, number]) => boolean;
|
|
8
|
+
export declare const isPointHittingElementBoundingBox: (element: NonDeleted<ExcalidrawElement>, [x, y]: readonly [number, number], threshold: number, frameNameBoundsCache: FrameNameBoundsCache | null) => boolean;
|
|
9
9
|
export declare const bindingBorderTest: (element: NonDeleted<ExcalidrawBindableElement>, { x, y }: {
|
|
10
10
|
x: number;
|
|
11
11
|
y: number;
|
|
@@ -18,4 +18,4 @@ export declare const determineFocusPoint: (element: ExcalidrawBindableElement, f
|
|
|
18
18
|
export declare const intersectElementWithLine: (element: ExcalidrawBindableElement, a: readonly [number, number], b: readonly [number, number], gap?: number) => Point[];
|
|
19
19
|
export declare const getCircleIntersections: (center: readonly [number, number, number, number, number, number, number, number], radius: number, line: readonly [number, number, number, number, number, number, number, number]) => GA.Point[];
|
|
20
20
|
export declare const findFocusPointForEllipse: (ellipse: ExcalidrawEllipseElement, relativeDistance: number, point: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
|
|
21
|
-
export declare const findFocusPointForRectangulars: (element: ExcalidrawRectangleElement | ExcalidrawImageElement | ExcalidrawDiamondElement | ExcalidrawTextElement, relativeDistance: number, point: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
|
|
21
|
+
export declare const findFocusPointForRectangulars: (element: ExcalidrawRectangleElement | ExcalidrawImageElement | ExcalidrawDiamondElement | ExcalidrawTextElement | ExcalidrawEmbeddableElement | ExcalidrawFrameElement, relativeDistance: number, point: readonly [number, number, number, number, number, number, number, number]) => readonly [number, number, number, number, number, number, number, number];
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { NonDeletedExcalidrawElement } from "./types";
|
|
2
2
|
import { AppState, PointerDownState } from "../types";
|
|
3
|
-
|
|
3
|
+
import Scene from "../scene/Scene";
|
|
4
|
+
export declare const dragSelectedElements: (pointerDownState: PointerDownState, selectedElements: NonDeletedExcalidrawElement[], offset: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
}, appState: AppState, scene: Scene, snapOffset: {
|
|
8
|
+
x: number;
|
|
9
|
+
y: number;
|
|
10
|
+
}, gridSize: AppState["gridSize"]) => void;
|
|
4
11
|
export declare const getDragOffsetXY: (selectedElements: NonDeletedExcalidrawElement[], x: number, y: number) => [number, number];
|
|
5
|
-
export declare const dragNewElement: (draggingElement: NonDeletedExcalidrawElement, elementType: AppState["activeTool"]["type"], originX: number, originY: number, x: number, y: number, width: number, height: number, shouldMaintainAspectRatio: boolean, shouldResizeFromCenter: boolean, widthAspectRatio?: number | null
|
|
12
|
+
export declare const dragNewElement: (draggingElement: NonDeletedExcalidrawElement, elementType: AppState["activeTool"]["type"], originX: number, originY: number, x: number, y: number, width: number, height: number, shouldMaintainAspectRatio: boolean, shouldResizeFromCenter: boolean, widthAspectRatio?: number | null, originOffset?: {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
} | null) => void;
|