@zsviczian/excalidraw 0.15.3-obsidian → 0.16.1-obsidian-1

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 (148) hide show
  1. package/dist/excalidraw.development.js +318 -87
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/dist/excalidraw.production.min.js.LICENSE.txt +0 -9
  4. package/package.json +3 -3
  5. package/types/actions/actionAddToLibrary.d.ts +24 -3
  6. package/types/actions/actionAlign.d.ts +6 -6
  7. package/types/actions/actionBoundText.d.ts +16 -2
  8. package/types/actions/actionCanvas.d.ts +100 -16
  9. package/types/actions/actionClipboard.d.ts +40 -5
  10. package/types/actions/actionDeleteSelected.d.ts +25 -4
  11. package/types/actions/actionDistribute.d.ts +2 -2
  12. package/types/actions/actionDuplicateSelection.d.ts +1 -1
  13. package/types/actions/actionElementLock.d.ts +16 -2
  14. package/types/actions/actionExport.d.ts +78 -15
  15. package/types/actions/actionFinalize.d.ts +17 -3
  16. package/types/actions/actionFrame.d.ts +24 -3
  17. package/types/actions/actionGroup.d.ts +18 -4
  18. package/types/actions/actionLinearEditor.d.ts +8 -1
  19. package/types/actions/actionMenu.d.ts +26 -5
  20. package/types/actions/actionNavigate.d.ts +1 -1
  21. package/types/actions/actionProperties.d.ts +119 -26
  22. package/types/actions/actionSelectAll.d.ts +8 -1
  23. package/types/actions/actionStyles.d.ts +8 -1
  24. package/types/actions/actionToggleGridMode.d.ts +8 -1
  25. package/types/actions/actionToggleObjectsSnapMode.d.ts +169 -0
  26. package/types/actions/actionToggleStats.d.ts +8 -1
  27. package/types/actions/actionToggleViewMode.d.ts +8 -1
  28. package/types/actions/actionToggleZenMode.d.ts +8 -1
  29. package/types/actions/actionZindex.d.ts +4 -4
  30. package/types/actions/index.d.ts +1 -0
  31. package/types/actions/manager.d.ts +1 -1
  32. package/types/actions/shortcuts.d.ts +1 -1
  33. package/types/actions/types.d.ts +1 -1
  34. package/types/appState.d.ts +2 -1
  35. package/types/components/Actions.d.ts +6 -6
  36. package/types/components/ActiveConfirmDialog.d.ts +1 -1
  37. package/types/components/App.d.ts +22 -4
  38. package/types/components/Avatar.d.ts +1 -1
  39. package/types/components/BraveMeasureTextError.d.ts +1 -1
  40. package/types/components/Button.d.ts +1 -1
  41. package/types/components/ButtonIconSelect.d.ts +1 -1
  42. package/types/components/ColorPicker/ColorInput.d.ts +3 -1
  43. package/types/components/ColorPicker/ColorPicker.d.ts +1 -1
  44. package/types/components/ColorPicker/CustomColorList.d.ts +1 -1
  45. package/types/components/ColorPicker/HotkeyLabel.d.ts +1 -1
  46. package/types/components/ColorPicker/Picker.d.ts +1 -1
  47. package/types/components/ColorPicker/PickerColorList.d.ts +1 -1
  48. package/types/components/ColorPicker/PickerHeading.d.ts +1 -1
  49. package/types/components/ColorPicker/ShadeList.d.ts +1 -1
  50. package/types/components/ColorPicker/TopPicks.d.ts +1 -1
  51. package/types/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  52. package/types/components/ConfirmDialog.d.ts +1 -1
  53. package/types/components/ContextMenu.d.ts +1 -1
  54. package/types/components/DarkModeToggle.d.ts +1 -1
  55. package/types/components/DefaultSidebar.d.ts +1 -1
  56. package/types/components/Dialog.d.ts +1 -1
  57. package/types/components/DialogActionButton.d.ts +1 -1
  58. package/types/components/ErrorDialog.d.ts +1 -1
  59. package/types/components/ExcalidrawLogo.d.ts +15 -0
  60. package/types/components/EyeDropper.d.ts +18 -7
  61. package/types/components/FixedSideContainer.d.ts +1 -1
  62. package/types/components/HandButton.d.ts +1 -1
  63. package/types/components/HelpButton.d.ts +1 -1
  64. package/types/components/HelpDialog.d.ts +1 -1
  65. package/types/components/HintViewer.d.ts +1 -1
  66. package/types/components/IconPicker.d.ts +1 -1
  67. package/types/components/ImageExportDialog.d.ts +2 -2
  68. package/types/components/InitializeApp.d.ts +1 -1
  69. package/types/components/JSONExportDialog.d.ts +1 -1
  70. package/types/components/LayerUI.d.ts +1 -1
  71. package/types/components/LibraryMenu.d.ts +2 -2
  72. package/types/components/LibraryMenuBrowseButton.d.ts +1 -1
  73. package/types/components/LibraryMenuControlButtons.d.ts +1 -1
  74. package/types/components/LibraryMenuHeaderContent.d.ts +1 -1
  75. package/types/components/LibraryMenuItems.d.ts +1 -1
  76. package/types/components/LibraryMenuSection.d.ts +2 -2
  77. package/types/components/LibraryUnit.d.ts +2 -2
  78. package/types/components/LockButton.d.ts +1 -1
  79. package/types/components/MermaidToExcalidraw.d.ts +12 -0
  80. package/types/components/MobileMenu.d.ts +1 -1
  81. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +4 -4
  82. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +6 -6
  83. package/types/components/PasteChartDialog.d.ts +1 -1
  84. package/types/components/PenModeButton.d.ts +1 -1
  85. package/types/components/Popover.d.ts +1 -1
  86. package/types/components/ProjectName.d.ts +1 -1
  87. package/types/components/PublishLibrary.d.ts +1 -1
  88. package/types/components/RadioGroup.d.ts +1 -1
  89. package/types/components/Sidebar/Sidebar.d.ts +8 -8
  90. package/types/components/Sidebar/SidebarHeader.d.ts +1 -1
  91. package/types/components/Sidebar/SidebarTab.d.ts +1 -1
  92. package/types/components/Sidebar/SidebarTabTrigger.d.ts +1 -1
  93. package/types/components/Sidebar/SidebarTabTriggers.d.ts +1 -1
  94. package/types/components/Sidebar/SidebarTabs.d.ts +1 -1
  95. package/types/components/Sidebar/SidebarTrigger.d.ts +1 -1
  96. package/types/components/Spinner.d.ts +1 -1
  97. package/types/components/Stack.d.ts +2 -2
  98. package/types/components/Stats.d.ts +1 -1
  99. package/types/components/Switch.d.ts +1 -1
  100. package/types/components/Toast.d.ts +1 -1
  101. package/types/components/Tooltip.d.ts +1 -1
  102. package/types/components/canvases/InteractiveCanvas.d.ts +1 -1
  103. package/types/components/canvases/StaticCanvas.d.ts +1 -1
  104. package/types/components/dropdownMenu/DropdownMenu.d.ts +8 -8
  105. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +1 -1
  106. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +1 -1
  107. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +1 -1
  108. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +1 -1
  109. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +1 -1
  110. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +1 -1
  111. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +1 -1
  112. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +1 -1
  113. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -2
  114. package/types/components/footer/Footer.d.ts +1 -1
  115. package/types/components/footer/FooterCenter.d.ts +1 -1
  116. package/types/components/icons.d.ts +128 -126
  117. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +1 -1
  118. package/types/components/main-menu/DefaultItems.d.ts +10 -10
  119. package/types/components/main-menu/MainMenu.d.ts +6 -6
  120. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +9 -9
  121. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +3 -3
  122. package/types/components/welcome-screen/WelcomeScreen.d.ts +13 -13
  123. package/types/constants.d.ts +5 -0
  124. package/types/data/transform.d.ts +3 -1
  125. package/types/element/Hyperlink.d.ts +10 -3
  126. package/types/element/bounds.d.ts +4 -5
  127. package/types/element/dragElements.d.ts +11 -2
  128. package/types/element/embeddable.d.ts +8 -1
  129. package/types/element/linearElementEditor.d.ts +9 -2
  130. package/types/element/resizeElements.d.ts +2 -2
  131. package/types/frame.d.ts +1 -1
  132. package/types/hooks/useStable.d.ts +1 -0
  133. package/types/keys.d.ts +1 -0
  134. package/types/math.d.ts +2 -0
  135. package/types/packages/excalidraw/example/App.d.ts +1 -1
  136. package/types/packages/excalidraw/example/CustomFooter.d.ts +1 -1
  137. package/types/packages/excalidraw/example/MobileFooter.d.ts +1 -1
  138. package/types/packages/excalidraw/example/sidebar/ExampleSidebar.d.ts +1 -1
  139. package/types/packages/excalidraw/index.d.ts +1 -1
  140. package/types/packages/excalidraw/webpack.dev.config.d.ts +11 -0
  141. package/types/packages/excalidraw/webpack.prod.config.d.ts +11 -0
  142. package/types/packages/utils.d.ts +1 -0
  143. package/types/renderer/renderSnaps.d.ts +2 -0
  144. package/types/scene/selection.d.ts +1 -0
  145. package/types/shapes.d.ts +10 -10
  146. package/types/snapping.d.ts +108 -0
  147. package/types/types.d.ts +26 -3
  148. package/types/utils.d.ts +1 -1
