@excalidraw/element 0.18.0-2a82821 → 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 (160) hide show
  1. package/dist/dev/index.js +5570 -3546
  2. package/dist/dev/index.js.map +4 -4
  3. package/dist/prod/index.js +12 -12
  4. package/dist/types/common/src/colors.d.ts +19 -0
  5. package/dist/types/common/src/constants.d.ts +3 -0
  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 +1 -1
  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 +5 -9
  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 +4 -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 +3 -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 +4 -4
  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 +14 -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 +5 -5
  33. package/dist/types/element/src/shape.d.ts +12 -0
  34. package/dist/types/element/src/sortElements.d.ts +10 -0
  35. package/dist/types/element/src/textElement.d.ts +13 -9
  36. package/dist/types/element/src/transform.d.ts +2 -2
  37. package/dist/types/element/src/typeChecks.d.ts +25 -25
  38. package/dist/types/element/src/types.d.ts +9 -1
  39. package/dist/types/element/src/utils.d.ts +7 -3
  40. package/dist/types/element/src/zindex.d.ts +2 -2
  41. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +36 -12
  42. package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
  43. package/dist/types/excalidraw/actions/actionBoundText.d.ts +24 -8
  44. package/dist/types/excalidraw/actions/actionCanvas.d.ts +146 -931
  45. package/dist/types/excalidraw/actions/actionClipboard.d.ts +24 -8
  46. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +12 -4
  47. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +38 -13
  48. package/dist/types/excalidraw/actions/actionDeselect.d.ts +9 -4
  49. package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
  50. package/dist/types/excalidraw/actions/actionElementLink.d.ts +12 -4
  51. package/dist/types/excalidraw/actions/actionElementLock.d.ts +25 -9
  52. package/dist/types/excalidraw/actions/actionExport.d.ts +26 -10
  53. package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
  54. package/dist/types/excalidraw/actions/actionFrame.d.ts +48 -197
  55. package/dist/types/excalidraw/actions/actionGroup.d.ts +39 -23
  56. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +16 -6
  57. package/dist/types/excalidraw/actions/actionLink.d.ts +13 -5
  58. package/dist/types/excalidraw/actions/actionMenu.d.ts +12 -4
  59. package/dist/types/excalidraw/actions/actionProperties.d.ts +43 -24
  60. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +17 -9
  61. package/dist/types/excalidraw/actions/actionStyles.d.ts +12 -4
  62. package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
  63. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +13 -5
  64. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +16 -9
  65. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +13 -5
  66. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +13 -5
  67. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +16 -9
  68. package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
  69. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +13 -5
  70. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +14 -6
  71. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +13 -5
  72. package/dist/types/excalidraw/actions/index.d.ts +1 -2
  73. package/dist/types/excalidraw/actions/manager.d.ts +1 -0
  74. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  75. package/dist/types/excalidraw/actions/types.d.ts +8 -4
  76. package/dist/types/excalidraw/appState.d.ts +9 -4
  77. package/dist/types/excalidraw/components/Actions.d.ts +17 -12
  78. package/dist/types/excalidraw/components/App.arrowText.d.ts +104 -0
  79. package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
  80. package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
  81. package/dist/types/excalidraw/components/App.d.ts +372 -67
  82. package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
  83. package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
  84. package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
  85. package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
  86. package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
  87. package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +3 -1
  88. package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
  89. package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
  90. package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
  91. package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
  92. package/dist/types/excalidraw/components/ColorPicker/topPicksDnD.d.ts +31 -0
  93. package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +1 -1
  94. package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
  95. package/dist/types/excalidraw/components/{ToolButton.d.ts → IconButton.d.ts} +16 -19
  96. package/dist/types/excalidraw/components/Island.d.ts +7 -0
  97. package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
  98. package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
  99. package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
  100. package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
  101. package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
  102. package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
  103. package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
  104. package/dist/types/excalidraw/components/Popover.d.ts +1 -3
  105. package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
  106. package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
  107. package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
  108. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
  109. package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
  110. package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
  111. package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
  112. package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
  113. package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
  114. package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
  115. package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
  116. package/dist/types/excalidraw/components/Tools.d.ts +146 -0
  117. package/dist/types/excalidraw/components/UserList.d.ts +3 -2
  118. package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
  119. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +2 -0
  120. package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
  121. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
  122. package/dist/types/excalidraw/components/icons.d.ts +4 -1
  123. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -1
  124. package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
  125. package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
  126. package/dist/types/excalidraw/data/blob.d.ts +28 -12
  127. package/dist/types/excalidraw/data/index.d.ts +4 -4
  128. package/dist/types/excalidraw/data/json.d.ts +20 -12
  129. package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
  130. package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
  131. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  132. package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
  133. package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
  134. package/dist/types/excalidraw/renderer/animation.d.ts +1 -0
  135. package/dist/types/excalidraw/renderer/helpers.d.ts +7 -0
  136. package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -3
  137. package/dist/types/excalidraw/scene/Renderer.d.ts +12 -11
  138. package/dist/types/excalidraw/scene/export.d.ts +3 -3
  139. package/dist/types/excalidraw/scene/index.d.ts +1 -1
  140. package/dist/types/excalidraw/scene/types.d.ts +4 -3
  141. package/dist/types/excalidraw/snapping.d.ts +7 -7
  142. package/dist/types/excalidraw/types.d.ts +410 -20
  143. package/dist/types/excalidraw/viewport.d.ts +275 -0
  144. package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -3
  145. package/dist/types/laser-pointer/src/state.d.ts +1 -0
  146. package/dist/types/math/src/curve.d.ts +19 -12
  147. package/dist/types/math/src/index.d.ts +1 -0
  148. package/dist/types/math/src/pca.d.ts +79 -0
  149. package/dist/types/math/src/polygon.d.ts +25 -1
  150. package/dist/types/math/src/segment.d.ts +6 -0
  151. package/dist/types/utils/src/export.d.ts +3 -3
  152. package/package.json +4 -4
  153. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +0 -172
  154. package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
  155. package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
  156. package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
  157. package/dist/types/excalidraw/components/shapes.d.ts +0 -270
  158. package/dist/types/excalidraw/cursor.d.ts +0 -5
  159. package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
  160. package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
