@dwelle/excalidraw 0.4.0-e3bee83 → 0.4.0-e587816

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 (220) hide show
  1. package/CHANGELOG.md +525 -0
  2. package/README.md +18 -1820
  3. package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js → vendor-d415b28e9024dee4bb1b.js} +2 -2
  4. package/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.js → vendor-a14cd58fa2db417e42b2.js} +6 -6
  5. package/dist/excalidraw.development.js +3071 -1566
  6. package/dist/excalidraw.production.min.js +1 -1
  7. package/dist/excalidraw.production.min.js.LICENSE.txt +20 -0
  8. package/main.js +1 -8
  9. package/package.json +9 -4
  10. package/types/actions/actionAddToLibrary.d.ts +103 -55
  11. package/types/actions/actionAlign.d.ts +33 -28
  12. package/types/actions/actionBoundText.d.ts +175 -22
  13. package/types/actions/actionCanvas.d.ts +680 -170
  14. package/types/actions/actionClipboard.d.ts +174 -100
  15. package/types/actions/actionDeleteSelected.d.ts +102 -60
  16. package/types/actions/actionDistribute.d.ts +11 -12
  17. package/types/actions/actionDuplicateSelection.d.ts +3 -4
  18. package/types/actions/actionElementLock.d.ts +271 -0
  19. package/types/actions/actionExport.d.ts +363 -221
  20. package/types/actions/actionFinalize.d.ts +70 -42
  21. package/types/actions/actionFlip.d.ts +8 -11
  22. package/types/actions/actionFrame.d.ts +423 -0
  23. package/types/actions/actionGroup.d.ts +250 -13
  24. package/types/actions/actionHistory.d.ts +1 -1
  25. package/types/actions/actionLinearEditor.d.ts +37 -21
  26. package/types/actions/actionMenu.d.ts +108 -62
  27. package/types/actions/actionNavigate.d.ts +1 -1
  28. package/types/actions/actionProperties.d.ts +465 -256
  29. package/types/actions/actionSelectAll.d.ts +123 -4
  30. package/types/actions/actionStyles.d.ts +39 -24
  31. package/types/actions/actionToggleGridMode.d.ts +37 -22
  32. package/types/actions/{actionToggleLock.d.ts → actionToggleObjectsSnapMode.d.ts} +49 -32
  33. package/types/actions/actionToggleStats.d.ts +37 -22
  34. package/types/actions/actionToggleViewMode.d.ts +37 -22
  35. package/types/actions/actionToggleZenMode.d.ts +37 -22
  36. package/types/actions/actionZindex.d.ts +12 -12
  37. package/types/actions/index.d.ts +2 -1
  38. package/types/actions/manager.d.ts +1 -1
  39. package/types/actions/shortcuts.d.ts +2 -1
  40. package/types/actions/types.d.ts +11 -9
  41. package/types/appState.d.ts +18 -18
  42. package/types/charts.d.ts +2 -2
  43. package/types/clients.d.ts +5 -6
  44. package/types/clipboard.d.ts +8 -7
  45. package/types/colors.d.ts +60 -5
  46. package/types/components/Actions.d.ts +7 -12
  47. package/types/components/ActiveConfirmDialog.d.ts +4 -0
  48. package/types/components/App.d.ts +93 -35
  49. package/types/components/Avatar.d.ts +1 -2
  50. package/types/components/BraveMeasureTextError.d.ts +2 -0
  51. package/types/components/Button.d.ts +3 -2
  52. package/types/components/ButtonIconSelect.d.ts +11 -3
  53. package/types/components/Card.d.ts +0 -1
  54. package/types/components/ColorPicker/ColorInput.d.ts +9 -0
  55. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  56. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  57. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  58. package/types/components/ColorPicker/Picker.d.ts +18 -0
  59. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  60. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  61. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  62. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  63. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  64. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +20 -0
  65. package/types/components/ContextMenu.d.ts +3 -3
  66. package/types/components/DefaultSidebar.d.ts +29 -0
  67. package/types/components/Dialog.d.ts +3 -4
  68. package/types/components/ErrorDialog.d.ts +3 -2
  69. package/types/components/ExcalidrawLogo.d.ts +15 -0
  70. package/types/components/EyeDropper.d.ts +28 -0
  71. package/types/components/FilledButton.d.ts +17 -0
  72. package/types/components/FixedSideContainer.d.ts +1 -1
  73. package/types/components/HandButton.d.ts +10 -0
  74. package/types/components/HelpButton.d.ts +1 -2
  75. package/types/components/HintViewer.d.ts +4 -5
  76. package/types/components/HomeButton.d.ts +1 -1
  77. package/types/components/ImageExportDialog.d.ts +8 -13
  78. package/types/components/Island.d.ts +1 -1
  79. package/types/components/JSONExportDialog.d.ts +5 -5
  80. package/types/components/LaserTool/LaserPathManager.d.ts +28 -0
  81. package/types/components/LaserTool/LaserPointerButton.d.ts +10 -0
  82. package/types/components/LaserTool/LaserTool.d.ts +7 -0
  83. package/types/components/LayerUI.d.ts +9 -15
  84. package/types/components/LibraryMenu.d.ts +13 -14
  85. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  86. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  87. package/types/components/LibraryMenuHeaderContent.d.ts +10 -28
  88. package/types/components/LibraryMenuItems.d.ts +6 -7
  89. package/types/components/LibraryMenuSection.d.ts +22 -0
  90. package/types/components/LibraryUnit.d.ts +6 -3
  91. package/types/components/LoadingMessage.d.ts +0 -1
  92. package/types/components/LockButton.d.ts +1 -2
  93. package/types/components/MobileMenu.d.ts +8 -11
  94. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  95. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  96. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  97. package/types/components/PasteChartDialog.d.ts +4 -5
  98. package/types/components/PenModeButton.d.ts +1 -1
  99. package/types/components/Popover.d.ts +1 -1
  100. package/types/components/ProjectName.d.ts +2 -1
  101. package/types/components/PublishLibrary.d.ts +2 -2
  102. package/types/components/RadioGroup.d.ts +12 -0
  103. package/types/components/Section.d.ts +1 -1
  104. package/types/components/Sidebar/Sidebar.d.ts +66 -63
  105. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  106. package/types/components/Sidebar/SidebarTab.d.ts +8 -0
  107. package/types/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
  108. package/types/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
  109. package/types/components/Sidebar/SidebarTabs.d.ts +6 -0
  110. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  111. package/types/components/Sidebar/common.d.ts +24 -7
  112. package/types/components/Spinner.d.ts +2 -1
  113. package/types/components/Stack.d.ts +4 -3
  114. package/types/components/Stats.d.ts +3 -3
  115. package/types/components/Switch.d.ts +9 -0
  116. package/types/components/ToolButton.d.ts +6 -5
  117. package/types/components/Tooltip.d.ts +1 -1
  118. package/types/components/Trans.d.ts +9 -0
  119. package/types/components/canvases/InteractiveCanvas.d.ts +27 -0
  120. package/types/components/canvases/StaticCanvas.d.ts +18 -0
  121. package/types/components/canvases/index.d.ts +3 -0
  122. package/types/components/dropdownMenu/DropdownMenu.d.ts +15 -9
  123. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +7 -3
  124. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +4 -4
  125. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -1
  126. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +4 -2
  127. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -2
  128. package/types/components/dropdownMenu/common.d.ts +6 -0
  129. package/types/components/footer/Footer.d.ts +4 -5
  130. package/types/components/hoc/withInternalFallback.d.ts +4 -0
  131. package/types/components/icons.d.ts +16 -1
  132. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -1
  133. package/types/components/main-menu/MainMenu.d.ts +22 -13
  134. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -1
  135. package/types/components/welcome-screen/WelcomeScreen.d.ts +2 -3
  136. package/types/constants.d.ts +94 -10
  137. package/types/context/tunnels.d.ts +19 -0
  138. package/types/context/ui-appState.d.ts +4 -0
  139. package/types/cursor.d.ts +5 -0
  140. package/types/data/blob.d.ts +5 -3
  141. package/types/data/encode.d.ts +1 -1
  142. package/types/data/filesystem.d.ts +2 -1
  143. package/types/data/library.d.ts +3 -45
  144. package/types/data/restore.d.ts +10 -4
  145. package/types/data/transform.d.ts +73 -0
  146. package/types/data/types.d.ts +3 -5
  147. package/types/data/url.d.ts +7 -0
  148. package/types/element/Hyperlink.d.ts +48 -29
  149. package/types/element/binding.d.ts +4 -3
  150. package/types/element/bounds.d.ts +40 -10
  151. package/types/element/collision.d.ts +7 -7
  152. package/types/element/dragElements.d.ts +12 -2
  153. package/types/element/embeddable.d.ts +153 -0
  154. package/types/element/image.d.ts +11 -1
  155. package/types/element/index.d.ts +3 -2
  156. package/types/element/linearElementEditor.d.ts +43 -27
  157. package/types/element/mutateElement.d.ts +3 -2
  158. package/types/element/newElement.d.ts +48 -15
  159. package/types/element/resizeElements.d.ts +3 -2
  160. package/types/element/resizeTest.d.ts +2 -1
  161. package/types/element/showSelectedShapeActions.d.ts +2 -2
  162. package/types/element/sizeHelpers.d.ts +8 -1
  163. package/types/element/sortElements.d.ts +2 -0
  164. package/types/element/textElement.d.ts +43 -17
  165. package/types/element/textWysiwyg.d.ts +1 -1
  166. package/types/element/transformHandles.d.ts +16 -8
  167. package/types/element/typeChecks.d.ts +5 -2
  168. package/types/element/types.d.ts +59 -35
  169. package/types/emitter.d.ts +1 -2
  170. package/types/errors.d.ts +1 -1
  171. package/types/frame.d.ts +46 -0
  172. package/types/ga.d.ts +5 -5
  173. package/types/groups.d.ts +15 -11
  174. package/types/history.d.ts +3 -3
  175. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  176. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  177. package/types/hooks/useOutsideClick.d.ts +19 -2
  178. package/types/hooks/useScrollPosition.d.ts +1 -0
  179. package/types/hooks/useStable.d.ts +1 -0
  180. package/types/hooks/useTransition.d.ts +2 -0
  181. package/types/i18n.d.ts +11 -2
  182. package/types/jotai.d.ts +20 -108
  183. package/types/keys.d.ts +5 -4
  184. package/types/math.d.ts +5 -0
  185. package/types/packages/bbox.d.ts +11 -0
  186. package/types/packages/excalidraw/example/App.d.ts +7 -1
  187. package/types/packages/excalidraw/example/initialData.d.ts +182 -64
  188. package/types/packages/excalidraw/index.d.ts +11 -4
  189. package/types/packages/excalidraw/main.d.ts +3 -1
  190. package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
  191. package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
  192. package/types/packages/utils.d.ts +11 -2
  193. package/types/packages/withinBounds.d.ts +19 -0
  194. package/types/renderer/renderElement.d.ts +12 -22
  195. package/types/renderer/renderScene.d.ts +19 -27
  196. package/types/renderer/renderSnaps.d.ts +2 -0
  197. package/types/renderer/roundRect.d.ts +1 -1
  198. package/types/scene/Renderer.d.ts +25 -0
  199. package/types/scene/Scene.d.ts +27 -5
  200. package/types/scene/Shape.d.ts +12 -0
  201. package/types/scene/ShapeCache.d.ts +20 -0
  202. package/types/scene/comparisons.d.ts +0 -1
  203. package/types/scene/export.d.ts +50 -11
  204. package/types/scene/index.d.ts +1 -1
  205. package/types/scene/scroll.d.ts +1 -1
  206. package/types/scene/scrollbars.d.ts +2 -6
  207. package/types/scene/selection.d.ts +27 -6
  208. package/types/scene/types.d.ts +70 -34
  209. package/types/snapping.d.ts +108 -0
  210. package/types/types.d.ts +200 -84
  211. package/types/utility-types.d.ts +24 -0
  212. package/types/utils.d.ts +73 -29
  213. package/types/zindex.d.ts +4 -4
  214. package/types/components/ColorPicker.d.ts +0 -14
  215. package/types/components/LibraryButton.d.ts +0 -8
  216. package/types/components/SingleLibraryItem.d.ts +0 -10
  217. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
  218. /package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
  219. /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
  220. /package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.d.ts → vendor-a14cd58fa2db417e42b2.d.ts} +0 -0