@@ -0,0 +1,169 @@
1
+ export declare const actionToggleObjectsSnapMode: {
2
+ name: "objectsSnapMode";
3
+ viewMode: true;
4
+ trackEvent: {
5
+ category: "canvas";
6
+ predicate: (appState: Readonly<import("../types").AppState>) => boolean;
7
+ };
8
+ perform(elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>): {
9
+ appState: {
10
+ objectsSnapModeEnabled: boolean;
11
+ gridSize: null;
12
+ contextMenu: {
13
+ items: import("../components/ContextMenu").ContextMenuItems;
14
+ top: number;
15
+ left: number;
16
+ } | null;
17
+ showWelcomeScreen: boolean;
18
+ isLoading: boolean;
19
+ errorMessage: import("react").ReactNode;
20
+ activeEmbeddable: {
21
+ element: import("../element/types").NonDeletedExcalidrawElement;
22
+ state: "active" | "hover";
23
+ } | null;
24
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
25
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
26
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
27
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
28
+ isBindingEnabled: boolean;
29
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
30
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
31
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
32
+ frameRendering: {
33
+ enabled: boolean;
34
+ name: boolean;
35
+ outline: boolean;
36
+ clip: boolean;
37
+ };
38
+ editingFrame: string | null;
39
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
40
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
41
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
42
+ activeTool: {
43
+ lastActiveTool: import("../types").LastActiveTool;
44
+ locked: boolean;
45
+ } & ({
46
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand" | "mermaid";
47
+ customType: null;
48
+ } | {
49
+ type: "custom";
50
+ customType: string;
51
+ });
52
+ penMode: boolean;
53
+ penDetected: boolean;
54
+ exportBackground: boolean;
55
+ exportEmbedScene: boolean;
56
+ exportWithDarkMode: boolean;
57
+ exportScale: number;
58
+ currentItemStrokeColor: string;
59
+ currentItemBackgroundColor: string;
60
+ currentItemFillStyle: import("../element/types").FillStyle;
61
+ currentItemStrokeWidth: number;
62
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
63
+ currentItemRoughness: number;
64
+ currentItemOpacity: number;
65
+ currentItemFontFamily: number;
66
+ currentItemFontSize: number;
67
+ currentItemTextAlign: string;
68
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
69
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
70
+ currentItemRoundness: import("../element/types").StrokeRoundness;
71
+ viewBackgroundColor: string;
72
+ scrollX: number;
73
+ scrollY: number;
74
+ cursorButton: "up" | "down";
75
+ scrolledOutside: boolean;
76
+ name: string;
77
+ isResizing: boolean;
78
+ isRotating: boolean;
79
+ zoom: Readonly<{
80
+ value: import("../types").NormalizedZoomValue;
81
+ }>;
82
+ openMenu: "canvas" | "shape" | null;
83
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
84
+ openSidebar: {
85
+ name: string;
86
+ tab?: string | undefined;
87
+ } | null;
88
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
89
+ defaultSidebarDockedPreference: boolean;
90
+ lastPointerDownWith: import("../element/types").PointerType;
91
+ selectedElementIds: Readonly<{
92
+ [id: string]: true;
93
+ }>;
94
+ previousSelectedElementIds: {
95
+ [id: string]: true;
96
+ };
97
+ selectedElementsAreBeingDragged: boolean;
98
+ shouldCacheIgnoreZoom: boolean;
99
+ toast: {
100
+ message: string;
101
+ closable?: boolean | undefined;
102
+ duration?: number | undefined;
103
+ } | null;
104
+ zenModeEnabled: boolean;
105
+ theme: import("../element/types").Theme;
106
+ previousGridSize: number | null;
107
+ viewModeEnabled: boolean;
108
+ selectedGroupIds: {
109
+ [groupId: string]: boolean;
110
+ };
111
+ editingGroupId: string | null;
112
+ width: number;
113
+ height: number;
114
+ offsetTop: number;
115
+ offsetLeft: number;
116
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
117
+ collaborators: Map<string, import("../types").Collaborator>;
118
+ showStats: boolean;
119
+ currentChartType: import("../element/types").ChartType;
120
+ pasteDialog: {
121
+ shown: false;
122
+ data: null;
123
+ } | {
124
+ shown: true;
125
+ data: import("../charts").Spreadsheet;
126
+ };
127
+ pendingImageElementId: string | null;
128
+ showHyperlinkPopup: false | "editor" | "info";
129
+ linkOpacity: number;
130
+ trayModeEnabled: boolean;
131
+ colorPalette?: {
132
+ canvasBackground: import("../colors").ColorPaletteCustom;
133
+ elementBackground: import("../colors").ColorPaletteCustom;
134
+ elementStroke: import("../colors").ColorPaletteCustom;
135
+ topPicks: {
136
+ canvasBackground: [string, string, string, string, string];
137
+ elementStroke: [string, string, string, string, string];
138
+ elementBackground: [string, string, string, string, string];
139
+ };
140
+ } | undefined;
141
+ allowWheelZoom?: boolean | undefined;
142
+ allowPinchZoom?: boolean | undefined;
143
+ pinnedScripts?: string[] | undefined;
144
+ customPens?: any[] | undefined;
145
+ currentStrokeOptions?: any;
146
+ resetCustomPen?: any;
147
+ gridColor: {
148
+ Bold: string;
149
+ Regular: string;
150
+ MajorGridFrequency?: number | undefined;
151
+ };
152
+ dynamicStyle: string;
153
+ invertBindingBehaviour: boolean;
154
+ selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
155
+ snapLines: import("../snapping").SnapLine[];
156
+ originSnapOffset: {
157
+ x: number;
158
+ y: number;
159
+ } | null;
160
+ };
161
+ commitToHistory: false;
162
+ };
163
+ checked: (appState: Readonly<import("../types").AppState>) => boolean;
164
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
165
+ contextItemLabel: string;
166
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
167
+ } & {
168
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
169
+ };
@@ -41,7 +41,7 @@ export declare const actionToggleStats: {
41
41
  lastActiveTool: import("../types").LastActiveTool;
42
42
  locked: boolean;
43
43
  } & ({
44
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
44
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand" | "mermaid";
45
45
  customType: null;
46
46
  } | {
47
47
  type: "custom";
@@ -145,10 +145,17 @@ export declare const actionToggleStats: {
145
145
  gridColor: {
146
146
  Bold: string;
147
147
  Regular: string;
148
+ MajorGridFrequency?: number | undefined;
148
149
  };
149
150
  dynamicStyle: string;
150
151
  invertBindingBehaviour: boolean;
151
152
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
153
+ snapLines: import("../snapping").SnapLine[];
154
+ originSnapOffset: {
155
+ x: number;
156
+ y: number;
157
+ } | null;
158
+ objectsSnapModeEnabled: boolean;
152
159
  };
153
160
  commitToHistory: false;
154
161
  };
@@ -42,7 +42,7 @@ export declare const actionToggleViewMode: {
42
42
  lastActiveTool: import("../types").LastActiveTool;
43
43
  locked: boolean;
44
44
  } & ({
45
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
45
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand" | "mermaid";
46
46
  customType: null;
47
47
  } | {
48
48
  type: "custom";
@@ -146,10 +146,17 @@ export declare const actionToggleViewMode: {
146
146
  gridColor: {
147
147
  Bold: string;
148
148
  Regular: string;
149
+ MajorGridFrequency?: number | undefined;
149
150
  };
150
151
  dynamicStyle: string;
151
152
  invertBindingBehaviour: boolean;
152
153
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
154
+ snapLines: import("../snapping").SnapLine[];
155
+ originSnapOffset: {
156
+ x: number;
157
+ y: number;
158
+ } | null;
159
+ objectsSnapModeEnabled: boolean;
153
160
  };
154
161
  commitToHistory: false;
155
162
  };
@@ -42,7 +42,7 @@ export declare const actionToggleZenMode: {
42
42
  lastActiveTool: import("../types").LastActiveTool;
43
43
  locked: boolean;
44
44
  } & ({
45
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
45
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand" | "mermaid";
46
46
  customType: null;
47
47
  } | {
48
48
  type: "custom";
@@ -146,10 +146,17 @@ export declare const actionToggleZenMode: {
146
146
  gridColor: {
147
147
  Bold: string;
148
148
  Regular: string;
149
+ MajorGridFrequency?: number | undefined;
149
150
  };
150
151
  dynamicStyle: string;
151
152
  invertBindingBehaviour: boolean;
152
153
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
154
+ snapLines: import("../snapping").SnapLine[];
155
+ originSnapOffset: {
156
+ x: number;
157
+ y: number;
158
+ } | null;
159
+ objectsSnapModeEnabled: boolean;
153
160
  };
154
161
  commitToHistory: false;
155
162
  };
@@ -12,7 +12,7 @@ export declare const actionSendBackward: {
12
12
  contextItemLabel: string;
13
13
  keyPriority: number;
14
14
  keyTest: (event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean;
15
- PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => JSX.Element;
15
+ PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
16
16
  } & {
17
17
  keyTest?: ((event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean) | undefined;
18
18
  };
@@ -29,7 +29,7 @@ export declare const actionBringForward: {
29
29
  contextItemLabel: string;
30
30
  keyPriority: number;
31
31
  keyTest: (event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean;
32
- PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => JSX.Element;
32
+ PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
33
33
  } & {
34
34
  keyTest?: ((event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean) | undefined;
35
35
  };
@@ -45,7 +45,7 @@ export declare const actionSendToBack: {
45
45
  };
46
46
  contextItemLabel: string;
47
47
  keyTest: (event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean;
48
- PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => JSX.Element;
48
+ PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
49
49
  } & {
50
50
  keyTest?: ((event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean) | undefined;
51
51
  };
@@ -61,7 +61,7 @@ export declare const actionBringToFront: {
61
61
  };
62
62
  contextItemLabel: string;
63
63
  keyTest: (event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean;
64
- PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => JSX.Element;
64
+ PanelComponent: ({ updateData, appState }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
65
65
  } & {
66
66
  keyTest?: ((event: KeyboardEvent | React.KeyboardEvent<Element>) => boolean) | undefined;
67
67
  };
@@ -17,6 +17,7 @@ export { actionFlipHorizontal, actionFlipVertical } from "./actionFlip";
17
17
  export { actionCopy, actionCut, actionCopyAsPng, actionCopyAsSvg, copyText, } from "./actionClipboard";
18
18
  export { actionToggleGridMode } from "./actionToggleGridMode";
19
19
  export { actionToggleZenMode } from "./actionToggleZenMode";
20
+ export { actionToggleObjectsSnapMode } from "./actionToggleObjectsSnapMode";
20
21
  export { actionToggleStats } from "./actionToggleStats";
21
22
  export { actionUnbindText, actionBindText } from "./actionBoundText";
22
23
  export { actionLink } from "../element/Hyperlink";
@@ -16,6 +16,6 @@ export declare class ActionManager {
16
16
  /**
17
17
  * @param data additional data sent to the PanelComponent
18
18
  */
19
- renderAction: (name: ActionName, data?: PanelComponentProps["data"]) => JSX.Element | null;
19
+ renderAction: (name: ActionName, data?: PanelComponentProps["data"]) => import("react/jsx-runtime").JSX.Element | null;
20
20
  isActionEnabled: (action: Action) => boolean;
21
21
  }
@@ -1,4 +1,4 @@
1
1
  import { SubtypeOf } from "../utility-types";
2
2
  import { ActionName } from "./types";
3
- export type ShortcutName = SubtypeOf<ActionName, "toggleTheme" | "loadScene" | "clearCanvas" | "cut" | "copy" | "paste" | "copyStyles" | "pasteStyles" | "selectAll" | "deleteSelectedElements" | "duplicateSelection" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyAsPng" | "copyAsSvg" | "group" | "ungroup" | "gridMode" | "zenMode" | "stats" | "addToLibrary" | "viewMode" | "flipHorizontal" | "flipVertical" | "hyperlink" | "toggleElementLock"> | "saveScene" | "imageExport";
3
+ export type ShortcutName = SubtypeOf<ActionName, "toggleTheme" | "loadScene" | "clearCanvas" | "cut" | "copy" | "paste" | "copyStyles" | "pasteStyles" | "selectAll" | "deleteSelectedElements" | "duplicateSelection" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyAsPng" | "copyAsSvg" | "group" | "ungroup" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "addToLibrary" | "viewMode" | "flipHorizontal" | "flipVertical" | "hyperlink" | "toggleElementLock"> | "saveScene" | "imageExport";
4
4
  export declare const getShortcutFromShortcutName: (name: ShortcutName) => string;
@@ -15,7 +15,7 @@ export type ActionResult = {
15
15
  type ActionFn = (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
16
16
  export type UpdaterFn = (res: ActionResult) => void;
17
17
  export type ActionFilterFn = (action: Action) => void;
18
- export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "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" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer";
18
+ export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "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" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer";
19
19
  export type PanelComponentProps = {
20
20
  elements: readonly ExcalidrawElement[];
21
21
  appState: AppState;
@@ -7,7 +7,7 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
7
7
  lastActiveTool: import("./types").LastActiveTool;
8
8
  locked: boolean;
9
9
  } & ({
10
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
10
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand" | "mermaid";
11
11
  customType: null;
12
12
  } | {
13
13
  type: "custom";
@@ -64,6 +64,7 @@ export declare const clearAppStateForLocalStorage: (appState: Partial<AppState>)
64
64
  showStats?: boolean | undefined;
65
65
  currentChartType?: import("./element/types").ChartType | undefined;
66
66
  selectedLinearElement?: import("./element/linearElementEditor").LinearElementEditor | null | undefined;
67
+ objectsSnapModeEnabled?: boolean | undefined;
67
68
  };
68
69
  export declare const cleanAppStateForExport: (appState: Partial<AppState>) => {
69
70
  viewBackgroundColor?: string | undefined;
@@ -7,7 +7,7 @@ export declare const SelectedShapeActions: ({ appState, elements, renderAction,
7
7
  appState: UIAppState;
8
8
  elements: readonly ExcalidrawElement[];
9
9
  renderAction: ActionManager["renderAction"];
10
- }) => JSX.Element;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
11
  export declare const ShapesSwitcher: ({ interactiveCanvas, activeTool, setAppState, onImageAction, appState, }: {
12
12
  interactiveCanvas: HTMLCanvasElement | null;
13
13
  activeTool: UIAppState["activeTool"];
@@ -16,21 +16,21 @@ export declare const ShapesSwitcher: ({ interactiveCanvas, activeTool, setAppSta
16
16
  pointerType: PointerType | null;
17
17
  }) => void;
18
18
  appState: UIAppState;
19
- }) => JSX.Element;
19
+ }) => import("react/jsx-runtime").JSX.Element;
20
20
  export declare const ZoomActions: ({ renderAction, zoom, trayMode, }: {
21
21
  renderAction: ActionManager["renderAction"];
22
22
  zoom: Zoom;
23
23
  trayMode?: boolean | undefined;
24
- }) => JSX.Element;
24
+ }) => import("react/jsx-runtime").JSX.Element;
25
25
  export declare const UndoRedoActions: ({ renderAction, className, }: {
26
26
  renderAction: ActionManager["renderAction"];
27
27
  className?: string | undefined;
28
- }) => JSX.Element;
28
+ }) => import("react/jsx-runtime").JSX.Element;
29
29
  export declare const ExitZenModeAction: ({ actionManager, showExitZenModeBtn, }: {
30
30
  actionManager: ActionManager;
31
31
  showExitZenModeBtn: boolean;
32
- }) => JSX.Element;
32
+ }) => import("react/jsx-runtime").JSX.Element;
33
33
  export declare const FinalizeAction: ({ renderAction, className, }: {
34
34
  renderAction: ActionManager["renderAction"];
35
35
  className?: string | undefined;
36
- }) => JSX.Element;
36
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
1
  export declare const activeConfirmDialogAtom: import("jotai").PrimitiveAtom<"clearCanvas" | null> & {
2
2
  init: "clearCanvas" | null;
3
3
  };
4
- export declare const ActiveConfirmDialog: () => JSX.Element | null;
4
+ export declare const ActiveConfirmDialog: () => import("react/jsx-runtime").JSX.Element | null;
@@ -6,10 +6,11 @@ import { LinearElementEditor } from "../element/linearElementEditor";
6
6
  import { ExcalidrawElement, ExcalidrawLinearElement, NonDeletedExcalidrawElement } from "../element/types";
7
7
  import History from "../history";
8
8
  import Scene from "../scene/Scene";
9
+ import { SHAPES } from "../shapes";
9
10
  import { AppClassProperties, AppProps, AppState, ExcalidrawImperativeAPI, BinaryFiles, LibraryItems, SceneData, Device, FrameNameBoundsCache, SidebarName, SidebarTabName } from "../types";
10
11
  import { FileSystemHandle } from "../data/filesystem";
11
- export declare let showFourthFont: boolean;
12
12
  import { Renderer } from "../scene/Renderer";
13
+ export declare let showFourthFont: boolean;
13
14
  export declare const ExcalidrawContainerContext: React.Context<{
14
15
  container: HTMLDivElement | null;
15
16
  id: string | null;
@@ -73,7 +74,7 @@ declare class App extends React.Component<AppProps, AppState> {
73
74
  private getFrameNameDOMId;
74
75
  frameNameBoundsCache: FrameNameBoundsCache;
75
76
  private renderFrameNames;
76
- render(): JSX.Element;
77
+ render(): import("react/jsx-runtime").JSX.Element;
77
78
  focusContainer: AppClassProperties["focusContainer"];
78
79
  getSceneElementsIncludingDeleted: () => readonly ExcalidrawElement[];
79
80
  getSceneElements: () => readonly NonDeletedExcalidrawElement[];
@@ -108,7 +109,16 @@ declare class App extends React.Component<AppProps, AppState> {
108
109
  private onTouchStart;
109
110
  private onTouchEnd;
110
111
  pasteFromClipboard: (event: ClipboardEvent | null) => Promise<void>;
111
- private addElementsFromPasteOrLibrary;
112
+ addElementsFromPasteOrLibrary: (opts: {
113
+ elements: readonly ExcalidrawElement[];
114
+ files: BinaryFiles | null;
115
+ position: {
116
+ clientX: number;
117
+ clientY: number;
118
+ } | "cursor" | "center";
119
+ retainSeed?: boolean;
120
+ fitToContent?: boolean;
121
+ }) => void;
112
122
  private addTextFromPaste;
113
123
  setAppState: React.Component<any, AppState>["setState"];
114
124
  removePointer: (event: React.PointerEvent<HTMLElement> | PointerEvent) => void;
@@ -181,7 +191,12 @@ declare class App extends React.Component<AppProps, AppState> {
181
191
  private onKeyDown;
182
192
  private onWheel;
183
193
  private onKeyUp;
184
- private setActiveTool;
194
+ setActiveTool: (tool: {
195
+ type: (typeof SHAPES)[number]["value"] | "eraser" | "hand" | "frame" | "embeddable" | "mermaid";
196
+ } | {
197
+ type: "custom";
198
+ customType: string;
199
+ }) => void;
185
200
  private setCursor;
186
201
  private resetCursor;
187
202
  /**
@@ -232,6 +247,8 @@ declare class App extends React.Component<AppProps, AppState> {
232
247
  private getCurrentItemRoundness;
233
248
  private createGenericElementOnPointerDown;
234
249
  private createFrameElementOnPointerDown;
250
+ private maybeCacheReferenceSnapPoints;
251
+ private maybeCacheVisibleGaps;
235
252
  private onKeyDownFromPointerDownHandler;
236
253
  private onKeyUpFromPointerDownHandler;
237
254
  private onPointerMoveFromPointerDownHandler;
@@ -259,6 +276,7 @@ declare class App extends React.Component<AppProps, AppState> {
259
276
  private maybeSuggestBindingAtCursor;
260
277
  private maybeSuggestBindingsForLinearElementAtCoords;
261
278
  private maybeSuggestBindingForAll;
279
+ setSelection(elements: readonly NonDeletedExcalidrawElement[]): void;
262
280
  private clearSelection;
263
281
  private handleInteractiveCanvasRef;
264
282
  private handleAppOnDrop;
@@ -6,5 +6,5 @@ type AvatarProps = {
6
6
  name: string;
7
7
  src?: string;
8
8
  };
9
- export declare const Avatar: ({ color, onClick, name, src }: AvatarProps) => JSX.Element;
9
+ export declare const Avatar: ({ color, onClick, name, src }: AvatarProps) => import("react/jsx-runtime").JSX.Element;
10
10
  export {};
@@ -1,2 +1,2 @@
1
- declare const BraveMeasureTextError: () => JSX.Element;
1
+ declare const BraveMeasureTextError: () => import("react/jsx-runtime").JSX.Element;
2
2
  export default BraveMeasureTextError;
@@ -12,5 +12,5 @@ interface ButtonProps extends React.HTMLAttributes<HTMLButtonElement> {
12
12
  * Style can be customised using `className` or `style` prop.
13
13
  * Accepts all props that a regular `button` element accepts.
14
14
  */
15
- export declare const Button: ({ type, onSelect, selected, children, className, ...rest }: ButtonProps) => JSX.Element;
15
+ export declare const Button: ({ type, onSelect, selected, children, className, ...rest }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
16
16
  export {};
@@ -16,4 +16,4 @@ export declare const ButtonIconSelect: <T extends Object>(props: {
16
16
  } | {
17
17
  type: "button";
18
18
  onClick: (value: T, event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
19
- })) => JSX.Element;
19
+ })) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,9 @@
1
+ import { ColorPickerType } from "./colorPickerUtils";
1
2
  interface ColorInputProps {
2
3
  color: string;
3
4
  onChange: (color: string) => void;
4
5
  label: string;
6
+ colorPickerType: ColorPickerType;
5
7
  }
6
- export declare const ColorInput: ({ color, onChange, label }: ColorInputProps) => JSX.Element;
8
+ export declare const ColorInput: ({ color, onChange, label, colorPickerType, }: ColorInputProps) => import("react/jsx-runtime").JSX.Element;
7
9
  export {};
@@ -15,5 +15,5 @@ interface ColorPickerProps {
15
15
  topPicks?: ColorTuple;
16
16
  updateData: (formData?: any) => void;
17
17
  }
18
- export declare const ColorPicker: ({ type, color, onChange, label, elements, palette, topPicks, updateData, appState, }: ColorPickerProps) => JSX.Element;
18
+ export declare const ColorPicker: ({ type, color, onChange, label, elements, palette, topPicks, updateData, appState, }: ColorPickerProps) => import("react/jsx-runtime").JSX.Element;
19
19
  export {};
@@ -4,5 +4,5 @@ interface CustomColorListProps {
4
4
  onChange: (color: string) => void;
5
5
  label: string;
6
6
  }
7
- export declare const CustomColorList: ({ colors, color, onChange, label, }: CustomColorListProps) => JSX.Element;
7
+ export declare const CustomColorList: ({ colors, color, onChange, label, }: CustomColorListProps) => import("react/jsx-runtime").JSX.Element;
8
8
  export {};
@@ -4,5 +4,5 @@ interface HotkeyLabelProps {
4
4
  isCustomColor?: boolean;
5
5
  isShade?: boolean;
6
6
  }
7
- declare const HotkeyLabel: ({ color, keyLabel, isCustomColor, isShade, }: HotkeyLabelProps) => JSX.Element;
7
+ declare const HotkeyLabel: ({ color, keyLabel, isCustomColor, isShade, }: HotkeyLabelProps) => import("react/jsx-runtime").JSX.Element;
8
8
  export default HotkeyLabel;
@@ -14,5 +14,5 @@ interface PickerProps {
14
14
  onEyeDropperToggle: (force?: boolean) => void;
15
15
  onEscape: (event: React.KeyboardEvent | KeyboardEvent) => void;
16
16
  }
17
- export declare const Picker: ({ color, onChange, label, type, elements, palette, updateData, children, onEyeDropperToggle, onEscape, }: PickerProps) => JSX.Element;
17
+ export declare const Picker: ({ color, onChange, label, type, elements, palette, updateData, children, onEyeDropperToggle, onEscape, }: PickerProps) => import("react/jsx-runtime").JSX.Element;
18
18
  export {};
@@ -6,5 +6,5 @@ interface PickerColorListProps {
6
6
  label: string;
7
7
  activeShade: number;
8
8
  }
9
- declare const PickerColorList: ({ palette, color, onChange, label, activeShade, }: PickerColorListProps) => JSX.Element;
9
+ declare const PickerColorList: ({ palette, color, onChange, label, activeShade, }: PickerColorListProps) => import("react/jsx-runtime").JSX.Element;
10
10
  export default PickerColorList;
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from "react";
2
2
  declare const PickerHeading: ({ children }: {
3
3
  children: ReactNode;
4
- }) => JSX.Element;
4
+ }) => import("react/jsx-runtime").JSX.Element;
5
5
  export default PickerHeading;
@@ -4,5 +4,5 @@ interface ShadeListProps {
4
4
  onChange: (color: string) => void;
5
5
  palette: ColorPaletteCustom;
6
6
  }
7
- export declare const ShadeList: ({ hex, onChange, palette }: ShadeListProps) => JSX.Element;
7
+ export declare const ShadeList: ({ hex, onChange, palette }: ShadeListProps) => import("react/jsx-runtime").JSX.Element;
8
8
  export {};
@@ -5,5 +5,5 @@ interface TopPicksProps {
5
5
  activeColor: string;
6
6
  topPicks?: readonly string[];
7
7
  }
8
- export declare const TopPicks: ({ onChange, type, activeColor, topPicks, }: TopPicksProps) => JSX.Element | null;
8
+ export declare const TopPicks: ({ onChange, type, activeColor, topPicks, }: TopPicksProps) => import("react/jsx-runtime").JSX.Element | null;
9
9
  export {};
@@ -17,5 +17,5 @@ export type ActiveColorPickerSectionAtomType = "custom" | "baseColors" | "shades
17
17
  export declare const activeColorPickerSectionAtom: import("jotai").PrimitiveAtom<ActiveColorPickerSectionAtomType> & {
18
18
  init: ActiveColorPickerSectionAtomType;
19
19
  };
20
- export declare const getContrastYIQ: (bgHex: string, isCustomColor: boolean) => "white" | "black";
20
+ export declare const getContrastYIQ: (bgHex: string, isCustomColor: boolean) => "black" | "white";
21
21
  export type ColorPickerType = "canvasBackground" | "elementBackground" | "elementStroke";
@@ -6,5 +6,5 @@ interface Props extends Omit<DialogProps, "onCloseRequest"> {
6
6
  confirmText?: string;
7
7
  cancelText?: string;
8
8
  }
9
- declare const ConfirmDialog: (props: Props) => JSX.Element;
9
+ declare const ConfirmDialog: (props: Props) => import("react/jsx-runtime").JSX.Element;
10
10
  export default ConfirmDialog;
@@ -11,5 +11,5 @@ type ContextMenuProps = {
11
11
  left: number;
12
12
  };
13
13
  export declare const CONTEXT_MENU_SEPARATOR = "separator";
14
- export declare const ContextMenu: React.MemoExoticComponent<({ actionManager, items, top, left }: ContextMenuProps) => JSX.Element>;
14
+ export declare const ContextMenu: React.MemoExoticComponent<({ actionManager, items, top, left }: ContextMenuProps) => import("react/jsx-runtime").JSX.Element>;
15
15
  export {};
@@ -4,4 +4,4 @@ export declare const DarkModeToggle: (props: {
4
4
  value: Theme;
5
5
  onChange: (value: Theme) => void;
6
6
  title?: string | undefined;
7
- }) => JSX.Element;
7
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -23,7 +23,7 @@ export declare const DefaultSidebar: import("react").FC<Omit<MarkOptional<Omit<{
23
23
  TabTriggers: {
24
24
  ({ children, ...rest }: {
25
25
  children: React.ReactNode;
26
- } & import("react").HTMLAttributes<HTMLDivElement>): JSX.Element;
26
+ } & import("react").HTMLAttributes<HTMLDivElement>): import("react/jsx-runtime").JSX.Element;
27
27
  displayName: string;
28
28
  };
29
29
  };
@@ -10,4 +10,4 @@ export interface DialogProps {
10
10
  autofocus?: boolean;
11
11
  closeOnClickOutside?: boolean;
12
12
  }
13
- export declare const Dialog: (props: DialogProps) => JSX.Element;
13
+ export declare const Dialog: (props: DialogProps) => import("react/jsx-runtime").JSX.Element;
@@ -6,5 +6,5 @@ interface DialogActionButtonProps {
6
6
  actionType?: "primary" | "danger";
7
7
  isLoading?: boolean;
8
8
  }
9
- declare const DialogActionButton: ({ label, onClick, className, children, actionType, type, isLoading, ...rest }: DialogActionButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement>) => JSX.Element;
9
+ declare const DialogActionButton: ({ label, onClick, className, children, actionType, type, isLoading, ...rest }: DialogActionButtonProps & React.ButtonHTMLAttributes<HTMLButtonElement>) => import("react/jsx-runtime").JSX.Element;
10
10
  export default DialogActionButton;