@myoc/excalidraw 0.19.536 → 0.19.539

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 (73) hide show
  1. package/CHANGELOG.md +105 -1
  2. package/dist/dev/{chunk-SKCAT7JG.js → chunk-2OVHIH4L.js} +4 -1
  3. package/dist/dev/chunk-2OVHIH4L.js.map +7 -0
  4. package/dist/dev/{chunk-E5FRZJMM.js → chunk-HJ2ALDN7.js} +34 -6
  5. package/dist/dev/chunk-HJ2ALDN7.js.map +7 -0
  6. package/dist/dev/{chunk-GMDJS52C.js → chunk-IJ2BHUZB.js} +2 -2
  7. package/dist/dev/data/{image-ADOTOLKB.js → image-2GHT4EI2.js} +3 -3
  8. package/dist/dev/index.css +115 -93
  9. package/dist/dev/index.css.map +3 -3
  10. package/dist/dev/index.js +1302 -1241
  11. package/dist/dev/index.js.map +4 -4
  12. package/dist/dev/locales/{en-RETPDZ4S.js → en-JINXO2V2.js} +2 -2
  13. package/dist/dev/subset-shared.chunk.js +1 -1
  14. package/dist/dev/subset-worker.chunk.js +1 -1
  15. package/dist/prod/chunk-5VYFU2RO.js +4 -0
  16. package/dist/prod/{chunk-DARW3V66.js → chunk-KGIBYNMP.js} +3 -3
  17. package/dist/prod/{chunk-U2M5DXIZ.js → chunk-U2CW5GZO.js} +1 -1
  18. package/dist/prod/data/image-VJFP4SPS.js +1 -0
  19. package/dist/prod/index.css +1 -1
  20. package/dist/prod/index.js +16 -16
  21. package/dist/prod/locales/{en-RNZ7CUK6.js → en-2ZA2LKRK.js} +1 -1
  22. package/dist/prod/subset-shared.chunk.js +1 -1
  23. package/dist/prod/subset-worker.chunk.js +1 -1
  24. package/dist/types/common/src/utils.d.ts +15 -12
  25. package/dist/types/element/src/align.d.ts +5 -1
  26. package/dist/types/excalidraw/actions/actionAlign.d.ts +192 -0
  27. package/dist/types/excalidraw/actions/actionBoundText.d.ts +8 -0
  28. package/dist/types/excalidraw/actions/actionCanvas.d.ts +24 -0
  29. package/dist/types/excalidraw/actions/actionClipboard.d.ts +8 -0
  30. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +4 -0
  31. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +12 -0
  32. package/dist/types/excalidraw/actions/actionDeselect.d.ts +4 -1
  33. package/dist/types/excalidraw/actions/actionElementLink.d.ts +4 -0
  34. package/dist/types/excalidraw/actions/actionElementLock.d.ts +8 -1
  35. package/dist/types/excalidraw/actions/actionExport.d.ts +8 -0
  36. package/dist/types/excalidraw/actions/actionFlipViewpoint.d.ts +43 -0
  37. package/dist/types/excalidraw/actions/actionFrame.d.ts +12 -0
  38. package/dist/types/excalidraw/actions/actionGroup.d.ts +8 -0
  39. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +4 -0
  40. package/dist/types/excalidraw/actions/actionLink.d.ts +4 -0
  41. package/dist/types/excalidraw/actions/actionMenu.d.ts +4 -0
  42. package/dist/types/excalidraw/actions/actionProperties.d.ts +8 -0
  43. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +4 -0
  44. package/dist/types/excalidraw/actions/actionStyles.d.ts +4 -0
  45. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +4 -0
  46. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +4 -0
  47. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +4 -0
  48. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +4 -0
  49. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +4 -0
  50. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +4 -0
  51. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +4 -0
  52. package/dist/types/excalidraw/actions/index.d.ts +2 -1
  53. package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
  54. package/dist/types/excalidraw/actions/types.d.ts +1 -3
  55. package/dist/types/excalidraw/appState.d.ts +3 -0
  56. package/dist/types/excalidraw/components/App.d.ts +0 -1
  57. package/dist/types/excalidraw/components/Tools.d.ts +0 -1
  58. package/dist/types/excalidraw/data/blob.d.ts +4 -0
  59. package/dist/types/excalidraw/data/json.d.ts +4 -0
  60. package/dist/types/excalidraw/editorPreferences.d.ts +5 -2
  61. package/dist/types/excalidraw/index.d.ts +1 -2
  62. package/dist/types/excalidraw/renderer/viewpoint.d.ts +8 -0
  63. package/dist/types/excalidraw/types.d.ts +12 -7
  64. package/dist/types/excalidraw/viewport.d.ts +4 -0
  65. package/package.json +4 -4
  66. package/dist/dev/chunk-E5FRZJMM.js.map +0 -7
  67. package/dist/dev/chunk-SKCAT7JG.js.map +0 -7
  68. package/dist/prod/chunk-HIDXO6YX.js +0 -4
  69. package/dist/prod/data/image-PXICHQZX.js +0 -1
  70. package/dist/types/excalidraw/keyboardShortcuts.d.ts +0 -27
  71. /package/dist/dev/{chunk-GMDJS52C.js.map → chunk-IJ2BHUZB.js.map} +0 -0
  72. /package/dist/dev/data/{image-ADOTOLKB.js.map → image-2GHT4EI2.js.map} +0 -0
  73. /package/dist/dev/locales/{en-RETPDZ4S.js.map → en-JINXO2V2.js.map} +0 -0
