@dwelle/excalidraw 0.4.0-c38ebd4 → 0.4.0-c4ea72b

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 +451 -1
  2. package/README.md +6 -2
  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 +2807 -1620
  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 +81 -31
  10. package/types/actions/actionAlign.d.ts +25 -20
  11. package/types/actions/actionBoundText.d.ts +156 -19
  12. package/types/actions/actionCanvas.d.ts +504 -96
  13. package/types/actions/actionClipboard.d.ts +131 -50
  14. package/types/actions/actionDeleteSelected.d.ts +75 -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 +271 -0
  18. package/types/actions/actionExport.d.ts +288 -135
  19. package/types/actions/actionFinalize.d.ts +52 -22
  20. package/types/actions/actionFlip.d.ts +4 -7
  21. package/types/actions/actionFrame.d.ts +423 -0
  22. package/types/actions/actionGroup.d.ts +246 -9
  23. package/types/actions/actionHistory.d.ts +1 -1
  24. package/types/actions/actionLinearEditor.d.ts +29 -13
  25. package/types/actions/actionMenu.d.ts +82 -33
  26. package/types/actions/actionNavigate.d.ts +1 -1
  27. package/types/actions/actionProperties.d.ts +356 -134
  28. package/types/actions/actionSelectAll.d.ts +121 -2
  29. package/types/actions/actionStyles.d.ts +27 -11
  30. package/types/actions/actionToggleGridMode.d.ts +27 -11
  31. package/types/actions/actionToggleStats.d.ts +27 -11
  32. package/types/actions/actionToggleViewMode.d.ts +27 -11
  33. package/types/actions/actionToggleZenMode.d.ts +27 -11
  34. package/types/actions/actionZindex.d.ts +4 -4
  35. package/types/actions/index.d.ts +1 -1
  36. package/types/actions/manager.d.ts +1 -1
  37. package/types/actions/shortcuts.d.ts +1 -1
  38. package/types/actions/types.d.ts +10 -9
  39. package/types/appState.d.ts +12 -9
  40. package/types/charts.d.ts +2 -2
  41. package/types/clients.d.ts +5 -6
  42. package/types/clipboard.d.ts +3 -2
  43. package/types/colors.d.ts +60 -5
  44. package/types/components/Actions.d.ts +7 -7
  45. package/types/components/ActiveConfirmDialog.d.ts +1 -21
  46. package/types/components/App.d.ts +72 -16
  47. package/types/components/Avatar.d.ts +1 -2
  48. package/types/components/Button.d.ts +3 -2
  49. package/types/components/ButtonIconSelect.d.ts +11 -3
  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 +13 -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 +75 -10
  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 +38 -18
  135. package/types/element/binding.d.ts +4 -3
  136. package/types/element/bounds.d.ts +31 -6
  137. package/types/element/collision.d.ts +7 -7
  138. package/types/element/dragElements.d.ts +2 -1
  139. package/types/element/embeddable.d.ts +153 -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 +33 -16
  143. package/types/element/mutateElement.d.ts +1 -1
  144. package/types/element/newElement.d.ts +47 -13
  145. package/types/element/resizeElements.d.ts +1 -0
  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 +13 -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 +52 -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 +4 -1
  168. package/types/math.d.ts +1 -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 +9 -2
  175. package/types/renderer/renderElement.d.ts +12 -22
  176. package/types/renderer/renderScene.d.ts +19 -27
  177. package/types/renderer/roundRect.d.ts +1 -1
  178. package/types/scene/Renderer.d.ts +25 -0
  179. package/types/scene/Scene.d.ts +27 -5
  180. package/types/scene/Shape.d.ts +12 -0
  181. package/types/scene/ShapeCache.d.ts +20 -0
  182. package/types/scene/export.d.ts +49 -11
  183. package/types/scene/scroll.d.ts +1 -1
  184. package/types/scene/scrollbars.d.ts +2 -6
  185. package/types/scene/selection.d.ts +26 -6
  186. package/types/scene/types.d.ts +69 -34
  187. package/types/types.d.ts +145 -56
  188. package/types/utility-types.d.ts +16 -14
  189. package/types/utils.d.ts +70 -11
  190. package/types/zindex.d.ts +4 -4
  191. package/types/actions/actionToggleLock.d.ts +0 -119
  192. package/types/components/ColorPicker.d.ts +0 -14
  193. package/types/components/LibraryButton.d.ts +0 -8
  194. package/types/components/SingleLibraryItem.d.ts +0 -10
  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-c38ebd4",
