@dwelle/excalidraw 0.3.35 → 0.3.39

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/README_NEXT.md +1 -0
  3. package/dist/excalidraw-assets-dev/{image-f696fa36e3535df5e97a.js → image-8825d180ee32659f8996.js} +0 -0
  4. package/dist/excalidraw.development.js +58 -36
  5. package/dist/excalidraw.production.min.js +1 -1
  6. package/package.json +7 -7
  7. package/types/actions/actionAddToLibrary.d.ts +262 -1
  8. package/types/actions/actionAlign.d.ts +73 -6
  9. package/types/actions/actionCanvas.d.ts +659 -8
  10. package/types/actions/actionClipboard.d.ts +483 -4
  11. package/types/actions/actionDeleteSelected.d.ts +286 -1
  12. package/types/actions/actionDistribute.d.ts +27 -2
  13. package/types/actions/actionDuplicateSelection.d.ts +19 -1
  14. package/types/actions/actionExport.d.ts +831 -8
  15. package/types/actions/actionFinalize.d.ts +182 -1
  16. package/types/actions/actionFlip.d.ts +29 -2
  17. package/types/actions/actionGroup.d.ts +39 -2
  18. package/types/actions/actionMenu.d.ts +287 -4
  19. package/types/actions/actionNavigate.d.ts +11 -1
  20. package/types/actions/actionProperties.d.ts +1136 -12
  21. package/types/actions/actionSelectAll.d.ts +12 -1
  22. package/types/actions/actionStyles.d.ts +108 -2
  23. package/types/actions/actionToggleGridMode.d.ts +96 -1
  24. package/types/actions/actionToggleStats.d.ts +95 -1
  25. package/types/actions/actionToggleViewMode.d.ts +95 -1
  26. package/types/actions/actionToggleZenMode.d.ts +95 -1
  27. package/types/actions/actionUnbindText.d.ts +11 -0
  28. package/types/actions/actionZindex.d.ts +55 -4
  29. package/types/actions/index.d.ts +1 -0
  30. package/types/actions/register.d.ts +3 -1
  31. package/types/actions/types.d.ts +2 -2
  32. package/types/appState.d.ts +0 -4
  33. package/types/components/App.d.ts +2 -0
  34. package/types/components/ContextMenu.d.ts +3 -0
  35. package/types/components/LayerUI.d.ts +2 -1
  36. package/types/components/MobileMenu.d.ts +2 -1
  37. package/types/components/PenModeButton.d.ts +13 -0
  38. package/types/components/Popover.d.ts +5 -1
  39. package/types/constants.d.ts +0 -3
  40. package/types/element/linearElementEditor.d.ts +3 -6
  41. package/types/element/newElement.d.ts +1 -1
  42. package/types/element/textElement.d.ts +3 -0
  43. package/types/element/textWysiwyg.d.ts +5 -5
  44. package/types/keys.d.ts +4 -0
  45. package/types/packages/excalidraw/dist/excalidraw-assets-dev/image-8825d180ee32659f8996.d.ts +0 -0
  46. package/types/scene/index.d.ts +1 -1
  47. package/types/scene/zoom.d.ts +12 -5
  48. package/types/shapes.d.ts +1 -1
  49. package/types/types.d.ts +4 -4
@@ -1 +1,12 @@
1
- export declare const actionSelectAll: import("./types").Action;
1
+ /// <reference types="react" />
2
+ export declare const actionSelectAll: {
3
+ name: "selectAll";
4
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => false | {
5
+ appState: import("../types").AppState;
6
+ commitToHistory: true;
7
+ };
8
+ contextItemLabel: string;
9
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
10
+ } & {
11
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
12
+ };
@@ -1,3 +1,109 @@
1
+ /// <reference types="react" />
1
2
  export declare let copiedStyles: string;
