@excalidraw/math 0.18.0-2b0e4c9 → 0.18.0-2b1c2a9

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 (192) hide show
  1. package/dist/dev/index.js +311 -114
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +1 -1
  4. package/dist/types/common/src/colors.d.ts +20 -1
  5. package/dist/types/common/src/constants.d.ts +12 -7
  6. package/dist/types/common/src/keys.d.ts +2 -0
  7. package/dist/types/common/src/points.d.ts +1 -1
  8. package/dist/types/common/src/utils.d.ts +1 -43
  9. package/dist/types/element/src/Scene.d.ts +6 -4
  10. package/dist/types/element/src/align.d.ts +2 -2
  11. package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
  12. package/dist/types/element/src/arrows/focus.d.ts +5 -2
  13. package/dist/types/element/src/binding.d.ts +17 -8
  14. package/dist/types/element/src/bounds.d.ts +22 -7
  15. package/dist/types/element/src/bucketFill.d.ts +110 -0
  16. package/dist/types/element/src/collision.d.ts +1 -1
  17. package/dist/types/element/src/comparisons.d.ts +5 -4
  18. package/dist/types/element/src/convertToShape.d.ts +23 -0
  19. package/dist/types/element/src/distribute.d.ts +2 -2
  20. package/dist/types/element/src/dragElements.d.ts +27 -0
  21. package/dist/types/element/src/duplicate.d.ts +4 -3
  22. package/dist/types/element/src/embeddable.d.ts +2 -2
  23. package/dist/types/element/src/flowchart.d.ts +7 -7
  24. package/dist/types/element/src/fractionalIndex.d.ts +2 -2
  25. package/dist/types/element/src/frame.d.ts +9 -8
  26. package/dist/types/element/src/groups.d.ts +9 -9
  27. package/dist/types/element/src/index.d.ts +4 -1
  28. package/dist/types/element/src/linearElementEditor.d.ts +27 -10
  29. package/dist/types/element/src/newElement.d.ts +15 -0
  30. package/dist/types/element/src/renderElement.d.ts +0 -3
  31. package/dist/types/element/src/resizeElements.d.ts +2 -2
  32. package/dist/types/element/src/selection.d.ts +11 -7
  33. package/dist/types/element/src/shape.d.ts +13 -1
  34. package/dist/types/element/src/sortElements.d.ts +10 -0
  35. package/dist/types/element/src/textElement.d.ts +14 -10
  36. package/dist/types/element/src/textWrapping.d.ts +26 -0
  37. package/dist/types/element/src/transform.d.ts +2 -2
  38. package/dist/types/element/src/typeChecks.d.ts +26 -25
  39. package/dist/types/element/src/types.d.ts +15 -1
  40. package/dist/types/element/src/utils.d.ts +7 -3
  41. package/dist/types/element/src/zindex.d.ts +2 -2
  42. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +48 -21
  43. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  44. package/dist/types/excalidraw/actions/actionBoundText.d.ts +33 -15
  45. package/dist/types/excalidraw/actions/actionCanvas.d.ts +174 -947
  46. package/dist/types/excalidraw/actions/actionClipboard.d.ts +32 -14
  47. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +16 -7
  48. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +50 -22
  49. package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionDeselect.d.ts} +30 -36
  50. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  51. package/dist/types/excalidraw/actions/actionElementLink.d.ts +16 -7
  52. package/dist/types/excalidraw/actions/actionElementLock.d.ts +33 -15
  53. package/dist/types/excalidraw/actions/actionExport.d.ts +34 -16
  54. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  55. package/dist/types/excalidraw/actions/actionFrame.d.ts +61 -205
  56. package/dist/types/excalidraw/actions/actionGroup.d.ts +48 -30
  57. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +21 -9
  58. package/dist/types/excalidraw/actions/actionLink.d.ts +17 -8
  59. package/dist/types/excalidraw/actions/actionMenu.d.ts +16 -7
  60. package/dist/types/excalidraw/actions/actionProperties.d.ts +62 -32
  61. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +21 -12
  62. package/dist/types/excalidraw/actions/actionStyles.d.ts +17 -7
  63. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
  64. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +17 -8
  65. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +20 -12
  66. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +17 -8
  67. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +17 -8
  68. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +20 -12
  69. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  70. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +17 -8
  71. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +18 -9
  72. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +17 -8
  73. package/dist/types/excalidraw/actions/index.d.ts +2 -2
  74. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  75. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  76. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  77. package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
  78. package/dist/types/excalidraw/appState.d.ts +12 -5
  79. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  80. package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
  81. package/dist/types/excalidraw/components/App.arrowText.d.ts +104 -0
  82. package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
  83. package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
  84. package/dist/types/excalidraw/components/App.d.ts +391 -68
  85. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  86. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  87. package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
  88. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
  89. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  90. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +3 -1
  91. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
  92. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  93. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  94. package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
  95. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
  96. package/dist/types/excalidraw/components/ColorPicker/topPicksDnD.d.ts +31 -0
  97. package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
  98. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
  99. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  100. package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
  101. package/dist/types/excalidraw/components/{ToolButton.d.ts → IconButton.d.ts} +16 -19
  102. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  103. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  104. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
  105. package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
  106. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  107. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  108. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  109. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  110. package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
  111. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  112. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  113. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  114. package/dist/types/excalidraw/components/Range.d.ts +10 -4
  115. package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
  116. package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
  117. package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
  118. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  119. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  120. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  121. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  122. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  123. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  124. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  125. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  126. package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
  127. package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
  128. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  129. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  130. package/dist/types/excalidraw/components/Tools.d.ts +146 -0
  131. package/dist/types/excalidraw/components/UserList.d.ts +3 -2
  132. package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
  133. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +4 -1
  134. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
  135. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  136. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  137. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  138. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  139. package/dist/types/excalidraw/components/icons.d.ts +6 -1
  140. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +8 -4
  141. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  142. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  143. package/dist/types/excalidraw/data/blob.d.ts +36 -18
  144. package/dist/types/excalidraw/data/index.d.ts +4 -4
  145. package/dist/types/excalidraw/data/json.d.ts +24 -15
  146. package/dist/types/excalidraw/data/library.d.ts +1 -1
  147. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  148. package/dist/types/excalidraw/eraser/index.d.ts +2 -3
  149. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  150. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  151. package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
  152. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  153. package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
  154. package/dist/types/excalidraw/lasso/index.d.ts +2 -3
  155. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  156. package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
  157. package/dist/types/excalidraw/renderer/helpers.d.ts +7 -0
  158. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -3
  159. package/dist/types/excalidraw/scene/Renderer.d.ts +427 -19
  160. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  161. package/dist/types/excalidraw/scene/index.d.ts +2 -2
  162. package/dist/types/excalidraw/scene/types.d.ts +4 -3
  163. package/dist/types/excalidraw/snapping.d.ts +7 -7
  164. package/dist/types/excalidraw/textAutoResizeHandle.d.ts +15 -0
  165. package/dist/types/excalidraw/types.d.ts +436 -24
  166. package/dist/types/excalidraw/viewport.d.ts +275 -0
  167. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +6 -3
  168. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  169. package/dist/types/laser-pointer/src/index.d.ts +2 -0
  170. package/dist/types/laser-pointer/src/math.d.ts +16 -0
  171. package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
  172. package/dist/types/laser-pointer/src/state.d.ts +36 -0
  173. package/dist/types/math/src/constants.d.ts +0 -1
  174. package/dist/types/math/src/curve.d.ts +23 -13
  175. package/dist/types/math/src/index.d.ts +1 -0
  176. package/dist/types/math/src/pca.d.ts +79 -0
  177. package/dist/types/math/src/point.d.ts +2 -1
  178. package/dist/types/math/src/polygon.d.ts +25 -1
  179. package/dist/types/math/src/segment.d.ts +6 -0
  180. package/dist/types/utils/src/export.d.ts +3 -3
  181. package/dist/types/utils/src/index.d.ts +1 -2
  182. package/package.json +2 -2
  183. package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
  184. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
  185. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  186. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  187. package/dist/types/excalidraw/components/shapes.d.ts +0 -263
  188. package/dist/types/excalidraw/cursor.d.ts +0 -5
  189. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  190. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
  191. package/dist/types/utils/src/bbox.d.ts +0 -9
  192. package/dist/types/utils/src/withinBounds.d.ts +0 -19
