@dwelle/excalidraw 0.4.0-d68dd48 → 0.4.0-da7ef3e

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 (199) hide show
  1. package/CHANGELOG.md +280 -2
  2. package/README.md +4 -0
  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 +2863 -1610
  6. package/dist/excalidraw.production.min.js +1 -1
  7. package/main.js +1 -8
  8. package/package.json +8 -3
  9. package/types/actions/actionAddToLibrary.d.ts +99 -31
  10. package/types/actions/actionAlign.d.ts +25 -20
  11. package/types/actions/actionBoundText.d.ts +70 -24
  12. package/types/actions/actionCanvas.d.ts +477 -109
  13. package/types/actions/actionClipboard.d.ts +161 -50
  14. package/types/actions/actionDeleteSelected.d.ts +93 -28
  15. package/types/actions/actionDistribute.d.ts +7 -8
  16. package/types/actions/actionDuplicateSelection.d.ts +0 -1
  17. package/types/actions/actionElementLock.d.ts +283 -0
  18. package/types/actions/actionExport.d.ts +342 -135
  19. package/types/actions/actionFinalize.d.ts +64 -22
  20. package/types/actions/actionFlip.d.ts +4 -7
  21. package/types/actions/actionFrame.d.ts +441 -0
  22. package/types/actions/actionGroup.d.ts +258 -9
  23. package/types/actions/actionHistory.d.ts +1 -1
  24. package/types/actions/actionLinearEditor.d.ts +35 -13
  25. package/types/actions/actionMenu.d.ts +100 -33
  26. package/types/actions/actionNavigate.d.ts +1 -1
  27. package/types/actions/actionProperties.d.ts +433 -133
  28. package/types/actions/actionSelectAll.d.ts +127 -2
  29. package/types/actions/actionStyles.d.ts +33 -11
  30. package/types/actions/actionToggleGridMode.d.ts +33 -11
  31. package/types/actions/{actionToggleLock.d.ts → actionToggleObjectsSnapMode.d.ts} +47 -23
  32. package/types/actions/actionToggleStats.d.ts +33 -11
  33. package/types/actions/actionToggleViewMode.d.ts +33 -11
  34. package/types/actions/actionToggleZenMode.d.ts +33 -11
  35. package/types/actions/actionZindex.d.ts +4 -4
  36. package/types/actions/index.d.ts +2 -1
  37. package/types/actions/manager.d.ts +1 -1
  38. package/types/actions/shortcuts.d.ts +1 -1
  39. package/types/actions/types.d.ts +10 -9
  40. package/types/appState.d.ts +13 -9
  41. package/types/charts.d.ts +2 -2
  42. package/types/clients.d.ts +5 -6
  43. package/types/clipboard.d.ts +3 -2
  44. package/types/colors.d.ts +60 -5
  45. package/types/components/Actions.d.ts +7 -7
  46. package/types/components/ActiveConfirmDialog.d.ts +1 -21
  47. package/types/components/App.d.ts +62 -15
  48. package/types/components/Avatar.d.ts +1 -2
  49. package/types/components/Button.d.ts +3 -2
  50. package/types/components/Card.d.ts +0 -1
  51. package/types/components/ColorPicker/ColorInput.d.ts +9 -0
  52. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  53. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  54. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  55. package/types/components/ColorPicker/Picker.d.ts +18 -0
  56. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  57. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  58. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  59. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  60. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  61. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +20 -0
  62. package/types/components/ContextMenu.d.ts +3 -3
  63. package/types/components/DefaultSidebar.d.ts +29 -0
  64. package/types/components/Dialog.d.ts +3 -4
  65. package/types/components/ExcalidrawLogo.d.ts +15 -0
  66. package/types/components/EyeDropper.d.ts +28 -0
  67. package/types/components/FilledButton.d.ts +17 -0
  68. package/types/components/FixedSideContainer.d.ts +1 -1
  69. package/types/components/HandButton.d.ts +1 -1
  70. package/types/components/HelpButton.d.ts +1 -1
  71. package/types/components/HintViewer.d.ts +4 -5
  72. package/types/components/HomeButton.d.ts +1 -1
  73. package/types/components/ImageExportDialog.d.ts +8 -13
  74. package/types/components/Island.d.ts +1 -1
  75. package/types/components/JSONExportDialog.d.ts +5 -5
  76. package/types/components/LayerUI.d.ts +7 -11
  77. package/types/components/LibraryMenu.d.ts +13 -14
  78. package/types/components/LibraryMenuBrowseButton.d.ts +2 -2
  79. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  80. package/types/components/LibraryMenuHeaderContent.d.ts +10 -28
  81. package/types/components/LibraryMenuItems.d.ts +6 -7
  82. package/types/components/LibraryMenuSection.d.ts +22 -0
  83. package/types/components/LibraryUnit.d.ts +6 -3
  84. package/types/components/LoadingMessage.d.ts +0 -1
  85. package/types/components/LockButton.d.ts +1 -1
  86. package/types/components/MobileMenu.d.ts +7 -6
  87. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  88. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  89. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  90. package/types/components/PasteChartDialog.d.ts +4 -5
  91. package/types/components/PenModeButton.d.ts +1 -1
  92. package/types/components/Popover.d.ts +1 -1
  93. package/types/components/ProjectName.d.ts +2 -1
  94. package/types/components/PublishLibrary.d.ts +2 -2
  95. package/types/components/RadioGroup.d.ts +12 -0
  96. package/types/components/Section.d.ts +1 -1
  97. package/types/components/Sidebar/Sidebar.d.ts +66 -63
  98. package/types/components/Sidebar/SidebarHeader.d.ts +6 -19
  99. package/types/components/Sidebar/SidebarTab.d.ts +8 -0
  100. package/types/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
  101. package/types/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
  102. package/types/components/Sidebar/SidebarTabs.d.ts +6 -0
  103. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  104. package/types/components/Sidebar/common.d.ts +24 -7
  105. package/types/components/Spinner.d.ts +2 -1
  106. package/types/components/Stack.d.ts +4 -3
  107. package/types/components/Stats.d.ts +3 -3
  108. package/types/components/Switch.d.ts +9 -0
  109. package/types/components/ToolButton.d.ts +5 -4
  110. package/types/components/Tooltip.d.ts +1 -1
  111. package/types/components/Trans.d.ts +9 -0
  112. package/types/components/canvases/InteractiveCanvas.d.ts +27 -0
  113. package/types/components/canvases/StaticCanvas.d.ts +18 -0
  114. package/types/components/canvases/index.d.ts +3 -0
  115. package/types/components/dropdownMenu/DropdownMenu.d.ts +3 -2
  116. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -2
  117. package/types/components/footer/Footer.d.ts +2 -2
  118. package/types/components/icons.d.ts +12 -1
  119. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -1
  120. package/types/components/main-menu/MainMenu.d.ts +3 -2
  121. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -1
  122. package/types/components/welcome-screen/WelcomeScreen.d.ts +0 -1
  123. package/types/constants.d.ts +64 -9
  124. package/types/context/tunnels.d.ts +19 -0
  125. package/types/context/ui-appState.d.ts +4 -0
  126. package/types/data/blob.d.ts +2 -2
  127. package/types/data/encode.d.ts +1 -1
  128. package/types/data/filesystem.d.ts +2 -1
  129. package/types/data/library.d.ts +3 -45
  130. package/types/data/restore.d.ts +2 -2
  131. package/types/data/transform.d.ts +71 -0
  132. package/types/data/types.d.ts +3 -5
  133. package/types/data/url.d.ts +7 -0
  134. package/types/element/Hyperlink.d.ts +44 -18
  135. package/types/element/binding.d.ts +4 -3
  136. package/types/element/bounds.d.ts +30 -6
  137. package/types/element/collision.d.ts +7 -7
  138. package/types/element/dragElements.d.ts +12 -2
  139. package/types/element/embeddable.d.ts +159 -0
  140. package/types/element/image.d.ts +11 -1
  141. package/types/element/index.d.ts +3 -2
  142. package/types/element/linearElementEditor.d.ts +38 -16
  143. package/types/element/mutateElement.d.ts +1 -1
  144. package/types/element/newElement.d.ts +21 -7
  145. package/types/element/resizeElements.d.ts +3 -2
  146. package/types/element/showSelectedShapeActions.d.ts +2 -2
  147. package/types/element/sizeHelpers.d.ts +8 -1
  148. package/types/element/textElement.d.ts +7 -8
  149. package/types/element/textWysiwyg.d.ts +1 -1
  150. package/types/element/transformHandles.d.ts +15 -8
  151. package/types/element/typeChecks.d.ts +3 -1
  152. package/types/element/types.d.ts +51 -35
  153. package/types/emitter.d.ts +1 -1
  154. package/types/errors.d.ts +1 -1
  155. package/types/frame.d.ts +40 -0
  156. package/types/ga.d.ts +5 -5
  157. package/types/groups.d.ts +15 -11
  158. package/types/history.d.ts +3 -3
  159. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  160. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  161. package/types/hooks/useOutsideClick.d.ts +19 -2
  162. package/types/hooks/useScrollPosition.d.ts +1 -0
  163. package/types/hooks/useStable.d.ts +1 -0
  164. package/types/hooks/useTransition.d.ts +2 -0
  165. package/types/i18n.d.ts +7 -4
  166. package/types/jotai.d.ts +16 -104
  167. package/types/keys.d.ts +5 -1
  168. package/types/math.d.ts +3 -0
  169. package/types/packages/excalidraw/example/initialData.d.ts +182 -64
  170. package/types/packages/excalidraw/index.d.ts +5 -2
  171. package/types/packages/excalidraw/main.d.ts +3 -1
  172. package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
  173. package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
  174. package/types/packages/utils.d.ts +5 -2
  175. package/types/renderer/renderElement.d.ts +11 -22
  176. package/types/renderer/renderScene.d.ts +19 -27
  177. package/types/renderer/renderSnaps.d.ts +2 -0
  178. package/types/renderer/roundRect.d.ts +1 -1
  179. package/types/scene/Renderer.d.ts +25 -0
  180. package/types/scene/Scene.d.ts +27 -5
  181. package/types/scene/Shape.d.ts +12 -0
  182. package/types/scene/ShapeCache.d.ts +20 -0
  183. package/types/scene/export.d.ts +37 -11
  184. package/types/scene/scroll.d.ts +1 -1
  185. package/types/scene/scrollbars.d.ts +2 -6
  186. package/types/scene/selection.d.ts +27 -6
  187. package/types/scene/types.d.ts +69 -34
  188. package/types/snapping.d.ts +108 -0
  189. package/types/types.d.ts +161 -56
  190. package/types/utility-types.d.ts +16 -14
  191. package/types/utils.d.ts +64 -24
  192. package/types/zindex.d.ts +4 -4
  193. package/types/components/ColorPicker.d.ts +0 -14
  194. package/types/components/LibraryButton.d.ts +0 -8
  195. package/types/components/context/tunnels.d.ts +0 -16
  196. package/types/components/hoc/withUpstreamOverride.d.ts +0 -10
  197. /package/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
  198. /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-2002fe1b8862917b36c1.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
  199. /package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-e6df8519da951026ff69.d.ts → vendor-a14cd58fa2db417e42b2.d.ts} +0 -0