3
+ "version": "0.4.0-c4ea72b",
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,7 +120,7 @@ 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;
109
125
  };
110
126
  } | {
@@ -118,6 +134,10 @@ export declare const actionAddToLibrary: {
118
134
  } | null;
119
135
  showWelcomeScreen: boolean;
120
136
  isLoading: boolean;
137
+ activeEmbeddable: {
138
+ element: import("../element/types").NonDeletedExcalidrawElement;
139
+ state: "active" | "hover";
140
+ } | null;
121
141
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
122
142
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
123
143
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -125,13 +145,22 @@ export declare const actionAddToLibrary: {
125
145
  isBindingEnabled: boolean;
126
146
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
127
147
  suggestedBindings: import("../element/binding").SuggestedBinding[];
148
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
149
+ frameRendering: {
150
+ enabled: boolean;
151
+ name: boolean;
152
+ outline: boolean;
153
+ clip: boolean;
154
+ };
155
+ editingFrame: string | null;
156
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
128
157
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
129
158
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
130
159
  activeTool: {
131
160
  lastActiveTool: import("../types").LastActiveTool;
132
161
  locked: boolean;
133
162
  } & ({
134
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
163
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
135
164
  customType: null;
136
165
  } | {
137
166
  type: "custom";
@@ -168,17 +197,21 @@ export declare const actionAddToLibrary: {
168
197
  value: import("../types").NormalizedZoomValue;
169
198
  }>;
170
199
  openMenu: "canvas" | "shape" | null;
171
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
172
- openSidebar: "library" | "customSidebar" | null;
200
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
201
+ openSidebar: {
202
+ name: string;
203
+ tab?: string | undefined;
204
+ } | null;
173
205
  openDialog: "imageExport" | "help" | "jsonExport" | null;
174
- isSidebarDocked: boolean;
206
+ defaultSidebarDockedPreference: boolean;
175
207
  lastPointerDownWith: import("../element/types").PointerType;
176
- selectedElementIds: {
177
- [id: string]: boolean;
178
- };
208
+ selectedElementIds: Readonly<{
209
+ [id: string]: true;
210
+ }>;
179
211
  previousSelectedElementIds: {
180
- [id: string]: boolean;
212
+ [id: string]: true;
181
213
  };
214
+ selectedElementsAreBeingDragged: boolean;
182
215
  shouldCacheIgnoreZoom: boolean;
183
216
  toast: {
184
217
  message: string;
@@ -186,7 +219,7 @@ export declare const actionAddToLibrary: {
186
219
  duration?: number | undefined;
187
220
  } | null;
188
221
  zenModeEnabled: boolean;
189
- theme: string;
222
+ theme: import("../element/types").Theme;
190
223
  gridSize: number | null;
191
224
  viewModeEnabled: boolean;
192
225
  selectedGroupIds: {
@@ -209,7 +242,7 @@ export declare const actionAddToLibrary: {
209
242
  data: import("../charts").Spreadsheet;
210
243
  };
211
244
  pendingImageElementId: string | null;
212
- showHyperlinkPopup: false | "info" | "editor";
245
+ showHyperlinkPopup: false | "editor" | "info";
213
246
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
214
247
  };
215
248
  }> | {
@@ -223,6 +256,10 @@ export declare const actionAddToLibrary: {
223
256
  } | null;
224
257
  showWelcomeScreen: boolean;
225
258
  isLoading: boolean;
259
+ activeEmbeddable: {
260
+ element: import("../element/types").NonDeletedExcalidrawElement;
261
+ state: "active" | "hover";
262
+ } | null;
226
263
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
227
264
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
228
265
  multiElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawLinearElement> | null;
@@ -230,13 +267,22 @@ export declare const actionAddToLibrary: {
230
267
  isBindingEnabled: boolean;
231
268
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
232
269
  suggestedBindings: import("../element/binding").SuggestedBinding[];
270
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
271
+ frameRendering: {
272
+ enabled: boolean;
273
+ name: boolean;
274
+ outline: boolean;
275
+ clip: boolean;
276
+ };
277
+ editingFrame: string | null;
278
+ elementsToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawElement>[] | null;
233
279
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
234
280
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
235
281
  activeTool: {
236
282
  lastActiveTool: import("../types").LastActiveTool;
237
283
  locked: boolean;
238
284
  } & ({
239
- type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "image" | "freedraw" | "eraser" | "hand";
285
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
240
286
  customType: null;
241
287
  } | {
242
288
  type: "custom";
@@ -273,17 +319,21 @@ export declare const actionAddToLibrary: {
273
319
  value: import("../types").NormalizedZoomValue;
274
320
  }>;
275
321
  openMenu: "canvas" | "shape" | null;
276
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
277
- openSidebar: "library" | "customSidebar" | null;
322
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
323
+ openSidebar: {
324
+ name: string;
325
+ tab?: string | undefined;
326
+ } | null;
278
327
  openDialog: "imageExport" | "help" | "jsonExport" | null;
279
- isSidebarDocked: boolean;
328
+ defaultSidebarDockedPreference: boolean;
280
329
  lastPointerDownWith: import("../element/types").PointerType;
281
- selectedElementIds: {
282
- [id: string]: boolean;
283
- };
330
+ selectedElementIds: Readonly<{
331
+ [id: string]: true;
332
+ }>;
284
333
  previousSelectedElementIds: {
285
- [id: string]: boolean;
334
+ [id: string]: true;
286
335
  };
336
+ selectedElementsAreBeingDragged: boolean;
287
337
  shouldCacheIgnoreZoom: boolean;
288
338
  toast: {
289
339
  message: string;
@@ -291,7 +341,7 @@ export declare const actionAddToLibrary: {
291
341
  duration?: number | undefined;
292
342
  } | null;
293
343
  zenModeEnabled: boolean;
294
- theme: string;
344
+ theme: import("../element/types").Theme;
295
345
  gridSize: number | null;
296
346
  viewModeEnabled: boolean;
297
347
  selectedGroupIds: {
@@ -314,7 +364,7 @@ export declare const actionAddToLibrary: {
314
364
  data: import("../charts").Spreadsheet;
315
365
  };
316
366
  pendingImageElementId: string | null;
317
- showHyperlinkPopup: false | "info" | "editor";
367
+ showHyperlinkPopup: false | "editor" | "info";
318
368
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
319
369
  };
320
370
  };
@@ -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,15 +1,16 @@
1
- /// <reference types="react" />
2
1
  import { ExcalidrawElement, ExcalidrawLinearElement } from "../element/types";
2
+ import { AppState } from "../types";
3
+ import { Mutable } from "../utility-types";
3
4
  export declare const actionUnbindText: {
4
5
  name: "unbindText";
5
6
  contextItemLabel: string;
6
7
  trackEvent: {
7
8
  category: "element";
8
9
  };
9
- predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState) => boolean;
10
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").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) => {
11
12
  elements: readonly ExcalidrawElement[];
12
- appState: Readonly<import("../types").AppState>;
13
+ appState: Readonly<AppState>;
13
14
  commitToHistory: true;
14
15
  };
15
16
  } & {
@@ -21,8 +22,8 @@ export declare const actionBindText: {
21
22
  trackEvent: {
22
23
  category: "element";
23
24
  };
24
- predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState) => boolean;
25
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").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) => {
26
27
  elements: ExcalidrawElement[];
27
28
  appState: {
28
29
  selectedElementIds: {
@@ -36,6 +37,10 @@ export declare const actionBindText: {
36
37
  showWelcomeScreen: boolean;
37
38
  isLoading: boolean;
38
39
  errorMessage: import("react").ReactNode;
40
+ activeEmbeddable: {
41
+ element: import("../element/types").NonDeletedExcalidrawElement;
42
+ state: "active" | "hover";
43
+ } | null;
39
44
  draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
40
45
  resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
41
46
  multiElement: import("../element/types").NonDeleted<ExcalidrawLinearElement> | null;
@@ -43,13 +48,22 @@ export declare const actionBindText: {
43
48
  isBindingEnabled: boolean;
44
49
  startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
45
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;
46
60
  editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
47
61
  editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
48
62
  activeTool: {
49
63
  lastActiveTool: import("../types").LastActiveTool;
50
64
  locked: boolean;
51
65
  } & ({
52
- 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";
53
67
  customType: null;
54
68
  } | {
55
69
  type: "custom";
@@ -86,14 +100,18 @@ export declare const actionBindText: {
86
100
  value: import("../types").NormalizedZoomValue;
87
101
  }>;
88
102
  openMenu: "canvas" | "shape" | null;
89
- openPopup: "canvasColorPicker" | "backgroundColorPicker" | "strokeColorPicker" | null;
90
- openSidebar: "library" | "customSidebar" | null;
103
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
104
+ openSidebar: {
105
+ name: string;
106
+ tab?: string | undefined;
107
+ } | null;
91
108
  openDialog: "imageExport" | "help" | "jsonExport" | null;
92
- isSidebarDocked: boolean;
109
+ defaultSidebarDockedPreference: boolean;
93
110
  lastPointerDownWith: import("../element/types").PointerType;
94
111
  previousSelectedElementIds: {
95
- [id: string]: boolean;
112
+ [id: string]: true;
96
113
  };
114
+ selectedElementsAreBeingDragged: boolean;
97
115
  shouldCacheIgnoreZoom: boolean;
98
116
  toast: {
99
117
  message: string;
@@ -101,7 +119,7 @@ export declare const actionBindText: {
101
119
  duration?: number | undefined;
102
120
  } | null;
103
121
  zenModeEnabled: boolean;
104
- theme: string;
122
+ theme: import("../element/types").Theme;
105
123
  gridSize: number | null;
106
124
  viewModeEnabled: boolean;
107
125
  selectedGroupIds: {
@@ -124,7 +142,7 @@ export declare const actionBindText: {
124
142
  data: import("../charts").Spreadsheet;
125
143
  };
126
144
  pendingImageElementId: string | null;
127
- showHyperlinkPopup: false | "info" | "editor";
145
+ showHyperlinkPopup: false | "editor" | "info";
128
146
  selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
129
147
  };
130
148
  commitToHistory: true;
@@ -132,16 +150,135 @@ export declare const actionBindText: {
132
150
  } & {
133
151
  keyTest?: undefined;
134
152
  };
135
- export declare const actionCreateContainerFromText: {
136
- name: "createContainerFromText";
153
+ export declare const actionWrapTextInContainer: {
154
+ name: "wrapTextInContainer";
137
155
  contextItemLabel: string;
138
156
  trackEvent: {
139
157
  category: "element";
140
158
  };
141
- predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState) => boolean;
142
- perform: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
143
- elements: ExcalidrawElement[];
144
- appState: Readonly<import("../types").AppState>;
159
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
160
+ perform: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, _: any, app: import("../types").AppClassProperties) => {
161
+ elements: readonly ExcalidrawElement[];
162
+ appState: {
163
+ selectedElementIds: Mutable<Readonly<{
164
+ [id: string]: true;
165
+ }>>;
166
+ contextMenu: {
167
+ items: import("../components/ContextMenu").ContextMenuItems;
168
+ top: number;
169
+ left: number;
170
+ } | null;
171
+ showWelcomeScreen: boolean;
172
+ isLoading: boolean;
173
+ errorMessage: import("react").ReactNode;
174
+ activeEmbeddable: {
175
+ element: import("../element/types").NonDeletedExcalidrawElement;
176
+ state: "active" | "hover";
177
+ } | null;
178
+ draggingElement: import("../element/types").NonDeletedExcalidrawElement | null;
179
+ resizingElement: import("../element/types").NonDeletedExcalidrawElement | null;
180
+ multiElement: import("../element/types").NonDeleted<ExcalidrawLinearElement> | null;
181
+ selectionElement: import("../element/types").NonDeletedExcalidrawElement | null;
182
+ isBindingEnabled: boolean;
183
+ startBoundElement: import("../element/types").NonDeleted<import("../element/types").ExcalidrawBindableElement> | null;
184
+ suggestedBindings: import("../element/binding").SuggestedBinding[];
185
+ frameToHighlight: import("../element/types").NonDeleted<import("../element/types").ExcalidrawFrameElement> | null;
186
+ frameRendering: {
187
+ enabled: boolean;
188
+ name: boolean;
189
+ outline: boolean;
190
+ clip: boolean;
191
+ };
192
+ editingFrame: string | null;
193
+ elementsToHighlight: import("../element/types").NonDeleted<ExcalidrawElement>[] | null;
194
+ editingElement: import("../element/types").NonDeletedExcalidrawElement | null;
195
+ editingLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
196
+ activeTool: {
197
+ lastActiveTool: import("../types").LastActiveTool;
198
+ locked: boolean;
199
+ } & ({
200
+ type: "line" | "arrow" | "text" | "selection" | "rectangle" | "diamond" | "ellipse" | "embeddable" | "image" | "frame" | "freedraw" | "eraser" | "hand";
201
+ customType: null;
202
+ } | {
203
+ type: "custom";
204
+ customType: string;
205
+ });
206
+ penMode: boolean;
207
+ penDetected: boolean;
208
+ exportBackground: boolean;
209
+ exportEmbedScene: boolean;
210
+ exportWithDarkMode: boolean;
211
+ exportScale: number;
212
+ currentItemStrokeColor: string;
213
+ currentItemBackgroundColor: string;
214
+ currentItemFillStyle: import("../element/types").FillStyle;
215
+ currentItemStrokeWidth: number;
216
+ currentItemStrokeStyle: import("../element/types").StrokeStyle;
217
+ currentItemRoughness: number;
218
+ currentItemOpacity: number;
219
+ currentItemFontFamily: number;
220
+ currentItemFontSize: number;
221
+ currentItemTextAlign: string;
222
+ currentItemStartArrowhead: import("../element/types").Arrowhead | null;
223
+ currentItemEndArrowhead: import("../element/types").Arrowhead | null;
224
+ currentItemRoundness: import("../element/types").StrokeRoundness;
225
+ viewBackgroundColor: string;
226
+ scrollX: number;
227
+ scrollY: number;
228
+ cursorButton: "up" | "down";
229
+ scrolledOutside: boolean;
230
+ name: string;
231
+ isResizing: boolean;
232
+ isRotating: boolean;
233
+ zoom: Readonly<{
234
+ value: import("../types").NormalizedZoomValue;
235
+ }>;
236
+ openMenu: "canvas" | "shape" | null;
237
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | null;
238
+ openSidebar: {
239
+ name: string;
240
+ tab?: string | undefined;
241
+ } | null;
242
+ openDialog: "imageExport" | "help" | "jsonExport" | null;
243
+ defaultSidebarDockedPreference: boolean;
244
+ lastPointerDownWith: import("../element/types").PointerType;
245
+ previousSelectedElementIds: {
246
+ [id: string]: true;
247
+ };
248
+ selectedElementsAreBeingDragged: boolean;
249
+ shouldCacheIgnoreZoom: boolean;
250
+ toast: {
251
+ message: string;
252
+ closable?: boolean | undefined;
253
+ duration?: number | undefined;
254
+ } | null;
255
+ zenModeEnabled: boolean;
256
+ theme: import("../element/types").Theme;
257
+ gridSize: number | null;
258
+ viewModeEnabled: boolean;
259
+ selectedGroupIds: {
260
+ [groupId: string]: boolean;
261
+ };
262
+ editingGroupId: string | null;
263
+ width: number;
264
+ height: number;
265
+ offsetTop: number;
266
+ offsetLeft: number;
267
+ fileHandle: import("browser-fs-access").FileSystemHandle | null;
268
+ collaborators: Map<string, import("../types").Collaborator>;
269
+ showStats: boolean;
270
+ currentChartType: import("../element/types").ChartType;
271
+ pasteDialog: {
272
+ shown: false;
273
+ data: null;
274
+ } | {
275
+ shown: true;
276
+ data: import("../charts").Spreadsheet;
277
+ };
278
+ pendingImageElementId: string | null;
279
+ showHyperlinkPopup: false | "editor" | "info";
280
+ selectedLinearElement: import("../element/linearElementEditor").LinearElementEditor | null;
281
+ };
145
282
  commitToHistory: true;
146
283
  };
147
284
  } & {