@@ -1,16 +1,135 @@
1
- /// <reference types="react" />
2
1
  import { ExcalidrawElement } from "../element/types";
2
+ import { LinearElementEditor } from "../element/linearElementEditor";
3
3
  export declare const actionSelectAll: {
4
4
  name: "selectAll";
5
5
  trackEvent: {
6
6
  category: "canvas";
7
7
  };
8
8
  perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>, value: any, app: import("../types").AppClassProperties) => false | {
9
- appState: import("../types").AppState;
9
+ appState: {
10
+ selectedLinearElement: LinearElementEditor | null;
11
+ selectedElementIds: Readonly<{
12
+ [id: string]: true;
13
+ }>;
14
+ selectedGroupIds: {
15
+ [groupId: string]: boolean;
16
+ };
17
+ editingGroupId: string | null;
18
+ contextMenu: {
19
+ items: import("../components/ContextMenu").ContextMenuItems;
20
+ top: number;
21
+ left: number;
22
+ } | null;
23
+ showWelcomeScreen: boolean;
24
+ isLoading: boolean;
25
+ errorMessage: import("react").ReactNode;
26
+ activeEmbeddable: {
27
+ element: import("../element/types").NonDeletedExcalidrawElement;
28
+ state: "active" | "hover";
29
+ } | null;
30
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
31
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
32
+ multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
33
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
34
+ isBindingEnabled: boolean;
35
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
36
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
37
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
38
+ frameRendering: {
39
+ enabled: boolean;
40
+ name: boolean;
41
+ outline: boolean;
42
+ clip: boolean;
43
+ };
44
+ editingFrame: string | null;
45
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
46
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
47
+ editingLinearElement: LinearElementEditor | null;
48
+ activeTool: {
49
+ lastActiveTool: import("../types").ActiveTool | null;
50
+ locked: boolean;
51
+ } & import("../types").ActiveTool;
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
+ previousSelectedElementIds: {
92
+ [id: string]: true;
93
+ };
94
+ selectedElementsAreBeingDragged: boolean;
95
+ shouldCacheIgnoreZoom: boolean;
96
+ toast: {
97
+ message: string;
98
+ closable?: boolean | undefined;
99
+ duration?: number | undefined;
100
+ } | null;
101
+ zenModeEnabled: boolean;
102
+ theme: import("../element/types").Theme;
103
+ gridSize: number | null;
104
+ viewModeEnabled: boolean;
105
+ width: number;
106
+ height: number;
107
+ offsetTop: number;
108
+ offsetLeft: number;
109
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
110
+ collaborators: Map<string, import("../types").Collaborator>;
111
+ showStats: boolean;
112
+ currentChartType: import("../element/types").ChartType;
113
+ pasteDialog: {
114
+ shown: false;
115
+ data: null;
116
+ } | {
117
+ shown: true;
118
+ data: import("../charts").Spreadsheet;
119
+ };
120
+ pendingImageElementId: string | null;
121
+ showHyperlinkPopup: false | "editor" | "info";
122
+ snapLines: readonly import("../snapping").SnapLine[];
123
+ originSnapOffset: {
124
+ x: number;
125
+ y: number;
126
+ } | null;
127
+ objectsSnapModeEnabled: boolean;
128
+ };
10
129
  commitToHistory: true;
11
130
  };