package/main.js CHANGED
@@ -1,8 +1 @@
1
- if (
2
- process.env.NODE_ENV === "production" ||
3
- window.__excalidraw_env__ === "production"
4
- ) {
5
- module.exports = require("./dist/excalidraw.production.min.js");
6
- } else {
7
- module.exports = require("./dist/excalidraw.development.js");
8
- }
1
+ module.exports = require("./dist/excalidraw.production.min.js");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dwelle/excalidraw",
3
- "version": "0.4.0-d68dd48",
3
+ "version": "0.4.0-da7ef3e",
4
4
  "main": "main.js",
5
5
  "types": "types/packages/excalidraw/index.d.ts",
6
6
  "files": [
@@ -45,18 +45,22 @@
45
45
  "@babel/preset-env": "7.18.6",
46
46
  "@babel/preset-react": "7.18.6",
47
47
  "@babel/preset-typescript": "7.18.6",
48
+ "@size-limit/preset-big-lib": "9.0.0",
48
49
  "autoprefixer": "10.4.7",
49
50
  "babel-loader": "8.2.5",
50
51
  "babel-plugin-transform-class-properties": "6.24.1",
51
52
  "cross-env": "7.0.3",
52
53
  "css-loader": "6.7.1",
53
54
  "dotenv": "16.0.1",
55
+ "import-meta-loader": "1.1.0",
54
56
  "mini-css-extract-plugin": "2.6.1",
55
57
  "postcss-loader": "7.0.1",
56
58
  "sass-loader": "13.0.2",
59
+ "size-limit": "9.0.0",
60
+ "style-loader": "3.3.3",
57
61
  "terser-webpack-plugin": "5.3.3",
58
62
  "ts-loader": "9.3.1",
59
- "typescript": "4.7.4",
63
+ "typescript": "4.9.4",
60
64
  "webpack": "5.76.0",
61
65
  "webpack-bundle-analyzer": "4.5.0",
62
66
  "webpack-cli": "4.10.0",
@@ -72,6 +76,7 @@
72
76
  "pack": "yarn build:umd && yarn pack",
73
77
  "start": "webpack serve --config webpack.dev-server.config.js",
74
78
  "install:deps": "yarn install --frozen-lockfile && yarn --cwd ../../../",
75
- "build:example": "EXAMPLE=true webpack --config webpack.dev-server.config.js && yarn gen:types"
79
+ "build:example": "EXAMPLE=true webpack --config webpack.dev-server.config.js && yarn gen:types",
80
+ "size": "yarn build:umd && size-limit"
76
81
  }