@@ -1 +1 @@
1
- import{A,B,C,D,E,F,G,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunk-DARW3V66.js";import"../chunk-SRAX5OIU.js";export{e as alerts,h as bucketfill,d as buttons,l as canvasError,t as clearCanvasDialog,A as colorPicker,y as colors,G as default,i as element,b as elementLink,v as encrypted,p as errorDialog,m as errorSplash,f as errors,r as exportDialog,D as fontList,j as headings,s as helpDialog,k as hints,u as imageExportDialog,F as keys,a as labels,B as overwriteConfirm,q as progressDialog,C as quickSearch,o as roomDialog,c as search,n as shareDialog,w as stats,x as toast,g as toolBar,E as userList,z as welcomeScreen};
1
+ import{A,B,C,D,E,F,G,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunk-KGIBYNMP.js";import"../chunk-SRAX5OIU.js";export{e as alerts,h as bucketfill,d as buttons,l as canvasError,t as clearCanvasDialog,A as colorPicker,y as colors,G as default,i as element,b as elementLink,v as encrypted,p as errorDialog,m as errorSplash,f as errors,r as exportDialog,D as fontList,j as headings,s as helpDialog,k as hints,u as imageExportDialog,F as keys,a as labels,B as overwriteConfirm,q as progressDialog,C as quickSearch,o as roomDialog,c as search,n as shareDialog,w as stats,x as toast,g as toolBar,E as userList,z as welcomeScreen};
@@ -1 +1 @@
1
- import{a,b,c,d}from"./chunk-Z5NKEFVG.js";import"./chunk-U2M5DXIZ.js";import"./chunk-SRAX5OIU.js";export{a as Commands,b as subsetToBase64,c as subsetToBinary,d as toBase64};
1
+ import{a,b,c,d}from"./chunk-Z5NKEFVG.js";import"./chunk-U2CW5GZO.js";import"./chunk-SRAX5OIU.js";export{a as Commands,b as subsetToBase64,c as subsetToBinary,d as toBase64};
@@ -1 +1 @@
1
- import{a as r,c as t}from"./chunk-Z5NKEFVG.js";import"./chunk-U2M5DXIZ.js";import"./chunk-SRAX5OIU.js";var s=import.meta.url?new URL(import.meta.url):void 0;typeof window>"u"&&typeof self<"u"&&(self.onmessage=async e=>{switch(e.data.command){case r.Subset:let a=await t(e.data.arrayBuffer,e.data.codePoints);self.postMessage(a,{transfer:[a]});break}});export{s as WorkerUrl};
1
+ import{a as r,c as t}from"./chunk-Z5NKEFVG.js";import"./chunk-U2CW5GZO.js";import"./chunk-SRAX5OIU.js";var s=import.meta.url?new URL(import.meta.url):void 0;typeof window>"u"&&typeof self<"u"&&(self.onmessage=async e=>{switch(e.data.command){case r.Subset:let a=await t(e.data.arrayBuffer,e.data.codePoints);self.postMessage(a,{transfer:[a]});break}});export{s as WorkerUrl};
@@ -56,26 +56,29 @@ export declare const updateActiveTool: (appState: Pick<AppState, "activeTool">,
56
56
  export declare const isFullScreen: () => boolean;
57
57
  export declare const allowFullScreen: () => Promise<void>;
58
58
  export declare const exitFullScreen: () => Promise<void>;
59
- export declare const viewportCoordsToSceneCoords: ({ clientX, clientY }: {
60
- clientX: number;
61
- clientY: number;
62
- }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }: {
59
+ export type ViewpointFlip = Readonly<{
60
+ horizontal: boolean;
61
+ vertical: boolean;
62
+ }>;
63
+ export declare const getViewpointFlipSign: (flipped: boolean) => 1 | -1;
64
+ type ViewportTransformState = {
63
65
  zoom: Zoom;
64
66
  offsetLeft: number;
65
67
  offsetTop: number;
66
68
  scrollX: number;
67
69
  scrollY: number;
68
- }) => GlobalCoord;
70
+ width?: number;
71
+ height?: number;
72
+ viewpointFlip?: ViewpointFlip;
73
+ };
74
+ export declare const viewportCoordsToSceneCoords: ({ clientX, clientY }: {
75
+ clientX: number;
76
+ clientY: number;
77
+ }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, width, height, viewpointFlip, }: ViewportTransformState) => GlobalCoord;
69
78
  export declare const sceneCoordsToViewportCoords: ({ sceneX, sceneY }: {
70
79
  sceneX: number;
71
80
  sceneY: number;
72
- }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, }: {
73
- zoom: Zoom;
74
- offsetLeft: number;
75
- offsetTop: number;
76
- scrollX: number;
77
- scrollY: number;
78
- }) => {
81
+ }, { zoom, offsetLeft, offsetTop, scrollX, scrollY, width, height, viewpointFlip, }: ViewportTransformState) => {
79
82
  x: number;
80
83
  y: number;
81
84
  };