12
131
  contextItemLabel: string;
13
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
132
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
14
133
  } & {
15
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
134
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
16
135
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare let copiedStyles: string;
3
2
  export declare const actionCopyStyles: {
4
3
  name: "copyStyles";
@@ -17,7 +16,11 @@ export declare const actionCopyStyles: {
17
16
  } | null;
18
17
  showWelcomeScreen: boolean;
19
18
  isLoading: boolean;
20
- errorMessage: string | null;
19
+ errorMessage: import("react").ReactNode;
20
+ activeEmbeddable: {
21
+ element: import("../element/types").NonDeletedExcalidrawElement;
22
+ state: "active" | "hover";
23
+ } | null;
21
24
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
22
25
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
23
26
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -25,19 +28,21 @@ export declare const actionCopyStyles: {
25
28
  isBindingEnabled: boolean;
26
29
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
27
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;
28
40
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
29
41
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
30
42
  activeTool: {
31
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
32
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
43
+ lastActiveTool: import("../types").ActiveTool | null;
33
44
  locked: boolean;
34
- customType: null;
35
- } | {
36
- type: "custom";
37
- customType: string;
38
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
39
- locked: boolean;
40
- };
45
+ } & import("../types").ActiveTool;
41
46
  penMode: boolean;
42
47
  penDetected: boolean;
43
48
  exportBackground: boolean;
@@ -69,20 +74,24 @@ export declare const actionCopyStyles: {
69
74
  value: import("../types").NormalizedZoomValue;
70
75
  }>;
71
76
  openMenu: "canvas" | "shape" | null;
72
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
73
- openSidebar: "library" | "customSidebar" | null;
77
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
78
+ openSidebar: {
79
+ name: string;
80
+ tab?: string | undefined;
81
+ } | null;
74
82
  openDialog: "imageExport" | "help" | "jsonExport" | null;
75
- isSidebarDocked: boolean;
83
+ defaultSidebarDockedPreference: boolean;
76
84
  lastPointerDownWith: import("../element/types").PointerType;
77
- selectedElementIds: {
78
- [id: string]: boolean;
79
- };
85
+ selectedElementIds: Readonly<{
86
+ [id: string]: true;
87
+ }>;
80
88
  previousSelectedElementIds: {
81
- [id: string]: boolean;
89
+ [id: string]: true;
82
90
  };
91
+ selectedElementsAreBeingDragged: boolean;
83
92
  shouldCacheIgnoreZoom: boolean;
84
93
  zenModeEnabled: boolean;
85
- theme: string;
94
+ theme: import("../element/types").Theme;
86
95
  gridSize: number | null;
87
96
  viewModeEnabled: boolean;
88
97
  selectedGroupIds: {
@@ -105,15 +114,21 @@ export declare const actionCopyStyles: {
105
114
  data: import("../charts").Spreadsheet;
106
115
  };
107
116
  pendingImageElementId: string | null;
108
- showHyperlinkPopup: false | "info" | "editor";
117
+ showHyperlinkPopup: false | "editor" | "info";
109
118
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
119
+ snapLines: readonly import("../snapping").SnapLine[];
120
+ originSnapOffset: {
121
+ x: number;
122
+ y: number;
123
+ } | null;
124
+ objectsSnapModeEnabled: boolean;
110
125
  };
111
126
  commitToHistory: false;
112
127
  };
113
128
  contextItemLabel: string;
114
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
129
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
115
130
  } & {
116
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
131
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
117
132
  };