@@ -26,12 +26,16 @@ export declare const actionToggleMidpointSnapping: {
26
26
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
27
27
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
28
28
  isBindingEnabled: boolean;
29
+ boxSelectionMode: import("../types").BoxSelectionMode;
29
30
  bindingPreference: "enabled" | "disabled";
30
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
31
31
  suggestedBinding: {
32
32
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
33
33
  midPoint?: import("@excalidraw/math").GlobalPoint;
34
34
  } | null;
35
+ hoveredArrowTextAnchor: {
36
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
37
+ anchor: "start" | "end" | "label";
38
+ } | null;
35
39
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
36
40
  frameRendering: {
37
41
  enabled: boolean;
@@ -39,9 +43,9 @@ export declare const actionToggleMidpointSnapping: {
39
43
  outline: boolean;
40
44
  clip: boolean;
41
45
  };
42
- editingFrame: string | null;
43
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
44
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
46
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
47
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
48
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
45
49
  activeTool: {
46
50
  lastActiveTool: import("../types").ActiveTool | null;
47
51
  locked: boolean;
@@ -60,9 +64,10 @@ export declare const actionToggleMidpointSnapping: {
60
64
  currentItemStrokeColor: string;
61
65
  currentItemBackgroundColor: string;
62
66
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
63
- currentItemStrokeWidth: number;
67
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
64
68
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
65
69
  currentItemRoughness: number;
70
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
66
71
  currentItemOpacity: number;
67
72
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
68
73
  currentItemFontSize: number;
@@ -75,6 +80,7 @@ export declare const actionToggleMidpointSnapping: {
75
80
  viewBackgroundColor: string;
76
81
  scrollX: number;
77
82
  scrollY: number;
83
+ scrollConstraints: import("../types").ScrollConstraints | null;
78
84
  cursorButton: "up" | "down";
79
85
  scrolledOutside: boolean;
80
86
  name: string | null;
@@ -150,8 +156,6 @@ export declare const actionToggleMidpointSnapping: {
150
156
  y: number;
151
157
  } | null;
152
158
  objectsSnapModeEnabled: boolean;
153
- userToFollow: import("../types").UserToFollow | null;
154
- followedBy: Set<import("../types").SocketId>;
155
159
  isCropping: boolean;
156
160
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
157
161
  searchMatches: Readonly<{
@@ -163,10 +167,15 @@ export declare const actionToggleMidpointSnapping: {
163
167
  [groupId: string]: true;
164
168
  };
165
169
  bindMode: import("@excalidraw/element/types").BindMode;
170
+ colorTopPicks: {
171
+ elementStroke: readonly string[] | null;
172
+ elementBackground: readonly string[] | null;
173
+ bucketFill: readonly string[] | null;
174
+ };
166
175
  };
167
176
  captureUpdate: "NEVER";
168
177
  };
169
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
178
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
170
179
  } & {
171
180
  keyTest?: undefined;
172
181
  };
@@ -28,13 +28,17 @@ export declare const actionToggleObjectsSnapMode: {
28
28
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
29
29
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
30
30
  isBindingEnabled: boolean;
31
+ boxSelectionMode: import("../types").BoxSelectionMode;
31
32
  bindingPreference: "enabled" | "disabled";
32
33
  isMidpointSnappingEnabled: boolean;
33
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
34
34
  suggestedBinding: {
35
35
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
36
36
  midPoint?: import("@excalidraw/math").GlobalPoint;
37
37
  } | null;
38
+ hoveredArrowTextAnchor: {
39
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
40
+ anchor: "start" | "end" | "label";
41
+ } | null;
38
42
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
39
43
  frameRendering: {
40
44
  enabled: boolean;
@@ -42,9 +46,9 @@ export declare const actionToggleObjectsSnapMode: {
42
46
  outline: boolean;
43
47
  clip: boolean;
44
48
  };
45
- editingFrame: string | null;
46
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
47
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
49
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
50
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
51
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
48
52
  activeTool: {
49
53
  lastActiveTool: import("../types").ActiveTool | null;
50
54
  locked: boolean;
@@ -63,9 +67,10 @@ export declare const actionToggleObjectsSnapMode: {
63
67
  currentItemStrokeColor: string;
64
68
  currentItemBackgroundColor: string;
65
69
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
66
- currentItemStrokeWidth: number;
70
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
67
71
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
68
72
  currentItemRoughness: number;
73
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
69
74
  currentItemOpacity: number;
70
75
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
71
76
  currentItemFontSize: number;
@@ -78,6 +83,7 @@ export declare const actionToggleObjectsSnapMode: {
78
83
  viewBackgroundColor: string;
79
84
  scrollX: number;
80
85
  scrollY: number;
86
+ scrollConstraints: import("../types").ScrollConstraints | null;
81
87
  cursorButton: "up" | "down";
82
88
  scrolledOutside: boolean;
83
89
  name: string | null;
@@ -151,8 +157,6 @@ export declare const actionToggleObjectsSnapMode: {
151
157
  x: number;
152
158
  y: number;
153
159
  } | null;
154
- userToFollow: import("../types").UserToFollow | null;
155
- followedBy: Set<import("../types").SocketId>;
156
160
  isCropping: boolean;
157
161
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
158
162
  searchMatches: Readonly<{
@@ -164,10 +168,15 @@ export declare const actionToggleObjectsSnapMode: {
164
168
  [groupId: string]: true;
165
169
  };
166
170
  bindMode: import("@excalidraw/element/types").BindMode;
171
+ colorTopPicks: {
172
+ elementStroke: readonly string[] | null;
173
+ elementBackground: readonly string[] | null;
174
+ bucketFill: readonly string[] | null;
175
+ };
167
176
  };
168
177
  captureUpdate: "EVENTUALLY";
169
178
  };
170
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
179
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
171
180
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
172
181
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
173
182
  } & {
@@ -1,4 +1,3 @@
1
- import type { AppState } from "../types";
2
1
  export declare const actionToggleSearchMenu: {
3
2
  name: "searchMenu";
4
3
  icon: import("react/jsx-runtime").JSX.Element;
@@ -8,9 +7,9 @@ export declare const actionToggleSearchMenu: {
8
7
  trackEvent: {
9
8
  category: "search_menu";
10
9
  action: string;
11
- predicate: (appState: Readonly<AppState>) => boolean;
10
+ predicate: (appState: Readonly<import("../types").AppState>) => boolean;
12
11
  };
13
- perform(elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: unknown, app: import("../types").AppClassProperties): false | {
12
+ perform(elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: unknown, app: import("../types").AppClassProperties): false | {
14
13
  appState: {
15
14
  openSidebar: {
16
15
  name: "default";
@@ -34,13 +33,17 @@ export declare const actionToggleSearchMenu: {
34
33
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
35
34
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
36
35
  isBindingEnabled: boolean;
36
+ boxSelectionMode: import("../types").BoxSelectionMode;
37
37
  bindingPreference: "enabled" | "disabled";
38
38
  isMidpointSnappingEnabled: boolean;
39
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
40
39
  suggestedBinding: {
41
40
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
42
41
  midPoint?: import("@excalidraw/math").GlobalPoint;
43
42
  } | null;
43
+ hoveredArrowTextAnchor: {
44
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
45
+ anchor: "start" | "end" | "label";
46
+ } | null;
44
47
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
45
48
  frameRendering: {
46
49
  enabled: boolean;
@@ -48,9 +51,9 @@ export declare const actionToggleSearchMenu: {
48
51
  outline: boolean;
49
52
  clip: boolean;
50
53
  };
51
- editingFrame: string | null;
52
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
53
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
54
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
55
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
56
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
54
57
  activeTool: {
55
58
  lastActiveTool: import("../types").ActiveTool | null;
56
59
  locked: boolean;
@@ -69,9 +72,10 @@ export declare const actionToggleSearchMenu: {
69
72
  currentItemStrokeColor: string;
70
73
  currentItemBackgroundColor: string;
71
74
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
72
- currentItemStrokeWidth: number;
75
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
73
76
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
74
77
  currentItemRoughness: number;
78
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
75
79
  currentItemOpacity: number;
76
80
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
77
81
  currentItemFontSize: number;
@@ -84,6 +88,7 @@ export declare const actionToggleSearchMenu: {
84
88
  viewBackgroundColor: string;
85
89
  scrollX: number;
86
90
  scrollY: number;
91
+ scrollConstraints: import("../types").ScrollConstraints | null;
87
92
  cursorButton: "up" | "down";
88
93
  scrolledOutside: boolean;
89
94
  name: string | null;
@@ -138,8 +143,6 @@ export declare const actionToggleSearchMenu: {
138
143
  y: number;
139
144
  } | null;
140
145
  objectsSnapModeEnabled: boolean;
141
- userToFollow: import("../types").UserToFollow | null;
142
- followedBy: Set<import("../types").SocketId>;
143
146
  isCropping: boolean;
144
147
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
145
148
  searchMatches: Readonly<{
@@ -151,11 +154,16 @@ export declare const actionToggleSearchMenu: {
151
154
  [groupId: string]: true;
152
155
  };
153
156
  bindMode: import("@excalidraw/element/types").BindMode;
157
+ colorTopPicks: {
158
+ elementStroke: readonly string[] | null;
159
+ elementBackground: readonly string[] | null;
160
+ bucketFill: readonly string[] | null;
161
+ };
154
162
  };
155
163
  captureUpdate: "EVENTUALLY";
156
164
  };
157
- checked: (appState: AppState) => boolean;
158
- predicate: (element: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: AppState, props: import("../types").ExcalidrawProps) => boolean;
165
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
166
+ predicate: (element: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, props: import("../types").ExcalidrawProps) => boolean;
159
167
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
160
168
  } & {
161
169
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
@@ -12,7 +12,7 @@ export declare const actionToggleShapeSwitch: {
12
12
  perform(elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: unknown, app: import("../types").AppClassProperties): {
13
13
  captureUpdate: "NEVER";
14
14
  };
15
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
15
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
16
16
  predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState, props: import("../types").ExcalidrawProps) => boolean;
17
17
  } & {
18
18
  keyTest?: undefined;
@@ -30,13 +30,17 @@ export declare const actionToggleStats: {
30
30
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
31
31
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
32
32
  isBindingEnabled: boolean;
33
+ boxSelectionMode: import("../types").BoxSelectionMode;
33
34
  bindingPreference: "enabled" | "disabled";
34
35
  isMidpointSnappingEnabled: boolean;
35
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
36
36
  suggestedBinding: {
37
37
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
38
38
  midPoint?: import("@excalidraw/math").GlobalPoint;
39
39
  } | null;
40
+ hoveredArrowTextAnchor: {
41
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
42
+ anchor: "start" | "end" | "label";
43
+ } | null;
40
44
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
41
45
  frameRendering: {
42
46
  enabled: boolean;
@@ -44,9 +48,9 @@ export declare const actionToggleStats: {
44
48
  outline: boolean;
45
49
  clip: boolean;
46
50
  };
47
- editingFrame: string | null;
48
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
49
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
51
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
52
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
53
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
50
54
  activeTool: {
51
55
  lastActiveTool: import("../types").ActiveTool | null;
52
56
  locked: boolean;
@@ -65,9 +69,10 @@ export declare const actionToggleStats: {
65
69
  currentItemStrokeColor: string;
66
70
  currentItemBackgroundColor: string;
67
71
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
68
- currentItemStrokeWidth: number;
72
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
69
73
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
70
74
  currentItemRoughness: number;
75
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
71
76
  currentItemOpacity: number;
72
77
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
73
78
  currentItemFontSize: number;
@@ -80,6 +85,7 @@ export declare const actionToggleStats: {
80
85
  viewBackgroundColor: string;
81
86
  scrollX: number;
82
87
  scrollY: number;
88
+ scrollConstraints: import("../types").ScrollConstraints | null;
83
89
  cursorButton: "up" | "down";
84
90
  scrolledOutside: boolean;
85
91
  name: string | null;
@@ -151,8 +157,6 @@ export declare const actionToggleStats: {
151
157
  y: number;
152
158
  } | null;
153
159
  objectsSnapModeEnabled: boolean;
154
- userToFollow: import("../types").UserToFollow | null;
155
- followedBy: Set<import("../types").SocketId>;
156
160
  isCropping: boolean;
157
161
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
158
162
  searchMatches: Readonly<{
@@ -164,10 +168,15 @@ export declare const actionToggleStats: {
164
168
  [groupId: string]: true;
165
169
  };
166
170
  bindMode: import("@excalidraw/element/types").BindMode;
171
+ colorTopPicks: {
172
+ elementStroke: readonly string[] | null;
173
+ elementBackground: readonly string[] | null;
174
+ bucketFill: readonly string[] | null;
175
+ };
167
176
  };
168
177
  captureUpdate: "EVENTUALLY";
169
178
  };
170
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
179
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
171
180
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
172
181
  } & {
173
182
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
@@ -27,13 +27,17 @@ export declare const actionToggleViewMode: {
27
27
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
28
28
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
29
29
  isBindingEnabled: boolean;
30
+ boxSelectionMode: import("../types").BoxSelectionMode;
30
31
  bindingPreference: "enabled" | "disabled";
31
32
  isMidpointSnappingEnabled: boolean;
32
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
33
33
  suggestedBinding: {
34
34
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
35
35
  midPoint?: import("@excalidraw/math").GlobalPoint;
36
36
  } | null;
37
+ hoveredArrowTextAnchor: {
38
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
39
+ anchor: "start" | "end" | "label";
40
+ } | null;
37
41
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
38
42
  frameRendering: {
39
43
  enabled: boolean;
@@ -41,9 +45,9 @@ export declare const actionToggleViewMode: {
41
45
  outline: boolean;
42
46
  clip: boolean;
43
47
  };
44
- editingFrame: string | null;
45
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
46
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
48
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
49
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
50
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
47
51
  activeTool: {
48
52
  lastActiveTool: import("../types").ActiveTool | null;
49
53
  locked: boolean;
@@ -62,9 +66,10 @@ export declare const actionToggleViewMode: {
62
66
  currentItemStrokeColor: string;
63
67
  currentItemBackgroundColor: string;
64
68
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
65
- currentItemStrokeWidth: number;
69
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
66
70
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
67
71
  currentItemRoughness: number;
72
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
68
73
  currentItemOpacity: number;
69
74
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
70
75
  currentItemFontSize: number;
@@ -77,6 +82,7 @@ export declare const actionToggleViewMode: {
77
82
  viewBackgroundColor: string;
78
83
  scrollX: number;
79
84
  scrollY: number;
85
+ scrollConstraints: import("../types").ScrollConstraints | null;
80
86
  cursorButton: "up" | "down";
81
87
  scrolledOutside: boolean;
82
88
  name: string | null;
@@ -151,8 +157,6 @@ export declare const actionToggleViewMode: {
151
157
  y: number;
152
158
  } | null;
153
159
  objectsSnapModeEnabled: boolean;
154
- userToFollow: import("../types").UserToFollow | null;
155
- followedBy: Set<import("../types").SocketId>;
156
160
  isCropping: boolean;
157
161
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
158
162
  searchMatches: Readonly<{
@@ -164,11 +168,16 @@ export declare const actionToggleViewMode: {
164
168
  [groupId: string]: true;
165
169
  };
166
170
  bindMode: import("@excalidraw/element/types").BindMode;
171
+ colorTopPicks: {
172
+ elementStroke: readonly string[] | null;
173
+ elementBackground: readonly string[] | null;
174
+ bucketFill: readonly string[] | null;
175
+ };
167
176
  };
168
177
  captureUpdate: "EVENTUALLY";
169
178
  };
170
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
171
- predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
179
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
180
+ predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
172
181
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
173
182
  } & {
174
183
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
@@ -27,13 +27,17 @@ export declare const actionToggleZenMode: {
27
27
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
28
28
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
29
29
  isBindingEnabled: boolean;
30
+ boxSelectionMode: import("../types").BoxSelectionMode;
30
31
  bindingPreference: "enabled" | "disabled";
31
32
  isMidpointSnappingEnabled: boolean;
32
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
33
33
  suggestedBinding: {
34
34
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
35
35
  midPoint?: import("@excalidraw/math").GlobalPoint;
36
36
  } | null;
37
+ hoveredArrowTextAnchor: {
38
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
39
+ anchor: "start" | "end" | "label";
40
+ } | null;
37
41
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
38
42
  frameRendering: {
39
43
  enabled: boolean;
@@ -41,9 +45,9 @@ export declare const actionToggleZenMode: {
41
45
  outline: boolean;
42
46
  clip: boolean;
43
47
  };
44
- editingFrame: string | null;
45
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
46
- editingTextElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
48
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
49
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
50
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
47
51
  activeTool: {
48
52
  lastActiveTool: import("../types").ActiveTool | null;
49
53
  locked: boolean;
@@ -62,9 +66,10 @@ export declare const actionToggleZenMode: {
62
66
  currentItemStrokeColor: string;
63
67
  currentItemBackgroundColor: string;
64
68
  currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
65
- currentItemStrokeWidth: number;
69
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
66
70
  currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
67
71
  currentItemRoughness: number;
72
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
68
73
  currentItemOpacity: number;
69
74
  currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
70
75
  currentItemFontSize: number;
@@ -77,6 +82,7 @@ export declare const actionToggleZenMode: {
77
82
  viewBackgroundColor: string;
78
83
  scrollX: number;
79
84
  scrollY: number;
85
+ scrollConstraints: import("../types").ScrollConstraints | null;
80
86
  cursorButton: "up" | "down";
81
87
  scrolledOutside: boolean;
82
88
  name: string | null;
@@ -151,8 +157,6 @@ export declare const actionToggleZenMode: {
151
157
  y: number;
152
158
  } | null;
153
159
  objectsSnapModeEnabled: boolean;
154
- userToFollow: import("../types").UserToFollow | null;
155
- followedBy: Set<import("../types").SocketId>;
156
160
  isCropping: boolean;
157
161
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
158
162
  searchMatches: Readonly<{
@@ -164,10 +168,15 @@ export declare const actionToggleZenMode: {
164
168
  [groupId: string]: true;
165
169
  };
166
170
  bindMode: import("@excalidraw/element/types").BindMode;
171
+ colorTopPicks: {
172
+ elementStroke: readonly string[] | null;
173
+ elementBackground: readonly string[] | null;
174
+ bucketFill: readonly string[] | null;
175
+ };
167
176
  };
168
177
  captureUpdate: "EVENTUALLY";
169
178
  };
170
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
179
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
171
180
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
172
181
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
173
182
  } & {
@@ -2,10 +2,10 @@ export { actionDeleteSelected } from "./actionDeleteSelected";
2
2
  export { actionBringForward, actionBringToFront, actionSendBackward, actionSendToBack, } from "./actionZindex";
3
3
  export { actionSelectAll } from "./actionSelectAll";
4
4
  export { actionDuplicateSelection } from "./actionDuplicateSelection";
5
- export { actionChangeStrokeColor, actionChangeBackgroundColor, actionChangeStrokeWidth, actionChangeFillStyle, actionChangeSloppiness, actionChangeOpacity, actionChangeFontSize, actionChangeFontFamily, actionChangeTextAlign, actionChangeVerticalAlign, actionChangeArrowProperties, } from "./actionProperties";
5
+ export { actionChangeStrokeColor, actionChangeBackgroundColor, actionChangeBucketFillBackgroundColor, actionChangeStrokeWidth, actionChangeFillStyle, actionChangeSloppiness, actionChangeFreedrawMode, actionChangeOpacity, actionChangeFontSize, actionChangeFontFamily, actionChangeTextAlign, actionChangeVerticalAlign, actionChangeArrowProperties, } from "./actionProperties";
6
6
  export { actionChangeViewBackgroundColor, actionClearCanvas, actionZoomIn, actionZoomOut, actionResetZoom, actionZoomToFit, actionToggleTheme, } from "./actionCanvas";
7
- export { actionSetEmbeddableAsActiveTool } from "./actionEmbeddable";
8
7
  export { actionFinalize } from "./actionFinalize";
8
+ export { actionDeselect } from "./actionDeselect";
9
9
  export { actionChangeProjectName, actionChangeExportBackground, actionSaveToActiveFile, actionSaveFileToDisk, actionLoadScene, } from "./actionExport";
10
10
  export { actionCopyStyles, actionPasteStyles } from "./actionStyles";
11
11
  export { actionShortcuts } from "./actionMenu";
@@ -11,6 +11,7 @@ export declare class ActionManager {
11
11
  constructor(updater: UpdaterFn, getAppState: () => AppState, getElementsIncludingDeleted: () => readonly OrderedExcalidrawElement[], app: AppClassProperties);
12
12
  registerAction(action: Action): void;
13
13
  registerAll(actions: readonly Action[]): void;
14
+ private isActionBlockedByViewportTransition;
14
15
  handleKeyDown(event: React.KeyboardEvent | KeyboardEvent): boolean;
15
16
  executeAction<T extends Action>(action: T, source?: ActionSource, value?: Parameters<T["perform"]>[2]): void;
16
17
  /**
@@ -1,4 +1,4 @@
1
1
  import type { SubtypeOf } from "@excalidraw/common/utility-types";
2
2
  import type { ActionName } from "./types";
3
- export type ShortcutName = SubtypeOf<ActionName, "toggleTheme" | "loadScene" | "clearCanvas" | "cut" | "copy" | "paste" | "copyStyles" | "pasteStyles" | "selectAll" | "deleteSelectedElements" | "duplicateSelection" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyAsPng" | "group" | "ungroup" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "addToLibrary" | "viewMode" | "flipHorizontal" | "flipVertical" | "hyperlink" | "toggleElementLock" | "resetZoom" | "zoomOut" | "zoomIn" | "zoomToFit" | "zoomToFitSelectionInViewport" | "zoomToFitSelection" | "toggleEraserTool" | "toggleHandTool" | "setFrameAsActiveTool" | "saveFileToDisk" | "saveToActiveFile" | "toggleShortcuts" | "wrapSelectionInFrame"> | "saveScene" | "imageExport" | "commandPalette" | "searchMenu" | "toolLock";
3
+ export type ShortcutName = SubtypeOf<ActionName, "toggleTheme" | "loadScene" | "clearCanvas" | "cut" | "copy" | "paste" | "copyStyles" | "pasteStyles" | "selectAll" | "deleteSelectedElements" | "duplicateSelection" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyAsPng" | "group" | "ungroup" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "addToLibrary" | "viewMode" | "flipHorizontal" | "flipVertical" | "hyperlink" | "toggleElementLock" | "resetZoom" | "zoomOut" | "zoomIn" | "zoomToFit" | "zoomToFitSelectionInViewport" | "zoomToFitSelection" | "saveFileToDisk" | "saveToActiveFile" | "toggleShortcuts" | "wrapSelectionInFrame"> | "saveScene" | "imageExport" | "commandPalette" | "searchMenu" | "toolLock";
4
4
  export declare const getShortcutFromShortcutName: (name: ShortcutName, idx?: number) => string;
@@ -14,10 +14,10 @@ export type ActionResult = {
14
14
  type ActionFn<TData = any> = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: TData | undefined, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
15
15
  export type UpdaterFn = (res: ActionResult) => void;
16
16
  export type ActionFilterFn = (action: Action) => void;
17
- export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "arrowBinding" | "midpointSnapping" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeArrowProperties" | "changeOpacity" | "changeFontSize" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleLassoTool" | "toggleShapeSwitch" | "togglePolygon";
17
+ export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "arrowBinding" | "midpointSnapping" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeBucketFillBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeSloppiness" | "changeFreedrawMode" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeArrowProperties" | "changeOpacity" | "changeFontSize" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "deselect" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "createContainerFromText" | "wrapTextInContainer" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor" | "wrapSelectionInFrame" | "toggleShapeSwitch" | "togglePolygon";
18
18
  export type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
- appState: AppState;
20
+ appState: UIAppState;
21
21
  updateData: <T = any>(formData?: T) => void;
22
22
  appProps: ExcalidrawProps;
23
23
  data?: Record<string, any>;
@@ -26,7 +26,7 @@ export type PanelComponentProps = {
26
26
  };
27
27
  export interface Action<TData = any> {
28
28
  name: ActionName;
29
- label: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, app: AppClassProperties) => string);
29
+ label: string | ((elements: readonly ExcalidrawElement[], appState: Readonly<UIAppState>, app: AppClassProperties) => string);
30
30
  keywords?: string[];
31
31
  icon?: React.ReactNode | ((appState: UIAppState, elements: readonly ExcalidrawElement[]) => React.ReactNode);
32
32
  PanelComponent?: React.FC<PanelComponentProps>;
@@ -34,7 +34,7 @@ export interface Action<TData = any> {
34
34
  keyPriority?: number;
35
35
  keyTest?: (event: React.KeyboardEvent | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[], app: AppClassProperties) => boolean;
36
36
  predicate?: (elements: readonly ExcalidrawElement[], appState: AppState, appProps: ExcalidrawProps, app: AppClassProperties) => boolean;
37
- checked?: (appState: Readonly<AppState>) => boolean;
37
+ checked?: (appState: Readonly<UIAppState>) => boolean;
38
38
  trackEvent: false | {
39
39
  category: "toolbar" | "element" | "canvas" | "export" | "history" | "menu" | "collab" | "hyperlink" | "search_menu" | "shape_switch";
40
40
  action?: string;
@@ -43,5 +43,9 @@ export interface Action<TData = any> {
43
43
  /** if set to `true`, allow action to be performed in viewMode.
44
44
  * Defaults to `false` */
45
45
  viewMode?: boolean;
46
+ /** if set to `true`, the action counts as canvas navigation and remains
47
+ * available in the non-interactive editor when
48
+ * `interaction: { enabled: { navigation: true } }`. Defaults to `false` */
49
+ navigation?: boolean;
46
50
  }
47
51
  export {};
@@ -1,6 +1,5 @@
1
1
  import { LaserPointer } from "@excalidraw/laser-pointer";
2
2
  import type { LaserPointerOptions } from "@excalidraw/laser-pointer";
3
- import type { AnimationFrameHandler } from "./animation-frame-handler";
4
3
  import type App from "./components/App";
5
4
  export interface Trail {
6
5
  start(container: SVGSVGElement): void;
@@ -15,7 +14,6 @@ export interface AnimatedTrailOptions {
15
14
  animateTrail?: boolean;
16
15
  }
17
16
  export declare class AnimatedTrail implements Trail {
18
- private animationFrameHandler;
19
17
  protected app: App;
20
18
  private options;
21
19
  private currentTrail?;
@@ -23,9 +21,12 @@ export declare class AnimatedTrail implements Trail {
23
21
  private container?;
24
22
  private trailElement;
25
23
  private trailAnimation?;
26
- constructor(animationFrameHandler: AnimationFrameHandler, app: App, options: Partial<LaserPointerOptions> & Partial<AnimatedTrailOptions>);
24
+ private key;
25
+ private static counter;
26
+ constructor(app: App, options: Partial<LaserPointerOptions> & Partial<AnimatedTrailOptions>);
27
27
  get hasCurrentTrail(): boolean;
28
28
  hasLastPoint(x: number, y: number): boolean;
29
+ private cleanup;
29
30
  start(container?: SVGSVGElement): void;
30
31
  stop(): void;
31
32
  startPath(x: number, y: number): void;