@@ -36,6 +36,10 @@ export declare const actionCopyStyles: {
36
36
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
37
37
  midPoint?: import("@excalidraw/math").GlobalPoint;
38
38
  } | null;
39
+ hoveredArrowTextAnchor: {
40
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
41
+ anchor: "start" | "end" | "label";
42
+ } | null;
39
43
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
40
44
  frameRendering: {
41
45
  enabled: boolean;
@@ -43,8 +47,8 @@ export declare const actionCopyStyles: {
43
47
  outline: boolean;
44
48
  clip: boolean;
45
49
  };
46
- editingFrame: string | null;
47
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
50
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
51
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
48
52
  editingTextElement: ExcalidrawTextElement | null;
49
53
  activeTool: {
50
54
  lastActiveTool: import("../types").ActiveTool | null;
@@ -80,6 +84,7 @@ export declare const actionCopyStyles: {
80
84
  viewBackgroundColor: string;
81
85
  scrollX: number;
82
86
  scrollY: number;
87
+ scrollConstraints: import("../types").ScrollConstraints | null;
83
88
  cursorButton: "up" | "down";
84
89
  scrolledOutside: boolean;
85
90
  name: string | null;
@@ -150,8 +155,6 @@ export declare const actionCopyStyles: {
150
155
  y: number;
151
156
  } | null;
152
157
  objectsSnapModeEnabled: boolean;
153
- userToFollow: import("../types").UserToFollow | null;
154
- followedBy: Set<import("../types").SocketId>;
155
158
  isCropping: boolean;
156
159
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
157
160
  searchMatches: Readonly<{
@@ -163,6 +166,11 @@ export declare const actionCopyStyles: {
163
166
  [groupId: string]: true;
164
167
  };
165
168
  bindMode: import("@excalidraw/element/types").BindMode;
169
+ colorTopPicks: {
170
+ elementStroke: readonly string[] | null;
171
+ elementBackground: readonly string[] | null;
172
+ bucketFill: readonly string[] | null;
173
+ };
166
174
  };
167
175
  captureUpdate: "EVENTUALLY";
168
176
  };
@@ -7,7 +7,7 @@ export declare const actionTextAutoResize: {
7
7
  category: "element";
8
8
  };
9
9
  predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState, _: unknown) => boolean;
10
- perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, targetElement: unknown) => {
10
+ perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, targetElement: unknown, app: import("../types").AppClassProperties) => false | {
11
11
  appState: Readonly<import("../types").AppState>;
12
12
  elements: import("@excalidraw/element/types").OrderedExcalidrawElement[];
13
13
  captureUpdate: "IMMEDIATELY";
@@ -32,6 +32,10 @@ export declare const actionToggleArrowBinding: {
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,8 +43,8 @@ export declare const actionToggleArrowBinding: {
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;
46
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
47
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
44
48
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
45
49
  activeTool: {
46
50
  lastActiveTool: import("../types").ActiveTool | null;
@@ -76,6 +80,7 @@ export declare const actionToggleArrowBinding: {
76
80
  viewBackgroundColor: string;
77
81
  scrollX: number;
78
82
  scrollY: number;
83
+ scrollConstraints: import("../types").ScrollConstraints | null;
79
84
  cursorButton: "up" | "down";
80
85
  scrolledOutside: boolean;
81
86
  name: string | null;
@@ -151,8 +156,6 @@ export declare const actionToggleArrowBinding: {
151
156
  y: number;
152
157
  } | null;
153
158
  objectsSnapModeEnabled: boolean;
154
- userToFollow: import("../types").UserToFollow | null;
155
- followedBy: Set<import("../types").SocketId>;
156
159
  isCropping: boolean;
157
160
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
158
161
  searchMatches: Readonly<{
@@ -164,10 +167,15 @@ export declare const actionToggleArrowBinding: {
164
167
  [groupId: string]: true;
165
168
  };
166
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
+ };
167
175
  };
168
176
  captureUpdate: "NEVER";
169
177
  };
170
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
178
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
171
179
  } & {
172
180
  keyTest?: undefined;
173
181
  };
@@ -1,4 +1,3 @@
1
- import type { AppState } from "../types";
2
1
  export declare const actionToggleGridMode: {
3
2
  name: "gridMode";
4
3
  icon: import("react/jsx-runtime").JSX.Element;
@@ -7,9 +6,9 @@ export declare const actionToggleGridMode: {
7
6
  viewMode: true;
8
7
  trackEvent: {
9
8
  category: "canvas";
10
- predicate: (appState: Readonly<AppState>) => boolean;
9
+ predicate: (appState: Readonly<import("../types").AppState>) => boolean;
11
10
  };
12
- perform(elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>): {
11
+ perform(elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>): {
13
12
  appState: {
14
13
  gridModeEnabled: boolean;
15
14
  objectsSnapModeEnabled: false;
@@ -37,6 +36,10 @@ export declare const actionToggleGridMode: {
37
36
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
38
37
  midPoint?: import("@excalidraw/math").GlobalPoint;
39
38
  } | null;
39
+ hoveredArrowTextAnchor: {
40
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
41
+ anchor: "start" | "end" | "label";
42
+ } | null;
40
43
  frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
41
44
  frameRendering: {
42
45
  enabled: boolean;
@@ -44,8 +47,8 @@ export declare const actionToggleGridMode: {
44
47
  outline: boolean;
45
48
  clip: boolean;
46
49
  };
47
- editingFrame: string | null;
48
- elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
50
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
51
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
49
52
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
50
53
  activeTool: {
51
54
  lastActiveTool: import("../types").ActiveTool | null;
@@ -81,6 +84,7 @@ export declare const actionToggleGridMode: {
81
84
  viewBackgroundColor: string;
82
85
  scrollX: number;
83
86
  scrollY: number;
87
+ scrollConstraints: import("../types").ScrollConstraints | null;
84
88
  cursorButton: "up" | "down";
85
89
  scrolledOutside: boolean;
86
90
  name: string | null;
@@ -154,8 +158,6 @@ export declare const actionToggleGridMode: {
154
158
  x: number;
155
159
  y: number;
156
160
  } | null;
157
- userToFollow: import("../types").UserToFollow | null;
158
- followedBy: Set<import("../types").SocketId>;
159
161
  isCropping: boolean;
160
162
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
161
163
  searchMatches: Readonly<{
@@ -167,11 +169,16 @@ export declare const actionToggleGridMode: {
167
169
  [groupId: string]: true;
168
170
  };
169
171
  bindMode: import("@excalidraw/element/types").BindMode;
172
+ colorTopPicks: {
173
+ elementStroke: readonly string[] | null;
174
+ elementBackground: readonly string[] | null;
175
+ bucketFill: readonly string[] | null;
176
+ };
170
177
  };
171
178
  captureUpdate: "EVENTUALLY";
172
179
  };
173
- checked: (appState: AppState) => boolean;
174
- predicate: (element: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: AppState, props: import("../types").ExcalidrawProps) => boolean;
180
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
181
+ predicate: (element: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, props: import("../types").ExcalidrawProps) => boolean;
175
182
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
176
183
  } & {
177
184
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
@@ -32,6 +32,10 @@ export declare const actionToggleMidpointSnapping: {
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,8 +43,8 @@ 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;
46
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
47
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
44
48
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
45
49
  activeTool: {
46
50
  lastActiveTool: import("../types").ActiveTool | null;
@@ -76,6 +80,7 @@ export declare const actionToggleMidpointSnapping: {
76
80
  viewBackgroundColor: string;
77
81
  scrollX: number;
78
82
  scrollY: number;
83
+ scrollConstraints: import("../types").ScrollConstraints | null;
79
84
  cursorButton: "up" | "down";
80
85
  scrolledOutside: boolean;
81
86
  name: string | null;
@@ -151,8 +156,6 @@ export declare const actionToggleMidpointSnapping: {
151
156
  y: number;
152
157
  } | null;
153
158
  objectsSnapModeEnabled: boolean;
154
- userToFollow: import("../types").UserToFollow | null;
155
- followedBy: Set<import("../types").SocketId>;
156
159
  isCropping: boolean;
157
160
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
158
161
  searchMatches: Readonly<{
@@ -164,10 +167,15 @@ export declare const actionToggleMidpointSnapping: {
164
167
  [groupId: string]: true;
165
168
  };
166
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
+ };
167
175
  };
168
176
  captureUpdate: "NEVER";
169
177
  };
170
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
178
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
171
179
  } & {
172
180
  keyTest?: undefined;
173
181
  };
@@ -35,6 +35,10 @@ export declare const actionToggleObjectsSnapMode: {
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,8 +46,8 @@ 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;
49
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
50
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
47
51
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
48
52
  activeTool: {
49
53
  lastActiveTool: import("../types").ActiveTool | null;
@@ -79,6 +83,7 @@ export declare const actionToggleObjectsSnapMode: {
79
83
  viewBackgroundColor: string;
80
84
  scrollX: number;
81
85
  scrollY: number;
86
+ scrollConstraints: import("../types").ScrollConstraints | null;
82
87
  cursorButton: "up" | "down";
83
88
  scrolledOutside: boolean;
84
89
  name: string | null;
@@ -152,8 +157,6 @@ export declare const actionToggleObjectsSnapMode: {
152
157
  x: number;
153
158
  y: number;
154
159
  } | null;
155
- userToFollow: import("../types").UserToFollow | null;
156
- followedBy: Set<import("../types").SocketId>;
157
160
  isCropping: boolean;
158
161
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
159
162
  searchMatches: Readonly<{
@@ -165,10 +168,15 @@ export declare const actionToggleObjectsSnapMode: {
165
168
  [groupId: string]: true;
166
169
  };
167
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
+ };
168
176
  };
169
177
  captureUpdate: "EVENTUALLY";
170
178
  };
171
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
179
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
172
180
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps) => boolean;
173
181
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
174
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";
@@ -41,6 +40,10 @@ export declare const actionToggleSearchMenu: {
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,8 +51,8 @@ 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;
54
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
55
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
53
56
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
54
57
  activeTool: {
55
58
  lastActiveTool: import("../types").ActiveTool | null;
@@ -85,6 +88,7 @@ export declare const actionToggleSearchMenu: {
85
88
  viewBackgroundColor: string;
86
89
  scrollX: number;
87
90
  scrollY: number;
91
+ scrollConstraints: import("../types").ScrollConstraints | null;
88
92
  cursorButton: "up" | "down";
89
93
  scrolledOutside: boolean;
90
94
  name: string | null;
@@ -139,8 +143,6 @@ export declare const actionToggleSearchMenu: {
139
143
  y: number;
140
144
  } | null;
141
145
  objectsSnapModeEnabled: boolean;
142
- userToFollow: import("../types").UserToFollow | null;
143
- followedBy: Set<import("../types").SocketId>;
144
146
  isCropping: boolean;
145
147
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
146
148
  searchMatches: Readonly<{
@@ -152,11 +154,16 @@ export declare const actionToggleSearchMenu: {
152
154
  [groupId: string]: true;
153
155
  };
154
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
+ };
155
162
  };
156
163
  captureUpdate: "EVENTUALLY";
157
164
  };
158
- checked: (appState: AppState) => boolean;
159
- 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;
160
167
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
161
168
  } & {
162
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;
@@ -37,6 +37,10 @@ export declare const actionToggleStats: {
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,8 +48,8 @@ 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;
51
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
52
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
49
53
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
50
54
  activeTool: {
51
55
  lastActiveTool: import("../types").ActiveTool | null;
@@ -81,6 +85,7 @@ export declare const actionToggleStats: {
81
85
  viewBackgroundColor: string;
82
86
  scrollX: number;
83
87
  scrollY: number;
88
+ scrollConstraints: import("../types").ScrollConstraints | null;
84
89
  cursorButton: "up" | "down";
85
90
  scrolledOutside: boolean;
86
91
  name: string | null;
@@ -152,8 +157,6 @@ export declare const actionToggleStats: {
152
157
  y: number;
153
158
  } | null;
154
159
  objectsSnapModeEnabled: boolean;
155
- userToFollow: import("../types").UserToFollow | null;
156
- followedBy: Set<import("../types").SocketId>;
157
160
  isCropping: boolean;
158
161
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
159
162
  searchMatches: Readonly<{
@@ -165,10 +168,15 @@ export declare const actionToggleStats: {
165
168
  [groupId: string]: true;
166
169
  };
167
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
+ };
168
176
  };
169
177
  captureUpdate: "EVENTUALLY";
170
178
  };
171
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
179
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
172
180
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
173
181
  } & {
174
182
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
@@ -34,6 +34,10 @@ export declare const actionToggleViewMode: {
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,8 +45,8 @@ 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;
48
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
49
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
46
50
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
47
51
  activeTool: {
48
52
  lastActiveTool: import("../types").ActiveTool | null;
@@ -78,6 +82,7 @@ export declare const actionToggleViewMode: {
78
82
  viewBackgroundColor: string;
79
83
  scrollX: number;
80
84
  scrollY: number;
85
+ scrollConstraints: import("../types").ScrollConstraints | null;
81
86
  cursorButton: "up" | "down";
82
87
  scrolledOutside: boolean;
83
88
  name: string | null;
@@ -152,8 +157,6 @@ export declare const actionToggleViewMode: {
152
157
  y: number;
153
158
  } | null;
154
159
  objectsSnapModeEnabled: boolean;
155
- userToFollow: import("../types").UserToFollow | null;
156
- followedBy: Set<import("../types").SocketId>;
157
160
  isCropping: boolean;
158
161
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
159
162
  searchMatches: Readonly<{
@@ -165,11 +168,16 @@ export declare const actionToggleViewMode: {
165
168
  [groupId: string]: true;
166
169
  };
167
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
+ };
168
176
  };
169
177
  captureUpdate: "EVENTUALLY";
170
178
  };
171
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
172
- 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;
173
181
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
174
182
  } & {
175
183
  keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
@@ -34,6 +34,10 @@ export declare const actionToggleZenMode: {
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,8 +45,8 @@ 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;
48
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
49
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
46
50
  editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
47
51
  activeTool: {
48
52
  lastActiveTool: import("../types").ActiveTool | null;
@@ -78,6 +82,7 @@ export declare const actionToggleZenMode: {
78
82
  viewBackgroundColor: string;
79
83
  scrollX: number;
80
84
  scrollY: number;
85
+ scrollConstraints: import("../types").ScrollConstraints | null;
81
86
  cursorButton: "up" | "down";
82
87
  scrolledOutside: boolean;
83
88
  name: string | null;
@@ -152,8 +157,6 @@ export declare const actionToggleZenMode: {
152
157
  y: number;
153
158
  } | null;
154
159
  objectsSnapModeEnabled: boolean;
155
- userToFollow: import("../types").UserToFollow | null;
156
- followedBy: Set<import("../types").SocketId>;
157
160
  isCropping: boolean;
158
161
  croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
159
162
  searchMatches: Readonly<{
@@ -165,10 +168,15 @@ export declare const actionToggleZenMode: {
165
168
  [groupId: string]: true;
166
169
  };
167
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
+ };
168
176
  };
169
177
  captureUpdate: "EVENTUALLY";
170
178
  };
171
- checked: (appState: Readonly<import("../types").AppState>) => boolean;
179
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
172
180
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[], appState: import("../types").AppState, appProps: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
173
181
  keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
174
182
  } & {
@@ -2,9 +2,8 @@ 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, actionChangeFreedrawMode, 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";
9
8
  export { actionDeselect } from "./actionDeselect";
10
9
  export { actionChangeProjectName, actionChangeExportBackground, actionSaveToActiveFile, actionSaveFileToDisk, actionLoadScene, } from "./actionExport";
@@ -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;