@@ -5,4 +5,8 @@ export interface Alignment {
5
5
  position: "start" | "center" | "end";
6
6
  axis: "x" | "y";
7
7
  }
8
- export declare const alignElements: (selectedElements: NonDeletedExcalidrawElement[], alignment: Alignment, scene: Scene, appState: Readonly<AppState>) => NonDeletedExcalidrawElement[];
8
+ export interface AlignElementsOptions {
9
+ stacking?: boolean;
10
+ gap?: number;
11
+ }
12
+ export declare const alignElements: (selectedElements: NonDeletedExcalidrawElement[], alignment: Alignment, scene: Scene, appState: Readonly<AppState>, options?: AlignElementsOptions) => NonDeletedExcalidrawElement[];
@@ -1,6 +1,198 @@
1
1
  import type { ExcalidrawElement } from "@excalidraw/element/types";
2
2
  import type { AppClassProperties, AppState, UIAppState } from "../types";
3
3
  export declare const alignActionsPredicate: (appState: UIAppState, app: AppClassProperties) => boolean;
4
+ export declare const actionToggleAlignStacking: {
5
+ name: "toggleAlignStacking";
6
+ label: string;
7
+ trackEvent: {
8
+ category: "element";
9
+ };
10
+ predicate: (_elements: readonly ExcalidrawElement[], appState: AppState, _appProps: import("../types").ExcalidrawProps, app: AppClassProperties) => boolean;
11
+ perform: (_elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, value: unknown, app: AppClassProperties) => {
12
+ appState: {
13
+ alignConfiguration: {
14
+ stacking: boolean;
15
+ };
16
+ contextMenu: {
17
+ items: import("../components/ContextMenu").ContextMenuItems;
18
+ top: number;
19
+ left: number;
20
+ } | null;
21
+ showWelcomeScreen: boolean;
22
+ isLoading: boolean;
23
+ myocSimplifiedMode: boolean;
24
+ dontResizeLimitMBs: number;
25
+ hideMainMenus: boolean;
26
+ wheelZoomsOnDefault?: boolean;
27
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
28
+ arrangeConfiguration: {
29
+ algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
30
+ gap: number;
31
+ };
32
+ normaliseConfiguration: {
33
+ mode: import("../types").NormaliseMode;
34
+ metric: import("../types").NormaliseMetric;
35
+ };
36
+ errorMessage: React.ReactNode;
37
+ activeEmbeddable: {
38
+ element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
39
+ state: "hover" | "active";
40
+ } | null;
41
+ newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
42
+ resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
43
+ multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
44
+ selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
45
+ isBindingEnabled: boolean;
46
+ boxSelectionMode: import("../types").BoxSelectionMode;
47
+ bindingPreference: "enabled" | "disabled";
48
+ isMidpointSnappingEnabled: boolean;
49
+ suggestedBinding: {
50
+ element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
51
+ midPoint?: import("@excalidraw/math").GlobalPoint;
52
+ } | null;
53
+ hoveredArrowTextAnchor: {
54
+ elementId: import("@excalidraw/element/types").ExcalidrawArrowElement["id"];
55
+ anchor: "start" | "end" | "label";
56
+ } | null;
57
+ frameToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
58
+ frameRendering: {
59
+ enabled: boolean;
60
+ name: boolean;
61
+ outline: boolean;
62
+ clip: boolean;
63
+ };
64
+ editingFrame: import("@excalidraw/element/types").ExcalidrawFrameLikeElement["id"] | null;
65
+ elementsToHighlight: readonly import("@excalidraw/element/types").NonDeletedExcalidrawElement[] | null;
66
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
67
+ activeTool: {
68
+ lastActiveTool: import("../types").ActiveTool | null;
69
+ locked: boolean;
70
+ fromSelection: boolean;
71
+ } & import("../types").ActiveTool;
72
+ preferredSelectionTool: {
73
+ type: "selection" | "lasso";
74
+ initialized: boolean;
75
+ };
76
+ penMode: boolean;
77
+ penDetected: boolean;
78
+ exportBackground: boolean;
79
+ exportEmbedScene: boolean;
80
+ exportWithDarkMode: boolean;
81
+ exportScale: number;
82
+ currentItemStrokeColor: string;
83
+ currentItemBackgroundColor: string;
84
+ currentItemFillStyle: ExcalidrawElement["fillStyle"];
85
+ currentItemStrokeWidthKey: import("@excalidraw/common").StrokeWidthKey;
86
+ currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
87
+ currentItemRoughness: number;
88
+ currentItemStrokeVariability: import("@excalidraw/element/types").StrokeVariability;
89
+ currentItemOpacity: number;
90
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
91
+ currentItemFontSize: number;
92
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
93
+ currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
94
+ currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
95
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
96
+ currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
97
+ currentItemArrowType: "sharp" | "round" | "elbow";
98
+ viewBackgroundColor: string;
99
+ scrollX: number;
100
+ scrollY: number;
101
+ scrollConstraints: import("../types").ScrollConstraints | null;
102
+ cursorButton: "up" | "down";
103
+ scrolledOutside: boolean;
104
+ name: string | null;
105
+ isResizing: boolean;
106
+ isRotating: boolean;
107
+ zoom: import("../types").Zoom;
108
+ openMenu: "canvas" | null;
109
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | "gifFrameGallery" | "gifSpeedPicker" | null;
110
+ openSidebar: {
111
+ name: import("../types").SidebarName;
112
+ tab?: import("../types").SidebarTabName;
113
+ } | null;
114
+ openDialog: null | {
115
+ name: "imageExport" | "help" | "jsonExport";
116
+ } | {
117
+ name: "settings";
118
+ } | {
119
+ name: "elementLinkSelector";
120
+ sourceElementId: ExcalidrawElement["id"];
121
+ } | {
122
+ name: "charts";
123
+ data: import("../charts").Spreadsheet;
124
+ rawText: string;
125
+ };
126
+ defaultSidebarDockedPreference: boolean;
127
+ lastPointerDownWith: import("@excalidraw/element/types").PointerType;
128
+ selectedElementIds: Readonly<{
129
+ [id: string]: true;
130
+ }>;
131
+ hoveredElementIds: Readonly<{
132
+ [id: string]: true;
133
+ }>;
134
+ previousSelectedElementIds: {
135
+ [id: string]: true;
136
+ };
137
+ selectedElementsAreBeingDragged: boolean;
138
+ shouldCacheIgnoreZoom: boolean;
139
+ toast: {
140
+ message: React.ReactNode;
141
+ closable?: boolean;
142
+ duration?: number;
143
+ } | null;
144
+ zenModeEnabled: boolean;
145
+ theme: import("@excalidraw/element/types").Theme;
146
+ gridSize: number;
147
+ gridStep: number;
148
+ gridModeEnabled: boolean;
149
+ viewModeEnabled: boolean;
150
+ viewModeOnly: boolean;
151
+ selectedGroupIds: {
152
+ [groupId: string]: boolean;
153
+ };
154
+ editingGroupId: import("@excalidraw/element/types").GroupId | null;
155
+ width: number;
156
+ height: number;
157
+ offsetTop: number;
158
+ offsetLeft: number;
159
+ fileHandle: FileSystemFileHandle | null;
160
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
161
+ stats: {
162
+ open: boolean;
163
+ panels: number;
164
+ };
165
+ showHyperlinkPopup: false | "info" | "editor";
166
+ selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
167
+ snapLines: readonly import("../snapping").SnapLine[];
168
+ originSnapOffset: {
169
+ x: number;
170
+ y: number;
171
+ } | null;
172
+ objectsSnapModeEnabled: boolean;
173
+ isCropping: boolean;
174
+ croppingElementId: ExcalidrawElement["id"] | null;
175
+ searchMatches: Readonly<{
176
+ focusedId: ExcalidrawElement["id"] | null;
177
+ matches: readonly import("../types").SearchMatch[];
178
+ }> | null;
179
+ activeLockedId: string | null;
180
+ lockedMultiSelections: {
181
+ [groupId: string]: true;
182
+ };
183
+ bindMode: import("@excalidraw/element/types").BindMode;
184
+ colorTopPicks: {
185
+ elementStroke: readonly string[] | null;
186
+ elementBackground: readonly string[] | null;
187
+ bucketFill: readonly string[] | null;
188
+ };
189
+ };
190
+ captureUpdate: "NEVER";
191
+ };
192
+ PanelComponent: ({ appState, updateData, appProps }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
193
+ } & {
194
+ keyTest?: undefined;
195
+ };
4
196
  export declare const actionAlignTop: {
5
197
  name: "alignTop";
6
198
  label: string;
@@ -40,6 +40,10 @@ export declare const actionBindText: {
40
40
  dontResizeLimitMBs: number;
41
41
  hideMainMenus: boolean;
42
42
  wheelZoomsOnDefault?: boolean;
43
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
44
+ alignConfiguration: {
45
+ stacking: boolean;
46
+ };
43
47
  arrangeConfiguration: {
44
48
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
45
49
  gap: number;
@@ -228,6 +232,10 @@ export declare const actionWrapTextInContainer: {
228
232
  dontResizeLimitMBs: number;
229
233
  hideMainMenus: boolean;
230
234
  wheelZoomsOnDefault?: boolean;
235
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
236
+ alignConfiguration: {
237
+ stacking: boolean;
238
+ };
231
239
  arrangeConfiguration: {
232
240
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
233
241
  gap: number;
@@ -28,6 +28,10 @@ export declare const actionZoomIn: {
28
28
  dontResizeLimitMBs: number;
29
29
  hideMainMenus: boolean;
30
30
  wheelZoomsOnDefault?: boolean;
31
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
32
+ alignConfiguration: {
33
+ stacking: boolean;
34
+ };
31
35
  arrangeConfiguration: {
32
36
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
33
37
  gap: number;
@@ -220,6 +224,10 @@ export declare const actionZoomOut: {
220
224
  dontResizeLimitMBs: number;
221
225
  hideMainMenus: boolean;
222
226
  wheelZoomsOnDefault?: boolean;
227
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
228
+ alignConfiguration: {
229
+ stacking: boolean;
230
+ };
223
231
  arrangeConfiguration: {
224
232
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
225
233
  gap: number;
@@ -412,6 +420,10 @@ export declare const actionResetZoom: {
412
420
  dontResizeLimitMBs: number;
413
421
  hideMainMenus: boolean;
414
422
  wheelZoomsOnDefault?: boolean;
423
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
424
+ alignConfiguration: {
425
+ stacking: boolean;
426
+ };
415
427
  arrangeConfiguration: {
416
428
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
417
429
  gap: number;
@@ -604,6 +616,10 @@ export declare const actionZoomToFitSelectionInViewport: {
604
616
  dontResizeLimitMBs: number;
605
617
  hideMainMenus: boolean;
606
618
  wheelZoomsOnDefault?: boolean;
619
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
620
+ alignConfiguration: {
621
+ stacking: boolean;
622
+ };
607
623
  arrangeConfiguration: {
608
624
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
609
625
  gap: number;
@@ -795,6 +811,10 @@ export declare const actionZoomToFitSelection: {
795
811
  dontResizeLimitMBs: number;
796
812
  hideMainMenus: boolean;
797
813
  wheelZoomsOnDefault?: boolean;
814
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
815
+ alignConfiguration: {
816
+ stacking: boolean;
817
+ };
798
818
  arrangeConfiguration: {
799
819
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
800
820
  gap: number;
@@ -986,6 +1006,10 @@ export declare const actionZoomToFit: {
986
1006
  dontResizeLimitMBs: number;
987
1007
  hideMainMenus: boolean;
988
1008
  wheelZoomsOnDefault?: boolean;
1009
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
1010
+ alignConfiguration: {
1011
+ stacking: boolean;
1012
+ };
989
1013
  arrangeConfiguration: {
990
1014
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
991
1015
  gap: number;
@@ -22,6 +22,10 @@ export declare const actionPaste: {
22
22
  dontResizeLimitMBs: number;
23
23
  hideMainMenus: boolean;
24
24
  wheelZoomsOnDefault?: boolean;
25
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
26
+ alignConfiguration: {
27
+ stacking: boolean;
28
+ };
25
29
  arrangeConfiguration: {
26
30
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
27
31
  gap: number;
@@ -248,6 +252,10 @@ export declare const actionCopyAsPng: {
248
252
  dontResizeLimitMBs: number;
249
253
  hideMainMenus: boolean;
250
254
  wheelZoomsOnDefault?: boolean;
255
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
256
+ alignConfiguration: {
257
+ stacking: boolean;
258
+ };
251
259
  arrangeConfiguration: {
252
260
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
253
261
  gap: number;
@@ -22,6 +22,10 @@ export declare const actionToggleCropEditor: {
22
22
  dontResizeLimitMBs: number;
23
23
  hideMainMenus: boolean;
24
24
  wheelZoomsOnDefault?: boolean;
25
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
26
+ alignConfiguration: {
27
+ stacking: boolean;
28
+ };
25
29
  arrangeConfiguration: {
26
30
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
27
31
  gap: number;
@@ -23,6 +23,10 @@ export declare const actionDeleteSelected: {
23
23
  dontResizeLimitMBs: number;
24
24
  hideMainMenus: boolean;
25
25
  wheelZoomsOnDefault?: boolean;
26
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
27
+ alignConfiguration: {
28
+ stacking: boolean;
29
+ };
26
30
  arrangeConfiguration: {
27
31
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
28
32
  gap: number;
@@ -233,6 +237,10 @@ export declare const actionDeleteSelected: {
233
237
  dontResizeLimitMBs: number;
234
238
  hideMainMenus: boolean;
235
239
  wheelZoomsOnDefault?: boolean;
240
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
241
+ alignConfiguration: {
242
+ stacking: boolean;
243
+ };
236
244
  arrangeConfiguration: {
237
245
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
238
246
  gap: number;
@@ -421,6 +429,10 @@ export declare const actionDeleteSelected: {
421
429
  dontResizeLimitMBs: number;
422
430
  hideMainMenus: boolean;
423
431
  wheelZoomsOnDefault?: boolean;
432
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
433
+ alignConfiguration: {
434
+ stacking: boolean;
435
+ };
424
436
  arrangeConfiguration: {
425
437
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
426
438
  gap: number;
@@ -31,6 +31,10 @@ export declare const actionDeselect: {
31
31
  dontResizeLimitMBs: number;
32
32
  hideMainMenus: boolean;
33
33
  wheelZoomsOnDefault?: boolean;
34
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
35
+ alignConfiguration: {
36
+ stacking: boolean;
37
+ };
34
38
  arrangeConfiguration: {
35
39
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
36
40
  gap: number;
@@ -168,7 +172,6 @@ export declare const actionDeselect: {
168
172
  captureUpdate: "IMMEDIATELY";
169
173
  };
170
174
  keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, _: readonly import("@excalidraw/element/types").ExcalidrawElement[], app: AppClassProperties) => boolean;
171
- keyCondition: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, _: readonly import("@excalidraw/element/types").ExcalidrawElement[], app: AppClassProperties) => boolean;
172
175
  } & {
173
176
  keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, _: readonly import("@excalidraw/element/types").ExcalidrawElement[], app: AppClassProperties) => boolean) | undefined;
174
177
  };
@@ -24,6 +24,10 @@ export declare const actionLinkToElement: {
24
24
  dontResizeLimitMBs: number;
25
25
  hideMainMenus: boolean;
26
26
  wheelZoomsOnDefault?: boolean;
27
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
28
+ alignConfiguration: {
29
+ stacking: boolean;
30
+ };
27
31
  arrangeConfiguration: {
28
32
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
29
33
  gap: number;
@@ -33,6 +33,10 @@ export declare const actionToggleElementLock: {
33
33
  dontResizeLimitMBs: number;
34
34
  hideMainMenus: boolean;
35
35
  wheelZoomsOnDefault?: boolean;
36
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
37
+ alignConfiguration: {
38
+ stacking: boolean;
39
+ };
36
40
  arrangeConfiguration: {
37
41
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
38
42
  gap: number;
@@ -187,7 +191,6 @@ export declare const actionToggleElementLock: {
187
191
  captureUpdate: "IMMEDIATELY";
188
192
  };
189
193
  keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
190
- keyCondition: (_event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, _elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
191
194
  } & {
192
195
  keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean) | undefined;
193
196
  };
@@ -221,6 +224,10 @@ export declare const actionUnlockAllElements: {
221
224
  dontResizeLimitMBs: number;
222
225
  hideMainMenus: boolean;
223
226
  wheelZoomsOnDefault?: boolean;
227
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
228
+ alignConfiguration: {
229
+ stacking: boolean;
230
+ };
224
231
  arrangeConfiguration: {
225
232
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
226
233
  gap: number;
@@ -94,6 +94,7 @@ export declare const actionLoadScene: {
94
94
  zoom: import("../types").Zoom;
95
95
  scrollX: number;
96
96
  scrollY: number;
97
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
97
98
  viewModeEnabled: boolean;
98
99
  openDialog: null | {
99
100
  name: "imageExport" | "help" | "jsonExport";
@@ -176,6 +177,9 @@ export declare const actionLoadScene: {
176
177
  myocSimplifiedMode: boolean;
177
178
  dontResizeLimitMBs: number;
178
179
  hideMainMenus: boolean;
180
+ alignConfiguration: {
181
+ stacking: boolean;
182
+ };
179
183
  arrangeConfiguration: {
180
184
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
181
185
  gap: number;
@@ -268,6 +272,10 @@ export declare const actionLoadScene: {
268
272
  dontResizeLimitMBs: number;
269
273
  hideMainMenus: boolean;
270
274
  wheelZoomsOnDefault?: boolean;
275
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
276
+ alignConfiguration: {
277
+ stacking: boolean;
278
+ };
271
279
  arrangeConfiguration: {
272
280
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
273
281
  gap: number;
@@ -0,0 +1,43 @@
1
+ import type { AppState } from "../types";
2
+ export declare const actionFlipViewpointHorizontal: {
3
+ name: "flipViewpointHorizontal";
4
+ label: string;
5
+ viewMode: true;
6
+ trackEvent: {
7
+ category: "canvas";
8
+ };
9
+ perform: (_elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>) => {
10
+ appState: {
11
+ viewpointFlip: {
12
+ horizontal: boolean;
13
+ vertical: boolean;
14
+ };
15
+ };
16
+ captureUpdate: "NEVER";
17
+ };
18
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
19
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
20
+ } & {
21
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
22
+ };
23
+ export declare const actionFlipViewpointVertical: {
24
+ name: "flipViewpointVertical";
25
+ label: string;
26
+ viewMode: true;
27
+ trackEvent: {
28
+ category: "canvas";
29
+ };
30
+ perform: (_elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>) => {
31
+ appState: {
32
+ viewpointFlip: {
33
+ horizontal: boolean;
34
+ vertical: boolean;
35
+ };
36
+ };
37
+ captureUpdate: "NEVER";
38
+ };
39
+ checked: (appState: Readonly<import("../types").UIAppState>) => boolean;
40
+ keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
41
+ } & {
42
+ keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
43
+ };
@@ -21,6 +21,10 @@ export declare const actionSelectAllElementsInFrame: {
21
21
  dontResizeLimitMBs: number;
22
22
  hideMainMenus: boolean;
23
23
  wheelZoomsOnDefault?: boolean;
24
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
25
+ alignConfiguration: {
26
+ stacking: boolean;
27
+ };
24
28
  arrangeConfiguration: {
25
29
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
26
30
  gap: number;
@@ -213,6 +217,10 @@ export declare const actionRemoveAllElementsFromFrame: {
213
217
  dontResizeLimitMBs: number;
214
218
  hideMainMenus: boolean;
215
219
  wheelZoomsOnDefault?: boolean;
220
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
221
+ alignConfiguration: {
222
+ stacking: boolean;
223
+ };
216
224
  arrangeConfiguration: {
217
225
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
218
226
  gap: number;
@@ -409,6 +417,10 @@ export declare const actionupdateFrameRendering: {
409
417
  dontResizeLimitMBs: number;
410
418
  hideMainMenus: boolean;
411
419
  wheelZoomsOnDefault?: boolean;
420
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
421
+ alignConfiguration: {
422
+ stacking: boolean;
423
+ };
412
424
  arrangeConfiguration: {
413
425
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
414
426
  gap: number;
@@ -27,6 +27,10 @@ export declare const actionGroup: {
27
27
  dontResizeLimitMBs: number;
28
28
  hideMainMenus: boolean;
29
29
  wheelZoomsOnDefault?: boolean;
30
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
31
+ alignConfiguration: {
32
+ stacking: boolean;
33
+ };
30
34
  arrangeConfiguration: {
31
35
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
32
36
  gap: number;
@@ -218,6 +222,10 @@ export declare const actionUngroup: {
218
222
  dontResizeLimitMBs: number;
219
223
  hideMainMenus: boolean;
220
224
  wheelZoomsOnDefault?: boolean;
225
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
226
+ alignConfiguration: {
227
+ stacking: boolean;
228
+ };
221
229
  arrangeConfiguration: {
222
230
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
223
231
  gap: number;
@@ -54,6 +54,10 @@ export declare const actionToggleLinearEditor: {
54
54
  dontResizeLimitMBs: number;
55
55
  hideMainMenus: boolean;
56
56
  wheelZoomsOnDefault?: boolean;
57
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
58
+ alignConfiguration: {
59
+ stacking: boolean;
60
+ };
57
61
  arrangeConfiguration: {
58
62
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
59
63
  gap: number;
@@ -18,6 +18,10 @@ export declare const actionLink: {
18
18
  dontResizeLimitMBs: number;
19
19
  hideMainMenus: boolean;
20
20
  wheelZoomsOnDefault?: boolean;
21
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
22
+ alignConfiguration: {
23
+ stacking: boolean;
24
+ };
21
25
  arrangeConfiguration: {
22
26
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
23
27
  gap: number;
@@ -25,6 +25,10 @@ export declare const actionShortcuts: {
25
25
  dontResizeLimitMBs: number;
26
26
  hideMainMenus: boolean;
27
27
  wheelZoomsOnDefault?: boolean;
28
+ viewpointFlip: import("@excalidraw/common").ViewpointFlip;
29
+ alignConfiguration: {
30
+ stacking: boolean;
31
+ };
28
32
  arrangeConfiguration: {
29
33
  algorithm: import("@excalidraw/element/types").ArrangeAlgorithms;
30
34
  gap: number;