77
82
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const actionAddToLibrary: {
3
2
  name: "addToLibrary";
4
3
  trackEvent: {
@@ -18,6 +17,10 @@ export declare const actionAddToLibrary: {
18
17
  showWelcomeScreen: boolean;
19
18
  isLoading: boolean;
20
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,13 +28,22 @@ export declare const actionAddToLibrary: {
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
43
  lastActiveTool: import("../types").LastActiveTool;
32
44
  locked: boolean;
33
45
  } & ({
34
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
46
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
35
47
  customType: null;
36
48
  } | {
37
49
  type: "custom";
@@ -68,20 +80,24 @@ export declare const actionAddToLibrary: {
68
80
  value: import("../types").NormalizedZoomValue;
69
81
  }>;
70
82
  openMenu: "canvas" | "shape" | null;
71
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
72
- openSidebar: "library" | "customSidebar" | null;
83
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
84
+ openSidebar: {
85
+ name: string;
86
+ tab?: string | undefined;
87
+ } | null;
73
88
  openDialog: "imageExport" | "help" | "jsonExport" | null;
74
- isSidebarDocked: boolean;
89
+ defaultSidebarDockedPreference: boolean;
75
90
  lastPointerDownWith: import("../element/types").PointerType;
76
- selectedElementIds: {
77
- [id: string]: boolean;
78
- };
91
+ selectedElementIds: Readonly<{
92
+ [id: string]: true;
93
+ }>;
79
94
  previousSelectedElementIds: {
80
- [id: string]: boolean;
95
+ [id: string]: true;
81
96
  };
97
+ selectedElementsAreBeingDragged: boolean;
82
98
  shouldCacheIgnoreZoom: boolean;
83
99
  zenModeEnabled: boolean;
84
- theme: string;
100
+ theme: import("../element/types").Theme;
85
101
  gridSize: number | null;
86
102
  viewModeEnabled: boolean;
87
103
  selectedGroupIds: {
@@ -104,8 +120,14 @@ export declare const actionAddToLibrary: {
104
120
  data: import("../charts").Spreadsheet;
105
121
  };
106
122
  pendingImageElementId: string | null;
107
- showHyperlinkPopup: false | "info" | "editor";
123
+ showHyperlinkPopup: false | "editor" | "info";
108
124
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
125
+ snapLines: import("../snapping").SnapLine[];
126
+ originSnapOffset: {
127
+ x: number;
128
+ y: number;
129
+ } | null;
130
+ objectsSnapModeEnabled: boolean;
109
131
  };
110
132
  } | {
111
133
  commitToHistory: false;
@@ -118,6 +140,10 @@ export declare const actionAddToLibrary: {
118
140
  } | null;
119
141
  showWelcomeScreen: boolean;
120
142
  isLoading: boolean;
143
+ activeEmbeddable: {
144
+ element: import("../element/types").NonDeletedExcalidrawElement;
145
+ state: "active" | "hover";
146
+ } | null;
121
147
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
122
148
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
123
149
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -125,13 +151,22 @@ export declare const actionAddToLibrary: {
125
151
  isBindingEnabled: boolean;
126
152
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
127
153
  suggestedBindings: import("../element/binding").SuggestedBinding[];
154
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
155
+ frameRendering: {
156
+ enabled: boolean;
157
+ name: boolean;
158
+ outline: boolean;
159
+ clip: boolean;
160
+ };
161
+ editingFrame: string | null;
162
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
128
163
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
129
164
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
130
165
  activeTool: {
131
166
  lastActiveTool: import("../types").LastActiveTool;
132
167
  locked: boolean;
133
168
  } & ({
134
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
169
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
135
170
  customType: null;
136
171
  } | {
137
172
  type: "custom";
@@ -168,17 +203,21 @@ export declare const actionAddToLibrary: {
168
203
  value: import("../types").NormalizedZoomValue;
169
204
  }>;
170
205
  openMenu: "canvas" | "shape" | null;
171
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
172
- openSidebar: "library" | "customSidebar" | null;
206
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
207
+ openSidebar: {
208
+ name: string;
209
+ tab?: string | undefined;
210
+ } | null;
173
211
  openDialog: "imageExport" | "help" | "jsonExport" | null;
174
- isSidebarDocked: boolean;
212
+ defaultSidebarDockedPreference: boolean;
175
213
  lastPointerDownWith: import("../element/types").PointerType;
176
- selectedElementIds: {
177
- [id: string]: boolean;
178
- };
214
+ selectedElementIds: Readonly<{
215
+ [id: string]: true;
216
+ }>;
179
217
  previousSelectedElementIds: {
180
- [id: string]: boolean;
218
+ [id: string]: true;
181
219
  };
220
+ selectedElementsAreBeingDragged: boolean;
182
221
  shouldCacheIgnoreZoom: boolean;
183
222
  toast: {
184
223
  message: string;
@@ -186,7 +225,7 @@ export declare const actionAddToLibrary: {
186
225
  duration?: number | undefined;
187
226
  } | null;
188
227
  zenModeEnabled: boolean;
189
- theme: string;
228
+ theme: import("../element/types").Theme;
190
229
  gridSize: number | null;
191
230
  viewModeEnabled: boolean;
192
231
  selectedGroupIds: {
@@ -209,8 +248,14 @@ export declare const actionAddToLibrary: {
209
248
  data: import("../charts").Spreadsheet;
210
249
  };
211
250
  pendingImageElementId: string | null;
212
- showHyperlinkPopup: false | "info" | "editor";
251
+ showHyperlinkPopup: false | "editor" | "info";
213
252
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
253
+ snapLines: import("../snapping").SnapLine[];
254
+ originSnapOffset: {
255
+ x: number;
256
+ y: number;
257
+ } | null;
258
+ objectsSnapModeEnabled: boolean;
214
259
  };
215
260
  }> | {
216
261
  commitToHistory: false;
@@ -223,6 +268,10 @@ export declare const actionAddToLibrary: {
223
268
  } | null;
224
269
  showWelcomeScreen: boolean;
225
270
  isLoading: boolean;
271
+ activeEmbeddable: {
272
+ element: import("../element/types").NonDeletedExcalidrawElement;
273
+ state: "active" | "hover";
274
+ } | null;
226
275
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
227
276
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
228
277
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -230,13 +279,22 @@ export declare const actionAddToLibrary: {
230
279
  isBindingEnabled: boolean;
231
280
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
232
281
  suggestedBindings: import("../element/binding").SuggestedBinding[];
282
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
283
+ frameRendering: {
284
+ enabled: boolean;
285
+ name: boolean;
286
+ outline: boolean;
287
+ clip: boolean;
288
+ };
289
+ editingFrame: string | null;
290
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
233
291
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
234
292
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
235
293
  activeTool: {
236
294
  lastActiveTool: import("../types").LastActiveTool;
237
295
  locked: boolean;
238
296
  } & ({
239
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
297
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
240
298
  customType: null;
241
299
  } | {
242
300
  type: "custom";
@@ -273,17 +331,21 @@ export declare const actionAddToLibrary: {
273
331
  value: import("../types").NormalizedZoomValue;
274
332
  }>;
275
333
  openMenu: "canvas" | "shape" | null;
276
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
277
- openSidebar: "library" | "customSidebar" | null;
334
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
335
+ openSidebar: {
336
+ name: string;
337
+ tab?: string | undefined;
338
+ } | null;
278
339
  openDialog: "imageExport" | "help" | "jsonExport" | null;
279
- isSidebarDocked: boolean;
340
+ defaultSidebarDockedPreference: boolean;
280
341
  lastPointerDownWith: import("../element/types").PointerType;
281
- selectedElementIds: {
282
- [id: string]: boolean;
283
- };
342
+ selectedElementIds: Readonly<{
343
+ [id: string]: true;
344
+ }>;
284
345
  previousSelectedElementIds: {
285
- [id: string]: boolean;
346
+ [id: string]: true;
286
347
  };
348
+ selectedElementsAreBeingDragged: boolean;
287
349
  shouldCacheIgnoreZoom: boolean;
288
350
  toast: {
289
351
  message: string;
@@ -291,7 +353,7 @@ export declare const actionAddToLibrary: {
291
353
  duration?: number | undefined;
292
354
  } | null;
293
355
  zenModeEnabled: boolean;
294
- theme: string;
356
+ theme: import("../element/types").Theme;
295
357
  gridSize: number | null;
296
358
  viewModeEnabled: boolean;
297
359
  selectedGroupIds: {
@@ -314,8 +376,14 @@ export declare const actionAddToLibrary: {
314
376
  data: import("../charts").Spreadsheet;
315
377
  };
316
378
  pendingImageElementId: string | null;
317
- showHyperlinkPopup: false | "info" | "editor";
379
+ showHyperlinkPopup: false | "editor" | "info";
318
380
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
381
+ snapLines: import("../snapping").SnapLine[];
382
+ originSnapOffset: {
383
+ x: number;
384
+ y: number;
385
+ } | null;
386
+ objectsSnapModeEnabled: boolean;
319
387
  };
320
388
  };
321
389
  contextItemLabel: string;
@@ -1,18 +1,18 @@
1
- /// <reference types="react" />
2
1
  import { ExcalidrawElement } from "../element/types";
3
- import { AppState } from "../types";
2
+ import { AppClassProperties, AppState } from "../types";
4
3
  export declare const actionAlignTop: {
5
4
  name: "alignTop";
6
5
  trackEvent: {
7
6
  category: "element";
8
7
  };
9
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
8
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: unknown, app: AppClassProperties) => boolean;
9
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
10
10
  appState: Readonly<AppState>;
11
- elements: ExcalidrawElement[];
11
+ elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
12
12
  commitToHistory: true;
13
13
  };
14
14
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
15
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
15
+ PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
16
16
  } & {
17
17
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
18
18
  };
@@ -21,13 +21,14 @@ export declare const actionAlignBottom: {
21
21
  trackEvent: {
22
22
  category: "element";
23
23
  };
24
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
24
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: unknown, app: AppClassProperties) => boolean;
25
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
25
26
  appState: Readonly<AppState>;
26
- elements: ExcalidrawElement[];
27
+ elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
27
28
  commitToHistory: true;
28
29
  };
29
30
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
30
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
31
+ PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
31
32
  } & {
32
33
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
33
34
  };
@@ -36,13 +37,14 @@ export declare const actionAlignLeft: {
36
37
  trackEvent: {
37
38
  category: "element";
38
39
  };
39
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
40
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: unknown, app: AppClassProperties) => boolean;
41
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
40
42
  appState: Readonly<AppState>;
41
- elements: ExcalidrawElement[];
43
+ elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
42
44
  commitToHistory: true;
43
45
  };
44
46
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
45
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
47
+ PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
46
48
  } & {
47
49
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
48
50
  };
@@ -51,13 +53,14 @@ export declare const actionAlignRight: {
51
53
  trackEvent: {
52
54
  category: "element";
53
55
  };
54
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
56
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: unknown, app: AppClassProperties) => boolean;
57
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
55
58
  appState: Readonly<AppState>;
56
- elements: ExcalidrawElement[];
59
+ elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
57
60
  commitToHistory: true;
58
61
  };
59
62
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
60
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
63
+ PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
61
64
  } & {
62
65
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
63
66
  };
@@ -66,12 +69,13 @@ export declare const actionAlignVerticallyCentered: {
66
69
  trackEvent: {
67
70
  category: "element";
68
71
  };
69
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
72
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: unknown, app: AppClassProperties) => boolean;
73
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
70
74
  appState: Readonly<AppState>;
71
- elements: ExcalidrawElement[];
75
+ elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
72
76
  commitToHistory: true;
73
77
  };
74
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
78
+ PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
75
79
  } & {
76
80
  keyTest?: undefined;
77
81
  };
@@ -80,12 +84,13 @@ export declare const actionAlignHorizontallyCentered: {
80
84
  trackEvent: {
81
85
  category: "element";
82
86
  };
83
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
87
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: unknown, app: AppClassProperties) => boolean;
88
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: AppClassProperties) => {
84
89
  appState: Readonly<AppState>;
85
- elements: ExcalidrawElement[];
90
+ elements: import("../scene/Scene").ExcalidrawElementsIncludingDeleted;
86
91
  commitToHistory: true;
87
92
  };
88
- PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => JSX.Element;
93
+ PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => JSX.Element;
89
94
  } & {
90
95
  keyTest?: undefined;
91
96
  };