118
133
  export declare const actionPasteStyles: {
119
134
  name: "pasteStyles";
@@ -128,7 +143,7 @@ export declare const actionPasteStyles: {
128
143
  commitToHistory: true;
129
144
  };
130
145
  contextItemLabel: string;
131
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
146
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
132
147
  } & {
133
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
148
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
134
149
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { AppState } from "../types";
3
2
  export declare const actionToggleGridMode: {
4
3
  name: "gridMode";
@@ -10,6 +9,7 @@ export declare const actionToggleGridMode: {
10
9
  perform(elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<AppState>): {
11
10
  appState: {
12
11
  gridSize: number | null;
12
+ objectsSnapModeEnabled: false;
13
13
  contextMenu: {
14
14
  items: import("../components/ContextMenu").ContextMenuItems;
15
15
  top: number;
@@ -17,7 +17,11 @@ export declare const actionToggleGridMode: {
17
17
  } | null;
18
18
  showWelcomeScreen: boolean;
19
19
  isLoading: boolean;
20
- errorMessage: string | null;
20
+ errorMessage: import("react").ReactNode;
21
+ activeEmbeddable: {
22
+ element: import("../element/types").NonDeletedExcalidrawElement;
23
+ state: "active" | "hover";
24
+ } | null;
21
25
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
22
26
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
23
27
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -25,19 +29,21 @@ export declare const actionToggleGridMode: {
25
29
  isBindingEnabled: boolean;
26
30
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
27
31
  suggestedBindings: import("../element/binding").SuggestedBinding[];
32
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
33
+ frameRendering: {
34
+ enabled: boolean;
35
+ name: boolean;
36
+ outline: boolean;
37
+ clip: boolean;
38
+ };
39
+ editingFrame: string | null;
40
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
28
41
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
29
42
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
30
43
  activeTool: {
31
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
32
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
44
+ lastActiveTool: import("../types").ActiveTool | null;
33
45
  locked: boolean;
34
- customType: null;
35
- } | {
36
- type: "custom";
37
- customType: string;
38
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
39
- locked: boolean;
40
- };
46
+ } & import("../types").ActiveTool;
41
47
  penMode: boolean;
42
48
  penDetected: boolean;
43
49
  exportBackground: boolean;
@@ -69,17 +75,21 @@ export declare const actionToggleGridMode: {
69
75
  value: import("../types").NormalizedZoomValue;
70
76
  }>;
71
77
  openMenu: "canvas" | "shape" | null;
72
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
73
- openSidebar: "library" | "customSidebar" | null;
78
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
79
+ openSidebar: {
80
+ name: string;
81
+ tab?: string | undefined;
82
+ } | null;
74
83
  openDialog: "imageExport" | "help" | "jsonExport" | null;
75
- isSidebarDocked: boolean;
84
+ defaultSidebarDockedPreference: boolean;
76
85
  lastPointerDownWith: import("../element/types").PointerType;
77
- selectedElementIds: {
78
- [id: string]: boolean;
79
- };
86
+ selectedElementIds: Readonly<{
87
+ [id: string]: true;
88
+ }>;
80
89
  previousSelectedElementIds: {
81
- [id: string]: boolean;
90
+ [id: string]: true;
82
91
  };
92
+ selectedElementsAreBeingDragged: boolean;
83
93
  shouldCacheIgnoreZoom: boolean;
84
94
  toast: {
85
95
  message: string;
@@ -87,7 +97,7 @@ export declare const actionToggleGridMode: {
87
97
  duration?: number | undefined;
88
98
  } | null;
89
99
  zenModeEnabled: boolean;
90
- theme: string;
100
+ theme: import("../element/types").Theme;
91
101
  viewModeEnabled: boolean;
92
102
  selectedGroupIds: {
93
103
  [groupId: string]: boolean;
@@ -109,15 +119,20 @@ export declare const actionToggleGridMode: {
109
119
  data: import("../charts").Spreadsheet;
110
120
  };
111
121
  pendingImageElementId: string | null;
112
- showHyperlinkPopup: false | "info" | "editor";
122
+ showHyperlinkPopup: false | "editor" | "info";
113
123
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
124
+ snapLines: readonly import("../snapping").SnapLine[];
125
+ originSnapOffset: {
126
+ x: number;
127
+ y: number;
128
+ } | null;
114
129
  };
115
130
  commitToHistory: false;
116
131
  };
117
132
  checked: (appState: AppState) => boolean;
118
133
  predicate: (element: readonly import("../element/types").ExcalidrawElement[], appState: AppState, props: import("../types").ExcalidrawProps) => boolean;
119
134
  contextItemLabel: string;
120
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
135
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
121
136
  } & {
122
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
137
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
123
138
  };
@@ -1,14 +1,14 @@
1
- /// <reference types="react" />
2
- import { ExcalidrawElement } from "../element/types";
3
- export declare const actionToggleLock: {
4
- name: "toggleLock";
1
+ export declare const actionToggleObjectsSnapMode: {
2
+ name: "objectsSnapMode";
3
+ viewMode: true;
5
4
  trackEvent: {
6
- category: "element";
5
+ category: "canvas";
6
+ predicate: (appState: Readonly<import("../types").AppState>) => boolean;
7
7
  };
8
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => false | {
9
- elements: ExcalidrawElement[];
8
+ perform(elements: readonly import("../element/types").ExcalidrawElement[], appState: Readonly<import("../types").AppState>): {
10
9
  appState: {
11
- selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
10
+ objectsSnapModeEnabled: boolean;
11
+ gridSize: null;
12
12
  contextMenu: {
13
13
  items: import("../components/ContextMenu").ContextMenuItems;
14
14
  top: number;
@@ -16,7 +16,11 @@ export declare const actionToggleLock: {
16
16
  } | null;
17
17
  showWelcomeScreen: boolean;
18
18
  isLoading: boolean;
19
- errorMessage: string | null;
19
+ errorMessage: import("react").ReactNode;
20
+ activeEmbeddable: {
21
+ element: import("../element/types").NonDeletedExcalidrawElement;
22
+ state: "active" | "hover";
23
+ } | null;
20
24
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
21
25
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
22
26
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -24,19 +28,21 @@ export declare const actionToggleLock: {
24
28
  isBindingEnabled: boolean;
25
29
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
26
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;
27
40
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
28
41
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
29
42
  activeTool: {
30
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
31
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
43
+ lastActiveTool: import("../types").ActiveTool | null;
32
44
  locked: boolean;
33
- customType: null;
34
- } | {
35
- type: "custom";
36
- customType: string;
37
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
38
- locked: boolean;
39
- };
45
+ } & import("../types").ActiveTool;
40
46
  penMode: boolean;
41
47
  penDetected: boolean;
42
48
  exportBackground: boolean;
@@ -68,17 +74,21 @@ export declare const actionToggleLock: {
68
74
  value: import("../types").NormalizedZoomValue;
69
75
  }>;
70
76
  openMenu: "canvas" | "shape" | null;
71
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
72
- openSidebar: "library" | "customSidebar" | null;
77
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
78
+ openSidebar: {
79
+ name: string;
80
+ tab?: string | undefined;
81
+ } | null;
73
82
  openDialog: "imageExport" | "help" | "jsonExport" | null;
74
- isSidebarDocked: boolean;
83
+ defaultSidebarDockedPreference: boolean;
75
84
  lastPointerDownWith: import("../element/types").PointerType;
76
- selectedElementIds: {
77
- [id: string]: boolean;
78
- };
85
+ selectedElementIds: Readonly<{
86
+ [id: string]: true;
87
+ }>;
79
88
  previousSelectedElementIds: {
80
- [id: string]: boolean;
89
+ [id: string]: true;
81
90
  };
91
+ selectedElementsAreBeingDragged: boolean;
82
92
  shouldCacheIgnoreZoom: boolean;
83
93
  toast: {
84
94
  message: string;
@@ -86,8 +96,7 @@ export declare const actionToggleLock: {
86
96
  duration?: number | undefined;
87
97
  } | null;
88
98
  zenModeEnabled: boolean;
89
- theme: string;
90
- gridSize: number | null;
99
+ theme: import("../element/types").Theme;
91
100
  viewModeEnabled: boolean;
92
101
  selectedGroupIds: {
93
102
  [groupId: string]: boolean;
@@ -109,12 +118,20 @@ export declare const actionToggleLock: {
109
118
  data: import("../charts").Spreadsheet;
110
119
  };
111
120
  pendingImageElementId: string | null;
112
- showHyperlinkPopup: false | "info" | "editor";
121
+ showHyperlinkPopup: false | "editor" | "info";
122
+ selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
123
+ snapLines: readonly import("../snapping").SnapLine[];
124
+ originSnapOffset: {
125
+ x: number;
126
+ y: number;
127
+ } | null;
113
128
  };
114
- commitToHistory: true;
129
+ commitToHistory: false;
115
130
  };
116
- contextItemLabel: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => "labels.elementLock.unlock" | "labels.elementLock.lock" | "labels.elementLock.lockAll" | "labels.elementLock.unlockAll";
117
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: import("../types").AppState, elements: readonly ExcalidrawElement[]) => boolean;
131
+ checked: (appState: Readonly<import("../types").AppState>) => boolean;
132
+ predicate: (elements: readonly import("../element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
133
+ contextItemLabel: string;
134
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
118
135
  } & {
119
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: import("../types").AppState, elements: readonly ExcalidrawElement[]) => boolean) | undefined;
136
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
120
137
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const actionToggleStats: {
3
2
  name: "stats";
4
3
  viewMode: true;
@@ -15,7 +14,11 @@ export declare const actionToggleStats: {
15
14
  } | null;
16
15
  showWelcomeScreen: boolean;
17
16
  isLoading: boolean;
18
- errorMessage: string | null;
17
+ errorMessage: import("react").ReactNode;
18
+ activeEmbeddable: {
19
+ element: import("../element/types").NonDeletedExcalidrawElement;
20
+ state: "active" | "hover";
21
+ } | null;
19
22
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
20
23
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
21
24
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -23,19 +26,21 @@ export declare const actionToggleStats: {
23
26
  isBindingEnabled: boolean;
24
27
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
25
28
  suggestedBindings: import("../element/binding").SuggestedBinding[];
29
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
30
+ frameRendering: {
31
+ enabled: boolean;
32
+ name: boolean;
33
+ outline: boolean;
34
+ clip: boolean;
35
+ };
36
+ editingFrame: string | null;
37
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
26
38
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
27
39
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
28
40
  activeTool: {
29
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser";
30
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
41
+ lastActiveTool: import("../types").ActiveTool | null;
31
42
  locked: boolean;
32
- customType: null;
33
- } | {
34
- type: "custom";
35
- customType: string;
36
- lastActiveToolBeforeEraser: import("../types").LastActiveToolBeforeEraser;
37
- locked: boolean;
38
- };
43
+ } & import("../types").ActiveTool;
39
44
  penMode: boolean;
40
45
  penDetected: boolean;
41
46
  exportBackground: boolean;
@@ -67,17 +72,21 @@ export declare const actionToggleStats: {
67
72
  value: import("../types").NormalizedZoomValue;
68
73
  }>;
69
74
  openMenu: "canvas" | "shape" | null;
70
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
71
- openSidebar: "library" | "customSidebar" | null;
75
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
76
+ openSidebar: {
77
+ name: string;
78
+ tab?: string | undefined;
79
+ } | null;
72
80
  openDialog: "imageExport" | "help" | "jsonExport" | null;
73
- isSidebarDocked: boolean;
81
+ defaultSidebarDockedPreference: boolean;
74
82
  lastPointerDownWith: import("../element/types").PointerType;
75
- selectedElementIds: {
76
- [id: string]: boolean;
77
- };
83
+ selectedElementIds: Readonly<{
84
+ [id: string]: true;
85
+ }>;
78
86
  previousSelectedElementIds: {
79
- [id: string]: boolean;
87
+ [id: string]: true;
80
88
  };
89
+ selectedElementsAreBeingDragged: boolean;
81
90
  shouldCacheIgnoreZoom: boolean;
82
91
  toast: {
83
92
  message: string;
@@ -85,7 +94,7 @@ export declare const actionToggleStats: {
85
94
  duration?: number | undefined;
86
95
  } | null;
87
96
  zenModeEnabled: boolean;
88
- theme: string;
97
+ theme: import("../element/types").Theme;
89
98
  gridSize: number | null;
90
99
  viewModeEnabled: boolean;
91
100
  selectedGroupIds: {
@@ -107,14 +116,20 @@ export declare const actionToggleStats: {
107
116
  data: import("../charts").Spreadsheet;
108
117
  };
109
118
  pendingImageElementId: string | null;
110
- showHyperlinkPopup: false | "info" | "editor";
119
+ showHyperlinkPopup: false | "editor" | "info";
111
120
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
121
+ snapLines: readonly import("../snapping").SnapLine[];
122
+ originSnapOffset: {
123
+ x: number;
124
+ y: number;
125
+ } | null;
126
+ objectsSnapModeEnabled: boolean;
112
127
  };
113
128
  commitToHistory: false;
114
129
  };
115
130
  checked: (appState: Readonly<import("../types").AppState>) => boolean;
116
131
  contextItemLabel: string;
117
- keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
132
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
118
133
  } & {
119
- keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
134
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
120
135
  };