@excalidraw/excalidraw 0.18.0-c4c0649 → 0.18.0-d2463f87d

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 (121) hide show
  1. package/dist/dev/chunk-CBGOW5JB.js +5669 -0
  2. package/dist/dev/chunk-CBGOW5JB.js.map +7 -0
  3. package/dist/dev/chunk-CP5DND7P.js +7 -0
  4. package/dist/dev/chunk-CP5DND7P.js.map +7 -0
  5. package/dist/dev/{chunk-JCUIYZXF.js → chunk-QF5FRM6O.js} +6 -2
  6. package/dist/dev/chunk-QF5FRM6O.js.map +7 -0
  7. package/dist/dev/data/{image-SLEZBMLG.js → image-SURZSZNX.js} +3 -3
  8. package/dist/dev/index.css +47 -20
  9. package/dist/dev/index.css.map +3 -3
  10. package/dist/dev/index.js +5873 -3369
  11. package/dist/dev/index.js.map +4 -4
  12. package/dist/dev/locales/{en-ZDTPSZNL.js → en-SMAPCEOQ.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-A66AFZZU.js +7 -0
  16. package/dist/prod/{chunk-GCFVWREF.js → chunk-I4UNSFV6.js} +4 -4
  17. package/dist/prod/chunk-IRHK23LL.js +4 -0
  18. package/dist/prod/data/image-HXEZYJPQ.js +1 -0
  19. package/dist/prod/index.css +1 -1
  20. package/dist/prod/index.js +25 -18
  21. package/dist/prod/locales/{en-MHZ26NAR.js → en-TYY6KWIJ.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/constants.d.ts +18 -3
  25. package/dist/types/common/src/utils.d.ts +3 -5
  26. package/dist/types/element/src/Scene.d.ts +1 -1
  27. package/dist/types/element/src/binding.d.ts +10 -7
  28. package/dist/types/element/src/bounds.d.ts +11 -3
  29. package/dist/types/element/src/collision.d.ts +18 -12
  30. package/dist/types/element/src/cropElement.d.ts +1 -1
  31. package/dist/types/element/src/delta.d.ts +26 -6
  32. package/dist/types/element/src/distance.d.ts +2 -2
  33. package/dist/types/element/src/fractionalIndex.d.ts +8 -2
  34. package/dist/types/element/src/frame.d.ts +2 -2
  35. package/dist/types/element/src/index.d.ts +1 -3
  36. package/dist/types/element/src/linearElementEditor.d.ts +12 -22
  37. package/dist/types/element/src/mutateElement.d.ts +1 -1
  38. package/dist/types/element/src/newElement.d.ts +2 -1
  39. package/dist/types/element/src/resizeElements.d.ts +1 -0
  40. package/dist/types/element/src/selection.d.ts +1 -1
  41. package/dist/types/element/src/shape.d.ts +42 -0
  42. package/dist/types/element/src/sizeHelpers.d.ts +2 -1
  43. package/dist/types/element/src/store.d.ts +12 -8
  44. package/dist/types/element/src/transformHandles.d.ts +4 -4
  45. package/dist/types/element/src/typeChecks.d.ts +15 -1
  46. package/dist/types/element/src/types.d.ts +8 -3
  47. package/dist/types/element/src/utils.d.ts +16 -6
  48. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +21 -12
  49. package/dist/types/excalidraw/actions/actionAlign.d.ts +8 -8
  50. package/dist/types/excalidraw/actions/actionBoundText.d.ts +14 -8
  51. package/dist/types/excalidraw/actions/actionCanvas.d.ts +181 -142
  52. package/dist/types/excalidraw/actions/actionClipboard.d.ts +47 -28
  53. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +7 -4
  54. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +24 -14
  55. package/dist/types/excalidraw/actions/actionDistribute.d.ts +4 -4
  56. package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -2
  57. package/dist/types/excalidraw/actions/actionElementLink.d.ts +6 -3
  58. package/dist/types/excalidraw/actions/actionElementLock.d.ts +29 -24
  59. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +7 -4
  60. package/dist/types/excalidraw/actions/actionExport.d.ts +148 -121
  61. package/dist/types/excalidraw/actions/actionFinalize.d.ts +63 -17
  62. package/dist/types/excalidraw/actions/actionFlip.d.ts +4 -4
  63. package/dist/types/excalidraw/actions/actionFrame.d.ts +78 -66
  64. package/dist/types/excalidraw/actions/actionGroup.d.ts +20 -14
  65. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +500 -4
  66. package/dist/types/excalidraw/actions/actionLink.d.ts +8 -5
  67. package/dist/types/excalidraw/actions/actionMenu.d.ts +22 -13
  68. package/dist/types/excalidraw/actions/actionNavigate.d.ts +14 -8
  69. package/dist/types/excalidraw/actions/actionProperties.d.ts +119 -66
  70. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +10 -7
  71. package/dist/types/excalidraw/actions/actionStyles.d.ts +11 -8
  72. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +9 -6
  73. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +9 -6
  74. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +8 -5
  75. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +9 -6
  76. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +9 -6
  77. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +9 -6
  78. package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -8
  79. package/dist/types/excalidraw/actions/types.d.ts +2 -1
  80. package/dist/types/excalidraw/appState.d.ts +29 -20
  81. package/dist/types/excalidraw/components/App.d.ts +13 -16
  82. package/dist/types/excalidraw/components/ButtonIcon.d.ts +1 -0
  83. package/dist/types/excalidraw/components/{ButtonIconSelect.d.ts → RadioSelection.d.ts} +1 -1
  84. package/dist/types/excalidraw/components/Stats/DragInput.d.ts +11 -1
  85. package/dist/types/excalidraw/components/UnlockPopup.d.ts +8 -0
  86. package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -0
  87. package/dist/types/excalidraw/components/icons.d.ts +2 -0
  88. package/dist/types/excalidraw/components/shapes.d.ts +1 -1
  89. package/dist/types/excalidraw/data/blob.d.ts +1 -1
  90. package/dist/types/excalidraw/eraser/index.d.ts +0 -2
  91. package/dist/types/excalidraw/history.d.ts +21 -5
  92. package/dist/types/excalidraw/lasso/index.d.ts +1 -0
  93. package/dist/types/excalidraw/lasso/utils.d.ts +2 -1
  94. package/dist/types/excalidraw/renderer/helpers.d.ts +4 -4
  95. package/dist/types/excalidraw/scene/Renderer.d.ts +0 -1
  96. package/dist/types/excalidraw/types.d.ts +10 -4
  97. package/dist/types/math/src/angle.d.ts +2 -0
  98. package/dist/types/math/src/constants.d.ts +3 -0
  99. package/dist/types/math/src/curve.d.ts +32 -0
  100. package/dist/types/math/src/index.d.ts +1 -0
  101. package/dist/types/math/src/point.d.ts +1 -1
  102. package/dist/types/math/src/rectangle.d.ts +2 -0
  103. package/dist/types/math/src/vector.d.ts +4 -2
  104. package/history.ts +108 -45
  105. package/package.json +12 -9
  106. package/dist/dev/chunk-HNRFOURL.js +0 -23482
  107. package/dist/dev/chunk-HNRFOURL.js.map +0 -7
  108. package/dist/dev/chunk-JCUIYZXF.js.map +0 -7
  109. package/dist/dev/chunk-VKWYDXFZ.js +0 -7
  110. package/dist/dev/chunk-VKWYDXFZ.js.map +0 -7
  111. package/dist/prod/chunk-G6SRO7HP.js +0 -7
  112. package/dist/prod/chunk-M3D5LUUK.js +0 -33
  113. package/dist/prod/data/image-PMKVN4IF.js +0 -1
  114. package/dist/types/element/src/Shape.d.ts +0 -17
  115. package/dist/types/element/src/ShapeCache.d.ts +0 -25
  116. package/dist/types/element/src/shapes.d.ts +0 -23
  117. package/dist/types/excalidraw/components/ButtonSelect.d.ts +0 -9
  118. package/dist/types/excalidraw/visualdebug.d.ts +0 -41
  119. package/dist/types/utils/src/collision.d.ts +0 -8
  120. /package/dist/dev/data/{image-SLEZBMLG.js.map → image-SURZSZNX.js.map} +0 -0
  121. /package/dist/dev/locales/{en-ZDTPSZNL.js.map → en-SMAPCEOQ.js.map} +0 -0
@@ -19,7 +19,7 @@ export declare const actionCopy: {
19
19
  isLoading: boolean;
20
20
  activeEmbeddable: {
21
21
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
22
- state: "hover" | "active";
22
+ state: "active" | "hover";
23
23
  } | null;
24
24
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
25
25
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -86,7 +86,7 @@ export declare const actionCopy: {
86
86
  name: "imageExport" | "help" | "jsonExport";
87
87
  } | {
88
88
  name: "ttd";
89
- tab: "text-to-diagram" | "mermaid";
89
+ tab: "mermaid" | "text-to-diagram";
90
90
  } | {
91
91
  name: "commandPalette";
92
92
  } | {
@@ -158,8 +158,7 @@ export declare const actionCopy: {
158
158
  shown: true;
159
159
  data: import("../charts").Spreadsheet;
160
160
  };
161
- pendingImageElementId: string | null;
162
- showHyperlinkPopup: false | "info" | "editor";
161
+ showHyperlinkPopup: false | "editor" | "info";
163
162
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
164
163
  snapLines: readonly import("../snapping").SnapLine[];
165
164
  originSnapOffset: {
@@ -175,6 +174,10 @@ export declare const actionCopy: {
175
174
  focusedId: string | null;
176
175
  matches: readonly import("../types").SearchMatch[];
177
176
  }> | null;
177
+ activeLockedId: string | null;
178
+ lockedMultiSelections: {
179
+ [groupId: string]: true;
180
+ };
178
181
  };
179
182
  } | {
180
183
  captureUpdate: "EVENTUALLY";
@@ -203,7 +206,7 @@ export declare const actionPaste: {
203
206
  isLoading: boolean;
204
207
  activeEmbeddable: {
205
208
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
206
- state: "hover" | "active";
209
+ state: "active" | "hover";
207
210
  } | null;
208
211
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
209
212
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -270,7 +273,7 @@ export declare const actionPaste: {
270
273
  name: "imageExport" | "help" | "jsonExport";
271
274
  } | {
272
275
  name: "ttd";
273
- tab: "text-to-diagram" | "mermaid";
276
+ tab: "mermaid" | "text-to-diagram";
274
277
  } | {
275
278
  name: "commandPalette";
276
279
  } | {
@@ -342,8 +345,7 @@ export declare const actionPaste: {
342
345
  shown: true;
343
346
  data: import("../charts").Spreadsheet;
344
347
  };
345
- pendingImageElementId: string | null;
346
- showHyperlinkPopup: false | "info" | "editor";
348
+ showHyperlinkPopup: false | "editor" | "info";
347
349
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
348
350
  snapLines: readonly import("../snapping").SnapLine[];
349
351
  originSnapOffset: {
@@ -359,6 +361,10 @@ export declare const actionPaste: {
359
361
  focusedId: string | null;
360
362
  matches: readonly import("../types").SearchMatch[];
361
363
  }> | null;
364
+ activeLockedId: string | null;
365
+ lockedMultiSelections: {
366
+ [groupId: string]: true;
367
+ };
362
368
  };
363
369
  } | {
364
370
  captureUpdate: "EVENTUALLY";
@@ -389,7 +395,7 @@ export declare const actionCut: {
389
395
  errorMessage: import("react").ReactNode;
390
396
  activeEmbeddable: {
391
397
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
392
- state: "hover" | "active";
398
+ state: "active" | "hover";
393
399
  } | null;
394
400
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
395
401
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -455,7 +461,7 @@ export declare const actionCut: {
455
461
  name: "imageExport" | "help" | "jsonExport";
456
462
  } | {
457
463
  name: "ttd";
458
- tab: "text-to-diagram" | "mermaid";
464
+ tab: "mermaid" | "text-to-diagram";
459
465
  } | {
460
466
  name: "commandPalette";
461
467
  } | {
@@ -527,8 +533,7 @@ export declare const actionCut: {
527
533
  shown: true;
528
534
  data: import("../charts").Spreadsheet;
529
535
  };
530
- pendingImageElementId: string | null;
531
- showHyperlinkPopup: false | "info" | "editor";
536
+ showHyperlinkPopup: false | "editor" | "info";
532
537
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
533
538
  snapLines: readonly import("../snapping").SnapLine[];
534
539
  originSnapOffset: {
@@ -544,6 +549,10 @@ export declare const actionCut: {
544
549
  focusedId: string | null;
545
550
  matches: readonly import("../types").SearchMatch[];
546
551
  }> | null;
552
+ activeLockedId: string | null;
553
+ lockedMultiSelections: {
554
+ [groupId: string]: true;
555
+ };
547
556
  };
548
557
  captureUpdate: "IMMEDIATELY";
549
558
  } | {
@@ -579,6 +588,7 @@ export declare const actionCut: {
579
588
  hoverPointIndex: number;
580
589
  segmentMidPointHoveredCoords: import("@excalidraw/math").GlobalPoint | null;
581
590
  elbowed: boolean;
591
+ customLineAngle: number | null;
582
592
  };
583
593
  contextMenu: {
584
594
  items: import("../components/ContextMenu").ContextMenuItems;
@@ -590,7 +600,7 @@ export declare const actionCut: {
590
600
  errorMessage: import("react").ReactNode;
591
601
  activeEmbeddable: {
592
602
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
593
- state: "hover" | "active";
603
+ state: "active" | "hover";
594
604
  } | null;
595
605
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
596
606
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -656,7 +666,7 @@ export declare const actionCut: {
656
666
  name: "imageExport" | "help" | "jsonExport";
657
667
  } | {
658
668
  name: "ttd";
659
- tab: "text-to-diagram" | "mermaid";
669
+ tab: "mermaid" | "text-to-diagram";
660
670
  } | {
661
671
  name: "commandPalette";
662
672
  } | {
@@ -728,8 +738,7 @@ export declare const actionCut: {
728
738
  shown: true;
729
739
  data: import("../charts").Spreadsheet;
730
740
  };
731
- pendingImageElementId: string | null;
732
- showHyperlinkPopup: false | "info" | "editor";
741
+ showHyperlinkPopup: false | "editor" | "info";
733
742
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
734
743
  snapLines: readonly import("../snapping").SnapLine[];
735
744
  originSnapOffset: {
@@ -745,6 +754,10 @@ export declare const actionCut: {
745
754
  focusedId: string | null;
746
755
  matches: readonly import("../types").SearchMatch[];
747
756
  }> | null;
757
+ activeLockedId: string | null;
758
+ lockedMultiSelections: {
759
+ [groupId: string]: true;
760
+ };
748
761
  };
749
762
  captureUpdate: "IMMEDIATELY";
750
763
  } | {
@@ -758,13 +771,13 @@ export declare const actionCut: {
758
771
  multiElement: null;
759
772
  activeEmbeddable: null;
760
773
  selectedLinearElement: null;
774
+ editingGroupId: string | null;
761
775
  selectedElementIds: Readonly<{
762
776
  [id: string]: true;
763
777
  }>;
764
778
  selectedGroupIds: {
765
779
  [groupId: string]: boolean;
766
780
  };
767
- editingGroupId: string | null;
768
781
  contextMenu: {
769
782
  items: import("../components/ContextMenu").ContextMenuItems;
770
783
  top: number;
@@ -832,7 +845,7 @@ export declare const actionCut: {
832
845
  name: "imageExport" | "help" | "jsonExport";
833
846
  } | {
834
847
  name: "ttd";
835
- tab: "text-to-diagram" | "mermaid";
848
+ tab: "mermaid" | "text-to-diagram";
836
849
  } | {
837
850
  name: "commandPalette";
838
851
  } | {
@@ -897,8 +910,7 @@ export declare const actionCut: {
897
910
  shown: true;
898
911
  data: import("../charts").Spreadsheet;
899
912
  };
900
- pendingImageElementId: string | null;
901
- showHyperlinkPopup: false | "info" | "editor";
913
+ showHyperlinkPopup: false | "editor" | "info";
902
914
  snapLines: readonly import("../snapping").SnapLine[];
903
915
  originSnapOffset: {
904
916
  x: number;
@@ -913,12 +925,16 @@ export declare const actionCut: {
913
925
  focusedId: string | null;
914
926
  matches: readonly import("../types").SearchMatch[];
915
927
  }> | null;
928
+ activeLockedId: string | null;
929
+ lockedMultiSelections: {
930
+ [groupId: string]: true;
931
+ };
916
932
  };
917
933
  captureUpdate: "IMMEDIATELY" | "EVENTUALLY";
918
934
  };
919
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
935
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
920
936
  } & {
921
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
937
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
922
938
  };
923
939
  export declare const actionCopyAsSvg: {
924
940
  name: "copyAsSvg";
@@ -972,7 +988,7 @@ export declare const actionCopyAsPng: {
972
988
  isLoading: boolean;
973
989
  activeEmbeddable: {
974
990
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
975
- state: "hover" | "active";
991
+ state: "active" | "hover";
976
992
  } | null;
977
993
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
978
994
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -1039,7 +1055,7 @@ export declare const actionCopyAsPng: {
1039
1055
  name: "imageExport" | "help" | "jsonExport";
1040
1056
  } | {
1041
1057
  name: "ttd";
1042
- tab: "text-to-diagram" | "mermaid";
1058
+ tab: "mermaid" | "text-to-diagram";
1043
1059
  } | {
1044
1060
  name: "commandPalette";
1045
1061
  } | {
@@ -1111,8 +1127,7 @@ export declare const actionCopyAsPng: {
1111
1127
  shown: true;
1112
1128
  data: import("../charts").Spreadsheet;
1113
1129
  };
1114
- pendingImageElementId: string | null;
1115
- showHyperlinkPopup: false | "info" | "editor";
1130
+ showHyperlinkPopup: false | "editor" | "info";
1116
1131
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
1117
1132
  snapLines: readonly import("../snapping").SnapLine[];
1118
1133
  originSnapOffset: {
@@ -1128,14 +1143,18 @@ export declare const actionCopyAsPng: {
1128
1143
  focusedId: string | null;
1129
1144
  matches: readonly import("../types").SearchMatch[];
1130
1145
  }> | null;
1146
+ activeLockedId: string | null;
1147
+ lockedMultiSelections: {
1148
+ [groupId: string]: true;
1149
+ };
1131
1150
  };
1132
1151
  captureUpdate: "EVENTUALLY";
1133
1152
  }>;
1134
1153
  predicate: (elements: readonly import("@excalidraw/element/types").ExcalidrawElement[]) => boolean;
1135
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
1154
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
1136
1155
  keywords: string[];
1137
1156
  } & {
1138
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
1157
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
1139
1158
  };
1140
1159
  export declare const copyText: {
1141
1160
  name: "copyText";
@@ -22,7 +22,7 @@ export declare const actionToggleCropEditor: {
22
22
  errorMessage: import("react").ReactNode;
23
23
  activeEmbeddable: {
24
24
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
25
- state: "hover" | "active";
25
+ state: "active" | "hover";
26
26
  } | null;
27
27
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
28
28
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -89,7 +89,7 @@ export declare const actionToggleCropEditor: {
89
89
  name: "imageExport" | "help" | "jsonExport";
90
90
  } | {
91
91
  name: "ttd";
92
- tab: "text-to-diagram" | "mermaid";
92
+ tab: "mermaid" | "text-to-diagram";
93
93
  } | {
94
94
  name: "commandPalette";
95
95
  } | {
@@ -161,8 +161,7 @@ export declare const actionToggleCropEditor: {
161
161
  shown: true;
162
162
  data: import("../charts").Spreadsheet;
163
163
  };
164
- pendingImageElementId: string | null;
165
- showHyperlinkPopup: false | "info" | "editor";
164
+ showHyperlinkPopup: false | "editor" | "info";
166
165
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
167
166
  snapLines: readonly import("../snapping").SnapLine[];
168
167
  originSnapOffset: {
@@ -176,6 +175,10 @@ export declare const actionToggleCropEditor: {
176
175
  focusedId: string | null;
177
176
  matches: readonly import("../types").SearchMatch[];
178
177
  }> | null;
178
+ activeLockedId: string | null;
179
+ lockedMultiSelections: {
180
+ [groupId: string]: true;
181
+ };
179
182
  };
180
183
  captureUpdate: "IMMEDIATELY";
181
184
  };
@@ -24,7 +24,7 @@ export declare const actionDeleteSelected: {
24
24
  errorMessage: import("react").ReactNode;
25
25
  activeEmbeddable: {
26
26
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
27
- state: "hover" | "active";
27
+ state: "active" | "hover";
28
28
  } | null;
29
29
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
30
30
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -90,7 +90,7 @@ export declare const actionDeleteSelected: {
90
90
  name: "imageExport" | "help" | "jsonExport";
91
91
  } | {
92
92
  name: "ttd";
93
- tab: "text-to-diagram" | "mermaid";
93
+ tab: "mermaid" | "text-to-diagram";
94
94
  } | {
95
95
  name: "commandPalette";
96
96
  } | {
@@ -162,8 +162,7 @@ export declare const actionDeleteSelected: {
162
162
  shown: true;
163
163
  data: import("../charts").Spreadsheet;
164
164
  };
165
- pendingImageElementId: string | null;
166
- showHyperlinkPopup: false | "info" | "editor";
165
+ showHyperlinkPopup: false | "editor" | "info";
167
166
  selectedLinearElement: LinearElementEditor | null;
168
167
  snapLines: readonly import("../snapping").SnapLine[];
169
168
  originSnapOffset: {
@@ -179,6 +178,10 @@ export declare const actionDeleteSelected: {
179
178
  focusedId: string | null;
180
179
  matches: readonly import("../types").SearchMatch[];
181
180
  }> | null;
181
+ activeLockedId: string | null;
182
+ lockedMultiSelections: {
183
+ [groupId: string]: true;
184
+ };
182
185
  };
183
186
  captureUpdate: "IMMEDIATELY";
184
187
  } | {
@@ -214,6 +217,7 @@ export declare const actionDeleteSelected: {
214
217
  hoverPointIndex: number;
215
218
  segmentMidPointHoveredCoords: import("@excalidraw/math").GlobalPoint | null;
216
219
  elbowed: boolean;
220
+ customLineAngle: number | null;
217
221
  };
218
222
  contextMenu: {
219
223
  items: import("../components/ContextMenu").ContextMenuItems;
@@ -225,7 +229,7 @@ export declare const actionDeleteSelected: {
225
229
  errorMessage: import("react").ReactNode;
226
230
  activeEmbeddable: {
227
231
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
228
- state: "hover" | "active";
232
+ state: "active" | "hover";
229
233
  } | null;
230
234
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
231
235
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -291,7 +295,7 @@ export declare const actionDeleteSelected: {
291
295
  name: "imageExport" | "help" | "jsonExport";
292
296
  } | {
293
297
  name: "ttd";
294
- tab: "text-to-diagram" | "mermaid";
298
+ tab: "mermaid" | "text-to-diagram";
295
299
  } | {
296
300
  name: "commandPalette";
297
301
  } | {
@@ -363,8 +367,7 @@ export declare const actionDeleteSelected: {
363
367
  shown: true;
364
368
  data: import("../charts").Spreadsheet;
365
369
  };
366
- pendingImageElementId: string | null;
367
- showHyperlinkPopup: false | "info" | "editor";
370
+ showHyperlinkPopup: false | "editor" | "info";
368
371
  selectedLinearElement: LinearElementEditor | null;
369
372
  snapLines: readonly import("../snapping").SnapLine[];
370
373
  originSnapOffset: {
@@ -380,6 +383,10 @@ export declare const actionDeleteSelected: {
380
383
  focusedId: string | null;
381
384
  matches: readonly import("../types").SearchMatch[];
382
385
  }> | null;
386
+ activeLockedId: string | null;
387
+ lockedMultiSelections: {
388
+ [groupId: string]: true;
389
+ };
383
390
  };
384
391
  captureUpdate: "IMMEDIATELY";
385
392
  } | {
@@ -393,13 +400,13 @@ export declare const actionDeleteSelected: {
393
400
  multiElement: null;
394
401
  activeEmbeddable: null;
395
402
  selectedLinearElement: null;
403
+ editingGroupId: string | null;
396
404
  selectedElementIds: Readonly<{
397
405
  [id: string]: true;
398
406
  }>;
399
407
  selectedGroupIds: {
400
408
  [groupId: string]: boolean;
401
409
  };
402
- editingGroupId: string | null;
403
410
  contextMenu: {
404
411
  items: import("../components/ContextMenu").ContextMenuItems;
405
412
  top: number;
@@ -467,7 +474,7 @@ export declare const actionDeleteSelected: {
467
474
  name: "imageExport" | "help" | "jsonExport";
468
475
  } | {
469
476
  name: "ttd";
470
- tab: "text-to-diagram" | "mermaid";
477
+ tab: "mermaid" | "text-to-diagram";
471
478
  } | {
472
479
  name: "commandPalette";
473
480
  } | {
@@ -532,8 +539,7 @@ export declare const actionDeleteSelected: {
532
539
  shown: true;
533
540
  data: import("../charts").Spreadsheet;
534
541
  };
535
- pendingImageElementId: string | null;
536
- showHyperlinkPopup: false | "info" | "editor";
542
+ showHyperlinkPopup: false | "editor" | "info";
537
543
  snapLines: readonly import("../snapping").SnapLine[];
538
544
  originSnapOffset: {
539
545
  x: number;
@@ -548,11 +554,15 @@ export declare const actionDeleteSelected: {
548
554
  focusedId: string | null;
549
555
  matches: readonly import("../types").SearchMatch[];
550
556
  }> | null;
557
+ activeLockedId: string | null;
558
+ lockedMultiSelections: {
559
+ [groupId: string]: true;
560
+ };
551
561
  };
552
562
  captureUpdate: "IMMEDIATELY" | "EVENTUALLY";
553
563
  };
554
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean;
564
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean;
555
565
  PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
556
566
  } & {
557
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean) | undefined;
567
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, elements: readonly ExcalidrawElement[]) => boolean) | undefined;
558
568
  };
@@ -12,10 +12,10 @@ export declare const distributeHorizontally: {
12
12
  elements: ExcalidrawElement[];
13
13
  captureUpdate: "IMMEDIATELY";
14
14
  };
15
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
15
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
16
16
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
17
17
  } & {
18
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
18
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
19
19
  };
20
20
  export declare const distributeVertically: {
21
21
  name: "distributeVertically";
@@ -28,8 +28,8 @@ export declare const distributeVertically: {
28
28
  elements: ExcalidrawElement[];
29
29
  captureUpdate: "IMMEDIATELY";
30
30
  };
31
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
31
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
32
32
  PanelComponent: ({ elements, appState, updateData, app }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
33
33
  } & {
34
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
34
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
35
35
  };
@@ -11,8 +11,8 @@ export declare const actionDuplicateSelection: {
11
11
  appState: import("../types").AppState;
12
12
  captureUpdate: "IMMEDIATELY";
13
13
  };
14
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean;
14
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean;
15
15
  PanelComponent: ({ elements, appState, updateData }: import("./types").PanelComponentProps) => import("react/jsx-runtime").JSX.Element;
16
16
  } & {
17
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent) => boolean) | undefined;
17
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>) => boolean) | undefined;
18
18
  };
@@ -51,7 +51,7 @@ export declare const actionLinkToElement: {
51
51
  errorMessage: import("react").ReactNode;
52
52
  activeEmbeddable: {
53
53
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
54
- state: "hover" | "active";
54
+ state: "active" | "hover";
55
55
  } | null;
56
56
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
57
57
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -179,8 +179,7 @@ export declare const actionLinkToElement: {
179
179
  shown: true;
180
180
  data: import("../charts").Spreadsheet;
181
181
  };
182
- pendingImageElementId: string | null;
183
- showHyperlinkPopup: false | "info" | "editor";
182
+ showHyperlinkPopup: false | "editor" | "info";
184
183
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
185
184
  snapLines: readonly import("../snapping").SnapLine[];
186
185
  originSnapOffset: {
@@ -196,6 +195,10 @@ export declare const actionLinkToElement: {
196
195
  focusedId: string | null;
197
196
  matches: readonly import("../types").SearchMatch[];
198
197
  }> | null;
198
+ activeLockedId: string | null;
199
+ lockedMultiSelections: {
200
+ [groupId: string]: true;
201
+ };
199
202
  };
200
203
  captureUpdate: "IMMEDIATELY";
201
204
  elements?: undefined;
@@ -1,17 +1,28 @@
1
1
  /// <reference types="react" />
2
2
  import type { ExcalidrawElement } from "@excalidraw/element/types";
3
+ import type { AppState } from "../types";
3
4
  export declare const actionToggleElementLock: {
4
5
  name: "toggleElementLock";
5
- label: (elements: readonly ExcalidrawElement[], appState: Readonly<import("../types").AppState>, app: import("../types").AppClassProperties) => "labels.elementLock.unlock" | "labels.elementLock.lock" | "labels.elementLock.lockAll" | "labels.elementLock.unlockAll";
6
+ label: (elements: readonly ExcalidrawElement[], appState: Readonly<AppState>, app: import("../types").AppClassProperties) => "labels.elementLock.lock" | "labels.elementLock.unlock";
6
7
  icon: (appState: import("../types").UIAppState, elements: readonly ExcalidrawElement[]) => import("react/jsx-runtime").JSX.Element;
7
8
  trackEvent: {
8
9
  category: "element";
9
10
  };
10
- predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
11
- perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>, _: any, app: import("../types").AppClassProperties) => false | {
11
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState, _: import("../types").ExcalidrawProps, app: import("../types").AppClassProperties) => boolean;
12
+ perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: any, app: import("../types").AppClassProperties) => false | {
12
13
  elements: import("@excalidraw/element/types").OrderedExcalidrawElement[];
13
14
  appState: {
15
+ selectedElementIds: Readonly<{
16
+ [id: string]: true;
17
+ }>;
18
+ selectedGroupIds: {
19
+ [groupId: string]: boolean;
20
+ };
14
21
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
22
+ lockedMultiSelections: {
23
+ [x: string]: true;
24
+ };
25
+ activeLockedId: string | null;
15
26
  contextMenu: {
16
27
  items: import("../components/ContextMenu").ContextMenuItems;
17
28
  top: number;
@@ -22,7 +33,7 @@ export declare const actionToggleElementLock: {
22
33
  errorMessage: import("react").ReactNode;
23
34
  activeEmbeddable: {
24
35
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
25
- state: "hover" | "active";
36
+ state: "active" | "hover";
26
37
  } | null;
27
38
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
28
39
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -89,7 +100,7 @@ export declare const actionToggleElementLock: {
89
100
  name: "imageExport" | "help" | "jsonExport";
90
101
  } | {
91
102
  name: "ttd";
92
- tab: "text-to-diagram" | "mermaid";
103
+ tab: "mermaid" | "text-to-diagram";
93
104
  } | {
94
105
  name: "commandPalette";
95
106
  } | {
@@ -98,9 +109,6 @@ export declare const actionToggleElementLock: {
98
109
  } | null;
99
110
  defaultSidebarDockedPreference: boolean;
100
111
  lastPointerDownWith: import("@excalidraw/element/types").PointerType;
101
- selectedElementIds: Readonly<{
102
- [id: string]: true;
103
- }>;
104
112
  hoveredElementIds: Readonly<{
105
113
  [id: string]: true;
106
114
  }>;
@@ -120,9 +128,6 @@ export declare const actionToggleElementLock: {
120
128
  gridStep: number;
121
129
  gridModeEnabled: boolean;
122
130
  viewModeEnabled: boolean;
123
- selectedGroupIds: {
124
- [groupId: string]: boolean;
125
- };
126
131
  editingGroupId: string | null;
127
132
  width: number;
128
133
  height: number;
@@ -161,8 +166,7 @@ export declare const actionToggleElementLock: {
161
166
  shown: true;
162
167
  data: import("../charts").Spreadsheet;
163
168
  };
164
- pendingImageElementId: string | null;
165
- showHyperlinkPopup: false | "info" | "editor";
169
+ showHyperlinkPopup: false | "editor" | "info";
166
170
  snapLines: readonly import("../snapping").SnapLine[];
167
171
  originSnapOffset: {
168
172
  x: number;
@@ -180,9 +184,9 @@ export declare const actionToggleElementLock: {
180
184
  };
181
185
  captureUpdate: "IMMEDIATELY";
182
186
  };
183
- keyTest: (event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
187
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean;
184
188
  } & {
185
- keyTest?: ((event: import("react").KeyboardEvent<Element> | KeyboardEvent, appState: import("../types").AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean) | undefined;
189
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, elements: readonly ExcalidrawElement[], app: import("../types").AppClassProperties) => boolean) | undefined;
186
190
  };
187
191
  export declare const actionUnlockAllElements: {
188
192
  name: "unlockAllElements";
@@ -191,13 +195,18 @@ export declare const actionUnlockAllElements: {
191
195
  };
192
196
  viewMode: false;
193
197
  icon: import("react/jsx-runtime").JSX.Element;
194
- predicate: (elements: readonly ExcalidrawElement[], appState: import("../types").AppState) => boolean;
195
- perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<import("../types").AppState>) => {
198
+ predicate: (elements: readonly ExcalidrawElement[], appState: AppState) => boolean;
199
+ perform: (elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>) => {
196
200
  elements: import("@excalidraw/element/types").OrderedExcalidrawElement[];
197
201
  appState: {
198
202
  selectedElementIds: {
199
203
  [k: string]: true;
200
204
  };
205
+ selectedGroupIds: {
206
+ [groupId: string]: boolean;
207
+ };
208
+ lockedMultiSelections: {};
209
+ activeLockedId: null;
201
210
  contextMenu: {
202
211
  items: import("../components/ContextMenu").ContextMenuItems;
203
212
  top: number;
@@ -208,7 +217,7 @@ export declare const actionUnlockAllElements: {
208
217
  errorMessage: import("react").ReactNode;
209
218
  activeEmbeddable: {
210
219
  element: import("@excalidraw/element/types").NonDeletedExcalidrawElement;
211
- state: "hover" | "active";
220
+ state: "active" | "hover";
212
221
  } | null;
213
222
  newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
214
223
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
@@ -275,7 +284,7 @@ export declare const actionUnlockAllElements: {
275
284
  name: "imageExport" | "help" | "jsonExport";
276
285
  } | {
277
286
  name: "ttd";
278
- tab: "text-to-diagram" | "mermaid";
287
+ tab: "mermaid" | "text-to-diagram";
279
288
  } | {
280
289
  name: "commandPalette";
281
290
  } | {
@@ -303,9 +312,6 @@ export declare const actionUnlockAllElements: {
303
312
  gridStep: number;
304
313
  gridModeEnabled: boolean;
305
314
  viewModeEnabled: boolean;
306
- selectedGroupIds: {
307
- [groupId: string]: boolean;
308
- };
309
315
  editingGroupId: string | null;
310
316
  width: number;
311
317
  height: number;
@@ -344,8 +350,7 @@ export declare const actionUnlockAllElements: {
344
350
  shown: true;
345
351
  data: import("../charts").Spreadsheet;
346
352
  };
347
- pendingImageElementId: string | null;
348
- showHyperlinkPopup: false | "info" | "editor";
353
+ showHyperlinkPopup: false | "editor" | "info";
349
354
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
350
355
  snapLines: readonly import("../snapping").SnapLine[];
351
356
  originSnapOffset: {