@@ -1,14 +1,14 @@
1
- /// <reference types="react" />
2
1
  import { ExcalidrawElement, ExcalidrawLinearElement } from "../element/types";
3
2
  import { AppState } from "../types";
3
+ import { Mutable } from "../utility-types";
4
4
  export declare const actionUnbindText: {
5
5
  name: "unbindText";
6
6
  contextItemLabel: string;
7
7
  trackEvent: {
8
8
  category: "element";
9
9
  };
10
- predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
11
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
10
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
11
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: import("../types").AppClassProperties) => {
12
12
  elements: readonly ExcalidrawElement[];
13
13
  appState: Readonly<AppState>;
14
14
  commitToHistory: true;
@@ -22,8 +22,8 @@ export declare const actionBindText: {
22
22
  trackEvent: {
23
23
  category: "element";
24
24
  };
25
- predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
26
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
25
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
26
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: import("../types").AppClassProperties) => {
27
27
  elements: ExcalidrawElement[];
28
28
  appState: {
29
29
  selectedElementIds: {
@@ -37,6 +37,10 @@ export declare const actionBindText: {
37
37
  showWelcomeScreen: boolean;
38
38
  isLoading: boolean;
39
39
  errorMessage: import("react").ReactNode;
40
+ activeEmbeddable: {
41
+ element: import("../element/types").NonDeletedExcalidrawElement;
42
+ state: "active" | "hover";
43
+ } | null;
40
44
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
41
45
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
42
46
  multiElement: import("../element/types").NonDeleted<ExcalidrawLinearElement> | null;
@@ -44,13 +48,22 @@ export declare const actionBindText: {
44
48
  isBindingEnabled: boolean;
45
49
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
46
50
  suggestedBindings: import("../element/binding").SuggestedBinding[];
51
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
52
+ frameRendering: {
53
+ enabled: boolean;
54
+ name: boolean;
55
+ outline: boolean;
56
+ clip: boolean;
57
+ };
58
+ editingFrame: string | null;
59
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
47
60
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
48
61
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
49
62
  activeTool: {
50
63
  lastActiveTool: import("../types").LastActiveTool;
51
64
  locked: boolean;
52
65
  } & ({
53
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
66
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
54
67
  customType: null;
55
68
  } | {
56
69
  type: "custom";
@@ -87,14 +100,18 @@ export declare const actionBindText: {
87
100
  value: import("../types").NormalizedZoomValue;
88
101
  }>;
89
102
  openMenu: "canvas" | "shape" | null;
90
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
91
- openSidebar: "library" | "customSidebar" | null;
103
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
104
+ openSidebar: {
105
+ name: string;
106
+ tab?: string | undefined;
107
+ } | null;
92
108
  openDialog: "imageExport" | "help" | "jsonExport" | null;
93
- isSidebarDocked: boolean;
109
+ defaultSidebarDockedPreference: boolean;
94
110
  lastPointerDownWith: import("../element/types").PointerType;
95
111
  previousSelectedElementIds: {
96
- [id: string]: boolean;
112
+ [id: string]: true;
97
113
  };
114
+ selectedElementsAreBeingDragged: boolean;
98
115
  shouldCacheIgnoreZoom: boolean;
99
116
  toast: {
100
117
  message: string;
@@ -102,7 +119,7 @@ export declare const actionBindText: {
102
119
  duration?: number | undefined;
103
120
  } | null;
104
121
  zenModeEnabled: boolean;
105
- theme: string;
122
+ theme: import("../element/types").Theme;
106
123
  gridSize: number | null;
107
124
  viewModeEnabled: boolean;
108
125
  selectedGroupIds: {
@@ -125,8 +142,14 @@ export declare const actionBindText: {
125
142
  data: import("../charts").Spreadsheet;
126
143
  };
127
144
  pendingImageElementId: string | null;
128
- showHyperlinkPopup: false | "info" | "editor";
145
+ showHyperlinkPopup: false | "editor" | "info";
129
146
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
147
+ snapLines: import("../snapping").SnapLine[];
148
+ originSnapOffset: {
149
+ x: number;
150
+ y: number;
151
+ } | null;
152
+ objectsSnapModeEnabled: boolean;
130
153
  };
131
154
  commitToHistory: true;
132
155
  };
@@ -139,13 +162,13 @@ export declare const actionWrapTextInContainer: {
139
162
  trackEvent: {
140
163
  category: "element";
141
164
  };
142
- predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
143
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>) => {
165
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
166
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: import("../types").AppClassProperties) => {
144
167
  elements: readonly ExcalidrawElement[];
145
168
  appState: {
146
- selectedElementIds: {
147
- [id: string]: boolean;
148
- };
169
+ selectedElementIds: Mutable<Readonly<{
170
+ [id: string]: true;
171
+ }>>;
149
172
  contextMenu: {
150
173
  items: import("../components/ContextMenu").ContextMenuItems;
151
174
  top: number;
@@ -154,6 +177,10 @@ export declare const actionWrapTextInContainer: {
154
177
  showWelcomeScreen: boolean;
155
178
  isLoading: boolean;
156
179
  errorMessage: import("react").ReactNode;
180
+ activeEmbeddable: {
181
+ element: import("../element/types").NonDeletedExcalidrawElement;
182
+ state: "active" | "hover";
183
+ } | null;
157
184
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
158
185
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
159
186
  multiElement: import("../element/types").NonDeleted<ExcalidrawLinearElement> | null;
@@ -161,13 +188,22 @@ export declare const actionWrapTextInContainer: {
161
188
  isBindingEnabled: boolean;
162
189
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
163
190
  suggestedBindings: import("../element/binding").SuggestedBinding[];
191
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
192
+ frameRendering: {
193
+ enabled: boolean;
194
+ name: boolean;
195
+ outline: boolean;
196
+ clip: boolean;
197
+ };
198
+ editingFrame: string | null;
199
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
164
200
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
165
201
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
166
202
  activeTool: {
167
203
  lastActiveTool: import("../types").LastActiveTool;
168
204
  locked: boolean;
169
205
  } & ({
170
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
206
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
171
207
  customType: null;
172
208
  } | {
173
209
  type: "custom";
@@ -204,14 +240,18 @@ export declare const actionWrapTextInContainer: {
204
240
  value: import("../types").NormalizedZoomValue;
205
241
  }>;
206
242
  openMenu: "canvas" | "shape" | null;
207
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
208
- openSidebar: "library" | "customSidebar" | null;
243
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
244
+ openSidebar: {
245
+ name: string;
246
+ tab?: string | undefined;
247
+ } | null;
209
248
  openDialog: "imageExport" | "help" | "jsonExport" | null;
210
- isSidebarDocked: boolean;
249
+ defaultSidebarDockedPreference: boolean;
211
250
  lastPointerDownWith: import("../element/types").PointerType;
212
251
  previousSelectedElementIds: {
213
- [id: string]: boolean;
252
+ [id: string]: true;
214
253
  };
254
+ selectedElementsAreBeingDragged: boolean;
215
255
  shouldCacheIgnoreZoom: boolean;
216
256
  toast: {
217
257
  message: string;
@@ -219,7 +259,7 @@ export declare const actionWrapTextInContainer: {
219
259
  duration?: number | undefined;
220
260
  } | null;
221
261
  zenModeEnabled: boolean;
222
- theme: string;
262
+ theme: import("../element/types").Theme;
223
263
  gridSize: number | null;
224
264
  viewModeEnabled: boolean;
225
265
  selectedGroupIds: {
@@ -242,8 +282,14 @@ export declare const actionWrapTextInContainer: {
242
282
  data: import("../charts").Spreadsheet;
243
283
  };
244
284
  pendingImageElementId: string | null;
245
- showHyperlinkPopup: false | "info" | "editor";
285
+ showHyperlinkPopup: false | "editor" | "info";
246
286
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
287
+ snapLines: import("../snapping").SnapLine[];
288
+ originSnapOffset: {
289
+ x: number;
290
+ y: number;
291
+ } | null;
292
+ objectsSnapModeEnabled: boolean;
247
293
  };
248
294
  commitToHistory: true;
249
295
  };