2
- export declare const actionCopyStyles: import("./types").Action;
3
- export declare const actionPasteStyles: import("./types").Action;
3
+ export declare const actionCopyStyles: {
4
+ name: "copyStyles";
5
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
6
+ appState: {
7
+ toastMessage: string;
8
+ isLoading: boolean;
9
+ errorMessage: string | null;
10
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
11
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
12
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
13
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
14
+ isBindingEnabled: boolean;
15
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
16
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
17
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
18
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
19
+ elementType: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw";
20
+ elementLocked: boolean;
21
+ penMode: boolean;
22
+ penDetected: boolean;
23
+ exportBackground: boolean;
24
+ exportEmbedScene: boolean;
25
+ exportWithDarkMode: boolean;
26
+ exportScale: number;
27
+ currentItemStrokeColor: string;
28
+ currentItemBackgroundColor: string;
29
+ currentItemFillStyle: import("../element/types").FillStyle;
30
+ currentItemStrokeWidth: number;
31
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
32
+ currentItemRoughness: number;
33
+ currentItemOpacity: number;
34
+ currentItemFontFamily: number;
35
+ currentItemFontSize: number;
36
+ currentItemTextAlign: import("../element/types").TextAlign;
37
+ currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
38
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
39
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
40
+ currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
41
+ viewBackgroundColor: string;
42
+ scrollX: number;
43
+ scrollY: number;
44
+ cursorButton: "up" | "down";
45
+ scrolledOutside: boolean;
46
+ name: string;
47
+ isResizing: boolean;
48
+ isRotating: boolean;
49
+ zoom: Readonly<{
50
+ value: import("../types").NormalizedZoomValue;
51
+ }>;
52
+ openMenu: "canvas" | "shape" | null;
53
+ openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
54
+ lastPointerDownWith: import("../element/types").PointerType;
55
+ selectedElementIds: {
56
+ [id: string]: boolean;
57
+ };
58
+ previousSelectedElementIds: {
59
+ [id: string]: boolean;
60
+ };
61
+ shouldCacheIgnoreZoom: boolean;
62
+ showHelpDialog: boolean;
63
+ zenModeEnabled: boolean;
64
+ theme: string;
65
+ gridSize: number | null;
66
+ viewModeEnabled: boolean;
67
+ selectedGroupIds: {
68
+ [groupId: string]: boolean;
69
+ };
70
+ editingGroupId: string | null;
71
+ width: number;
72
+ height: number;
73
+ offsetTop: number;
74
+ offsetLeft: number;
75
+ isLibraryOpen: boolean;
76
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
77
+ collaborators: Map<string, import("../types").Collaborator>;
78
+ showStats: boolean;
79
+ currentChartType: import("../element/types").ChartType;
80
+ pasteDialog: {
81
+ shown: false;
82
+ data: null;
83
+ } | {
84
+ shown: true;
85
+ data: import("../charts").Spreadsheet;
86
+ };
87
+ pendingImageElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawImageElement> | null;
88
+ };
89
+ commitToHistory: false;
90
+ };
91
+ contextItemLabel: string;
92
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
93
+ } & {
94
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
95
+ };
96
+ export declare const actionPasteStyles: {
97
+ name: "pasteStyles";
98
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
99
+ elements: readonly import("../element/types").ExcalidrawElement[];
100
+ commitToHistory: false;
101
+ } | {
102
+ elements: import("../element/types").ExcalidrawElement[];
103
+ commitToHistory: true;
104
+ };
105
+ contextItemLabel: string;
106
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
107
+ } & {
108
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
109
+ };
@@ -1 +1,96 @@
1
- export declare const actionToggleGridMode: import("./types").Action;
1
+ /// <reference types="react" />
2
+ import { AppState } from "../types";
3
+ export declare const actionToggleGridMode: {
4
+ name: "gridMode";
5
+ perform(elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<AppState>): {
6
+ appState: {
7
+ gridSize: number | null;
8
+ isLoading: boolean;
9
+ errorMessage: string | null;
10
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
11
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
12
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
13
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
14
+ isBindingEnabled: boolean;
15
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
16
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
17
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
18
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
19
+ elementType: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw";
20
+ elementLocked: boolean;
21
+ penMode: boolean;
22
+ penDetected: boolean;
23
+ exportBackground: boolean;
24
+ exportEmbedScene: boolean;
25
+ exportWithDarkMode: boolean;
26
+ exportScale: number;
27
+ currentItemStrokeColor: string;
28
+ currentItemBackgroundColor: string;
29
+ currentItemFillStyle: import("../element/types").FillStyle;
30
+ currentItemStrokeWidth: number;
31
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
32
+ currentItemRoughness: number;
33
+ currentItemOpacity: number;
34
+ currentItemFontFamily: number;
35
+ currentItemFontSize: number;
36
+ currentItemTextAlign: import("../element/types").TextAlign;
37
+ currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
38
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
39
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
40
+ currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
41
+ viewBackgroundColor: string;
42
+ scrollX: number;
43
+ scrollY: number;
44
+ cursorButton: "up" | "down";
45
+ scrolledOutside: boolean;
46
+ name: string;
47
+ isResizing: boolean;
48
+ isRotating: boolean;
49
+ zoom: Readonly<{
50
+ value: import("../types").NormalizedZoomValue;
51
+ }>;
52
+ openMenu: "canvas" | "shape" | null;
53
+ openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
54
+ lastPointerDownWith: import("../element/types").PointerType;
55
+ selectedElementIds: {
56
+ [id: string]: boolean;
57
+ };
58
+ previousSelectedElementIds: {
59
+ [id: string]: boolean;
60
+ };
61
+ shouldCacheIgnoreZoom: boolean;
62
+ showHelpDialog: boolean;
63
+ toastMessage: string | null;
64
+ zenModeEnabled: boolean;
65
+ theme: string;
66
+ viewModeEnabled: boolean;
67
+ selectedGroupIds: {
68
+ [groupId: string]: boolean;
69
+ };
70
+ editingGroupId: string | null;
71
+ width: number;
72
+ height: number;
73
+ offsetTop: number;
74
+ offsetLeft: number;
75
+ isLibraryOpen: boolean;
76
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
77
+ collaborators: Map<string, import("../types").Collaborator>;
78
+ showStats: boolean;
79
+ currentChartType: import("../element/types").ChartType;
80
+ pasteDialog: {
81
+ shown: false;
82
+ data: null;
83
+ } | {
84
+ shown: true;
85
+ data: import("../charts").Spreadsheet;
86
+ };
87
+ pendingImageElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawImageElement> | null;
88
+ };
89
+ commitToHistory: false;
90
+ };
91
+ checked: (appState: AppState) => boolean;
92
+ contextItemLabel: string;
93
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
94
+ } & {
95
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
96
+ };
@@ -1 +1,95 @@
1
- export declare const actionToggleStats: import("./types").Action;
1
+ /// <reference types="react" />
2
+ export declare const actionToggleStats: {
3
+ name: "stats";
4
+ perform(elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>): {
5
+ appState: {
6
+ showStats: boolean;
7
+ isLoading: boolean;
8
+ errorMessage: string | null;
9
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
10
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
11
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
12
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
13
+ isBindingEnabled: boolean;
14
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
15
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
16
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
17
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
18
+ elementType: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw";
19
+ elementLocked: boolean;
20
+ penMode: boolean;
21
+ penDetected: boolean;
22
+ exportBackground: boolean;
23
+ exportEmbedScene: boolean;
24
+ exportWithDarkMode: boolean;
25
+ exportScale: number;
26
+ currentItemStrokeColor: string;
27
+ currentItemBackgroundColor: string;
28
+ currentItemFillStyle: import("../element/types").FillStyle;
29
+ currentItemStrokeWidth: number;
30
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
31
+ currentItemRoughness: number;
32
+ currentItemOpacity: number;
33
+ currentItemFontFamily: number;
34
+ currentItemFontSize: number;
35
+ currentItemTextAlign: import("../element/types").TextAlign;
36
+ currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
37
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
38
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
39
+ currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
40
+ viewBackgroundColor: string;
41
+ scrollX: number;
42
+ scrollY: number;
43
+ cursorButton: "up" | "down";
44
+ scrolledOutside: boolean;
45
+ name: string;
46
+ isResizing: boolean;
47
+ isRotating: boolean;
48
+ zoom: Readonly<{
49
+ value: import("../types").NormalizedZoomValue;
50
+ }>;
51
+ openMenu: "canvas" | "shape" | null;
52
+ openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
53
+ lastPointerDownWith: import("../element/types").PointerType;
54
+ selectedElementIds: {
55
+ [id: string]: boolean;
56
+ };
57
+ previousSelectedElementIds: {
58
+ [id: string]: boolean;
59
+ };
60
+ shouldCacheIgnoreZoom: boolean;
61
+ showHelpDialog: boolean;
62
+ toastMessage: string | null;
63
+ zenModeEnabled: boolean;
64
+ theme: string;
65
+ gridSize: number | null;
66
+ viewModeEnabled: boolean;
67
+ selectedGroupIds: {
68
+ [groupId: string]: boolean;
69
+ };
70
+ editingGroupId: string | null;
71
+ width: number;
72
+ height: number;
73
+ offsetTop: number;
74
+ offsetLeft: number;
75
+ isLibraryOpen: boolean;
76
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
77
+ collaborators: Map<string, import("../types").Collaborator>;
78
+ currentChartType: import("../element/types").ChartType;
79
+ pasteDialog: {
80
+ shown: false;
81
+ data: null;
82
+ } | {
83
+ shown: true;
84
+ data: import("../charts").Spreadsheet;
85
+ };
86
+ pendingImageElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawImageElement> | null;
87
+ };
88
+ commitToHistory: false;
89
+ };
90
+ checked: (appState: Readonly<import("../types").AppState>) => boolean;
91
+ contextItemLabel: string;
92
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
93
+ } & {
94
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
95
+ };
@@ -1 +1,95 @@
1
- export declare const actionToggleViewMode: import("./types").Action;
1
+ /// <reference types="react" />
2
+ export declare const actionToggleViewMode: {
3
+ name: "viewMode";
4
+ perform(elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>): {
5
+ appState: {
6
+ viewModeEnabled: boolean;
7
+ isLoading: boolean;
8
+ errorMessage: string | null;
9
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
10
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
11
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
12
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
13
+ isBindingEnabled: boolean;
14
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
15
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
16
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
17
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
18
+ elementType: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw";
19
+ elementLocked: boolean;
20
+ penMode: boolean;
21
+ penDetected: boolean;
22
+ exportBackground: boolean;
23
+ exportEmbedScene: boolean;
24
+ exportWithDarkMode: boolean;
25
+ exportScale: number;
26
+ currentItemStrokeColor: string;
27
+ currentItemBackgroundColor: string;
28
+ currentItemFillStyle: import("../element/types").FillStyle;
29
+ currentItemStrokeWidth: number;
30
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
31
+ currentItemRoughness: number;
32
+ currentItemOpacity: number;
33
+ currentItemFontFamily: number;
34
+ currentItemFontSize: number;
35
+ currentItemTextAlign: import("../element/types").TextAlign;
36
+ currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
37
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
38
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
39
+ currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
40
+ viewBackgroundColor: string;
41
+ scrollX: number;
42
+ scrollY: number;
43
+ cursorButton: "up" | "down";
44
+ scrolledOutside: boolean;
45
+ name: string;
46
+ isResizing: boolean;
47
+ isRotating: boolean;
48
+ zoom: Readonly<{
49
+ value: import("../types").NormalizedZoomValue;
50
+ }>;
51
+ openMenu: "canvas" | "shape" | null;
52
+ openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
53
+ lastPointerDownWith: import("../element/types").PointerType;
54
+ selectedElementIds: {
55
+ [id: string]: boolean;
56
+ };
57
+ previousSelectedElementIds: {
58
+ [id: string]: boolean;
59
+ };
60
+ shouldCacheIgnoreZoom: boolean;
61
+ showHelpDialog: boolean;
62
+ toastMessage: string | null;
63
+ zenModeEnabled: boolean;
64
+ theme: string;
65
+ gridSize: number | null;
66
+ selectedGroupIds: {
67
+ [groupId: string]: boolean;
68
+ };
69
+ editingGroupId: string | null;
70
+ width: number;
71
+ height: number;
72
+ offsetTop: number;
73
+ offsetLeft: number;
74
+ isLibraryOpen: boolean;
75
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
76
+ collaborators: Map<string, import("../types").Collaborator>;
77
+ showStats: boolean;
78
+ currentChartType: import("../element/types").ChartType;
79
+ pasteDialog: {
80
+ shown: false;
81
+ data: null;
82
+ } | {
83
+ shown: true;
84
+ data: import("../charts").Spreadsheet;
85
+ };
86
+ pendingImageElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawImageElement> | null;
87
+ };
88
+ commitToHistory: false;
89
+ };
90
+ checked: (appState: Readonly<import("../types").AppState>) => boolean;
91
+ contextItemLabel: string;
92
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
93
+ } & {
94
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
95
+ };
@@ -1 +1,95 @@
1
- export declare const actionToggleZenMode: import("./types").Action;
1
+ /// <reference types="react" />
2
+ export declare const actionToggleZenMode: {
3
+ name: "zenMode";
4
+ perform(elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>): {
5
+ appState: {
6
+ zenModeEnabled: boolean;
7
+ isLoading: boolean;
8
+ errorMessage: string | null;
9
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
10
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
11
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
12
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
13
+ isBindingEnabled: boolean;
14
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
15
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
16
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
17
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
18
+ elementType: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw";
19
+ elementLocked: boolean;
20
+ penMode: boolean;
21
+ penDetected: boolean;
22
+ exportBackground: boolean;
23
+ exportEmbedScene: boolean;
24
+ exportWithDarkMode: boolean;
25
+ exportScale: number;
26
+ currentItemStrokeColor: string;
27
+ currentItemBackgroundColor: string;
28
+ currentItemFillStyle: import("../element/types").FillStyle;
29
+ currentItemStrokeWidth: number;
30
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
31
+ currentItemRoughness: number;
32
+ currentItemOpacity: number;
33
+ currentItemFontFamily: number;
34
+ currentItemFontSize: number;
35
+ currentItemTextAlign: import("../element/types").TextAlign;
36
+ currentItemStrokeSharpness: import("../element/types").StrokeSharpness;
37
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
38
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
39
+ currentItemLinearStrokeSharpness: import("../element/types").StrokeSharpness;
40
+ viewBackgroundColor: string;
41
+ scrollX: number;
42
+ scrollY: number;
43
+ cursorButton: "up" | "down";
44
+ scrolledOutside: boolean;
45
+ name: string;
46
+ isResizing: boolean;
47
+ isRotating: boolean;
48
+ zoom: Readonly<{
49
+ value: import("../types").NormalizedZoomValue;
50
+ }>;
51
+ openMenu: "canvas" | "shape" | null;
52
+ openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
53
+ lastPointerDownWith: import("../element/types").PointerType;
54
+ selectedElementIds: {
55
+ [id: string]: boolean;
56
+ };
57
+ previousSelectedElementIds: {
58
+ [id: string]: boolean;
59
+ };
60
+ shouldCacheIgnoreZoom: boolean;
61
+ showHelpDialog: boolean;
62
+ toastMessage: string | null;
63
+ theme: string;
64
+ gridSize: number | null;
65
+ viewModeEnabled: boolean;
66
+ selectedGroupIds: {
67
+ [groupId: string]: boolean;
68
+ };
69
+ editingGroupId: string | null;
70
+ width: number;
71
+ height: number;
72
+ offsetTop: number;
73
+ offsetLeft: number;
74
+ isLibraryOpen: boolean;
75
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
76
+ collaborators: Map<string, import("../types").Collaborator>;
77
+ showStats: boolean;
78
+ currentChartType: import("../element/types").ChartType;
79
+ pasteDialog: {
80
+ shown: false;
81
+ data: null;
82
+ } | {
83
+ shown: true;
84
+ data: import("../charts").Spreadsheet;
85
+ };
86
+ pendingImageElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawImageElement> | null;
87
+ };
88
+ commitToHistory: false;
89
+ };
90
+ checked: (appState: Readonly<import("../types").AppState>) => boolean;
91
+ contextItemLabel: string;
92
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
93
+ } & {
94
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
95
+ };
@@ -0,0 +1,11 @@
1
+ export declare const actionUnbindText: {
2
+ name: "unbindText";
3
+ contextItemLabel: string;
4
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
5
+ elements: readonly import("../element/types").ExcalidrawElement[];
6
+ appState: Readonly<import("../types").AppState>;
7
+ commitToHistory: true;
8
+ };
9
+ } & {
10
+ keyTest?: undefined;
11
+ };
@@ -1,4 +1,55 @@
1
- export declare const actionSendBackward: import("./types").Action;
2
- export declare const actionBringForward: import("./types").Action;
3
- export declare const actionSendToBack: import("./types").Action;
4
- export declare const actionBringToFront: import("./types").Action;
1
+ import React from "react";
2
+ export declare const actionSendBackward: {
3
+ name: "sendBackward";
4
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
5
+ elements: (import("../element/types").ExcalidrawLinearElement | import("../element/types").ExcalidrawSelectionElement | import("../element/types").ExcalidrawRectangleElement | import("../element/types").ExcalidrawDiamondElement | import("../element/types").ExcalidrawEllipseElement | import("../element/types").ExcalidrawImageElement | import("../element/types").ExcalidrawTextElement | import("../element/types").ExcalidrawFreeDrawElement)[];
6
+ appState: Readonly<import("../types").AppState>;
7
+ commitToHistory: true;
8
+ };
9
+ contextItemLabel: string;
10
+ keyPriority: number;
11
+ keyTest: (event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean;
12
+ PanelComponent: ({ updateData, appState }: React.PropsWithChildren<import("./types").PanelComponentProps>) => JSX.Element;
13
+ } & {
14
+ keyTest?: ((event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean) | undefined;
15
+ };
16
+ export declare const actionBringForward: {
17
+ name: "bringForward";
18
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
19
+ elements: (import("../element/types").ExcalidrawLinearElement | import("../element/types").ExcalidrawSelectionElement | import("../element/types").ExcalidrawRectangleElement | import("../element/types").ExcalidrawDiamondElement | import("../element/types").ExcalidrawEllipseElement | import("../element/types").ExcalidrawImageElement | import("../element/types").ExcalidrawTextElement | import("../element/types").ExcalidrawFreeDrawElement)[];
20
+ appState: Readonly<import("../types").AppState>;
21
+ commitToHistory: true;
22
+ };
23
+ contextItemLabel: string;
24
+ keyPriority: number;
25
+ keyTest: (event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean;
26
+ PanelComponent: ({ updateData, appState }: React.PropsWithChildren<import("./types").PanelComponentProps>) => JSX.Element;
27
+ } & {
28
+ keyTest?: ((event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean) | undefined;
29
+ };
30
+ export declare const actionSendToBack: {
31
+ name: "sendToBack";
32
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
33
+ elements: readonly import("../element/types").ExcalidrawElement[];
34
+ appState: Readonly<import("../types").AppState>;
35
+ commitToHistory: true;
36
+ };
37
+ contextItemLabel: string;
38
+ keyTest: (event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean;
39
+ PanelComponent: ({ updateData, appState }: React.PropsWithChildren<import("./types").PanelComponentProps>) => JSX.Element;
40
+ } & {
41
+ keyTest?: ((event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean) | undefined;
42
+ };
43
+ export declare const actionBringToFront: {
44
+ name: "bringToFront";
45
+ perform: (elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
46
+ elements: readonly import("../element/types").ExcalidrawElement[];
47
+ appState: Readonly<import("../types").AppState>;
48
+ commitToHistory: true;
49
+ };
50
+ contextItemLabel: string;
51
+ keyTest: (event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean;
52
+ PanelComponent: ({ updateData, appState }: React.PropsWithChildren<import("./types").PanelComponentProps>) => JSX.Element;
53
+ } & {
54
+ keyTest?: ((event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean) | undefined;
55
+ };
@@ -18,3 +18,4 @@ export { actionCopy, actionCut, actionCopyAsPng, actionCopyAsSvg, } from "./acti
18
18
  export { actionToggleGridMode } from "./actionToggleGridMode";
19
19
  export { actionToggleZenMode } from "./actionToggleZenMode";
20
20
  export { actionToggleStats } from "./actionToggleStats";
21
+ export { actionUnbindText } from "./actionUnbindText";
@@ -1,3 +1,5 @@
1
1
  import { Action } from "./types";
2
2
  export declare let actions: readonly Action[];
3
- export declare const register: (action: Action) => Action;
3
+ export declare const register: <T extends Action>(action: T) => T & {
4
+ keyTest?: (unknown extends T["keyTest"] ? never : T["keyTest"]) | undefined;
5
+ };
@@ -14,7 +14,7 @@ export declare type ActionResult = {
14
14
  declare type ActionFn = (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
15
15
  export declare type UpdaterFn = (res: ActionResult) => void;
16
16
  export declare type ActionFilterFn = (action: Action) => void;
17
- export declare type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToSelection" | "changeFontFamily" | "changeTextAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeSharpness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme";
17
+ export declare type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToSelection" | "changeFontFamily" | "changeTextAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeSharpness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText";
18
18
  export declare type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
20
  appState: AppState;
@@ -31,7 +31,7 @@ export interface Action {
31
31
  perform: ActionFn;
32
32
  keyPriority?: number;
33
33
  keyTest?: (event: React.KeyboardEvent | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean;
34
- contextItemLabel?: string;
34
+ contextItemLabel?: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => string);
35
35
  contextItemPredicate?: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
36
36
  checked?: (appState: Readonly<AppState>) => boolean;
37
37
  }
@@ -6,10 +6,6 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
6
6
  viewBackgroundColor?: string | undefined;
7
7
  zoom?: Readonly<{
8
8
  value: NormalizedZoomValue;
9
- translation: Readonly<{
10
- x: number;
11
- y: number;
12
- }>;
13
9
  }> | undefined;
14
10
  shouldCacheIgnoreZoom?: boolean | undefined;
15
11
  theme?: string | undefined;