@dwelle/excalidraw 0.5.0-ef89e88 → 0.5.0-efddbb7

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 (103) hide show
  1. package/CHANGELOG.md +81 -0
  2. package/README.md +111 -14
  3. package/dist/dev/{chunk-UPL5GSGP.js → chunk-AVAC6BVM.js} +11 -2
  4. package/dist/dev/chunk-AVAC6BVM.js.map +7 -0
  5. package/dist/dev/{chunk-VLJRILK3.js → chunk-OKDHCI5V.js} +1844 -1440
  6. package/dist/dev/chunk-OKDHCI5V.js.map +7 -0
  7. package/dist/dev/{chunk-H5SL5I5R.js → chunk-UEBEBUE2.js} +2 -2
  8. package/dist/dev/components/TTDDialog/{CodeMirrorEditor-65RQRK4A.js → CodeMirrorEditor-2YIEAZU7.js} +2 -2
  9. package/dist/dev/data/{image-JR54FB4B.js → image-O7OJXMIJ.js} +3 -3
  10. package/dist/dev/index.css +85 -43
  11. package/dist/dev/index.css.map +3 -3
  12. package/dist/dev/index.js +2939 -2010
  13. package/dist/dev/index.js.map +4 -4
  14. package/dist/dev/locales/{en-IZ5JJCQN.js → en-XVKSJYG2.js} +4 -2
  15. package/dist/dev/subset-shared.chunk.js +1 -1
  16. package/dist/dev/subset-worker.chunk.js +1 -1
  17. package/dist/prod/chunk-5EYFVTC7.js +34 -0
  18. package/dist/prod/{chunk-MYTKOPOQ.js → chunk-T6UH5ZKV.js} +5 -5
  19. package/dist/prod/{chunk-B47HEJUH.js → chunk-Y6NXDCR7.js} +1 -1
  20. package/dist/prod/components/TTDDialog/{CodeMirrorEditor-B64TEOC3.js → CodeMirrorEditor-JV2LT6ZS.js} +1 -1
  21. package/dist/prod/data/image-XRO5552B.js +1 -0
  22. package/dist/prod/index.css +1 -1
  23. package/dist/prod/index.js +28 -28
  24. package/dist/prod/locales/en-BNQNBQ43.js +1 -0
  25. package/dist/prod/subset-shared.chunk.js +1 -1
  26. package/dist/prod/subset-worker.chunk.js +1 -1
  27. package/dist/types/common/src/appEventBus.d.ts +27 -0
  28. package/dist/types/common/src/index.d.ts +2 -0
  29. package/dist/types/common/src/utils.d.ts +1 -3
  30. package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
  31. package/dist/types/element/src/Scene.d.ts +5 -3
  32. package/dist/types/element/src/bounds.d.ts +4 -2
  33. package/dist/types/element/src/duplicate.d.ts +1 -0
  34. package/dist/types/element/src/frame.d.ts +7 -6
  35. package/dist/types/element/src/linearElementEditor.d.ts +2 -2
  36. package/dist/types/element/src/selection.d.ts +2 -2
  37. package/dist/types/element/src/shape.d.ts +1 -1
  38. package/dist/types/element/src/typeChecks.d.ts +1 -0
  39. package/dist/types/element/src/utils.d.ts +1 -1
  40. package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +8 -8
  41. package/dist/types/excalidraw/actions/actionBoundText.d.ts +6 -6
  42. package/dist/types/excalidraw/actions/actionCanvas.d.ts +30 -30
  43. package/dist/types/excalidraw/actions/actionClipboard.d.ts +6 -6
  44. package/dist/types/excalidraw/actions/actionCropEditor.d.ts +3 -3
  45. package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +9 -9
  46. package/dist/types/excalidraw/actions/actionDeselect.d.ts +160 -0
  47. package/dist/types/excalidraw/actions/actionElementLink.d.ts +3 -3
  48. package/dist/types/excalidraw/actions/actionElementLock.d.ts +6 -6
  49. package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +3 -3
  50. package/dist/types/excalidraw/actions/actionExport.d.ts +48 -323
  51. package/dist/types/excalidraw/actions/actionFrame.d.ts +12 -12
  52. package/dist/types/excalidraw/actions/actionGroup.d.ts +6 -6
  53. package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +3 -3
  54. package/dist/types/excalidraw/actions/actionLink.d.ts +3 -3
  55. package/dist/types/excalidraw/actions/actionMenu.d.ts +3 -3
  56. package/dist/types/excalidraw/actions/actionProperties.d.ts +6 -6
  57. package/dist/types/excalidraw/actions/actionSelectAll.d.ts +3 -3
  58. package/dist/types/excalidraw/actions/actionStyles.d.ts +2 -2
  59. package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +3 -3
  60. package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +3 -3
  61. package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +3 -3
  62. package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +3 -3
  63. package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +3 -3
  64. package/dist/types/excalidraw/actions/actionToggleStats.d.ts +3 -3
  65. package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +3 -3
  66. package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +3 -3
  67. package/dist/types/excalidraw/actions/index.d.ts +1 -0
  68. package/dist/types/excalidraw/actions/types.d.ts +1 -1
  69. package/dist/types/excalidraw/appState.d.ts +1 -0
  70. package/dist/types/excalidraw/clipboard.d.ts +2 -3
  71. package/dist/types/excalidraw/components/App.d.ts +41 -10
  72. package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
  73. package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +1 -1
  74. package/dist/types/excalidraw/components/Toast.d.ts +8 -4
  75. package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +1 -1
  76. package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
  77. package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
  78. package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
  79. package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +1 -0
  80. package/dist/types/excalidraw/components/shapes.d.ts +7 -0
  81. package/dist/types/excalidraw/data/blob.d.ts +13 -14
  82. package/dist/types/excalidraw/data/filesystem.d.ts +3 -5
  83. package/dist/types/excalidraw/data/index.d.ts +2 -3
  84. package/dist/types/excalidraw/data/json.d.ts +21 -13
  85. package/dist/types/excalidraw/data/resave.d.ts +7 -2
  86. package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
  87. package/dist/types/excalidraw/index.d.ts +23 -3
  88. package/dist/types/excalidraw/scene/Renderer.d.ts +425 -19
  89. package/dist/types/excalidraw/types.d.ts +76 -5
  90. package/dist/types/fractional-indexing/src/index.d.ts +29 -0
  91. package/dist/types/math/src/constants.d.ts +0 -1
  92. package/dist/types/math/src/curve.d.ts +4 -1
  93. package/package.json +4 -5
  94. package/dist/dev/chunk-UPL5GSGP.js.map +0 -7
  95. package/dist/dev/chunk-VLJRILK3.js.map +0 -7
  96. package/dist/prod/chunk-ZTGTHG3M.js +0 -34
  97. package/dist/prod/data/image-I4FBW6ZT.js +0 -1
  98. package/dist/prod/locales/en-4R6EP6SP.js +0 -1
  99. package/dist/types/utils/src/index.d.ts +0 -4
  100. /package/dist/dev/{chunk-H5SL5I5R.js.map → chunk-UEBEBUE2.js.map} +0 -0
  101. /package/dist/dev/components/TTDDialog/{CodeMirrorEditor-65RQRK4A.js.map → CodeMirrorEditor-2YIEAZU7.js.map} +0 -0
  102. /package/dist/dev/data/{image-JR54FB4B.js.map → image-O7OJXMIJ.js.map} +0 -0
  103. /package/dist/dev/locales/{en-IZ5JJCQN.js.map → en-XVKSJYG2.js.map} +0 -0
@@ -60,9 +60,9 @@ export declare const actionClearCanvas: {
60
60
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
61
61
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
62
62
  isBindingEnabled: boolean;
63
+ boxSelectionMode: import("../types").BoxSelectionMode;
63
64
  bindingPreference: "enabled" | "disabled";
64
65
  isMidpointSnappingEnabled: boolean;
65
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
66
66
  suggestedBinding: {
67
67
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
68
68
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -134,7 +134,7 @@ export declare const actionClearCanvas: {
134
134
  selectedElementsAreBeingDragged: boolean;
135
135
  shouldCacheIgnoreZoom: boolean;
136
136
  toast: {
137
- message: string;
137
+ message: React.ReactNode;
138
138
  closable?: boolean;
139
139
  duration?: number;
140
140
  } | null;
@@ -144,7 +144,7 @@ export declare const actionClearCanvas: {
144
144
  [groupId: string]: boolean;
145
145
  };
146
146
  editingGroupId: import("@excalidraw/element/types").GroupId | null;
147
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
147
+ fileHandle: FileSystemFileHandle | null;
148
148
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
149
149
  showHyperlinkPopup: false | "info" | "editor";
150
150
  selectedLinearElement: import("@excalidraw/element").LinearElementEditor | null;
@@ -240,9 +240,9 @@ export declare const actionResetZoom: {
240
240
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
241
241
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
242
242
  isBindingEnabled: boolean;
243
+ boxSelectionMode: import("../types").BoxSelectionMode;
243
244
  bindingPreference: "enabled" | "disabled";
244
245
  isMidpointSnappingEnabled: boolean;
245
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
246
246
  suggestedBinding: {
247
247
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
248
248
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -330,7 +330,7 @@ export declare const actionResetZoom: {
330
330
  selectedElementsAreBeingDragged: boolean;
331
331
  shouldCacheIgnoreZoom: boolean;
332
332
  toast: {
333
- message: string;
333
+ message: React.ReactNode;
334
334
  closable?: boolean;
335
335
  duration?: number;
336
336
  } | null;
@@ -348,7 +348,7 @@ export declare const actionResetZoom: {
348
348
  height: number;
349
349
  offsetTop: number;
350
350
  offsetLeft: number;
351
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
351
+ fileHandle: FileSystemFileHandle | null;
352
352
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
353
353
  stats: {
354
354
  open: boolean;
@@ -417,9 +417,9 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
417
417
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
418
418
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
419
419
  isBindingEnabled: boolean;
420
+ boxSelectionMode: import("../types").BoxSelectionMode;
420
421
  bindingPreference: "enabled" | "disabled";
421
422
  isMidpointSnappingEnabled: boolean;
422
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
423
423
  suggestedBinding: {
424
424
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
425
425
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -507,7 +507,7 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
507
507
  selectedElementsAreBeingDragged: boolean;
508
508
  shouldCacheIgnoreZoom: boolean;
509
509
  toast: {
510
- message: string;
510
+ message: React.ReactNode;
511
511
  closable?: boolean;
512
512
  duration?: number;
513
513
  } | null;
@@ -525,7 +525,7 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
525
525
  height: number;
526
526
  offsetTop: number;
527
527
  offsetLeft: number;
528
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
528
+ fileHandle: FileSystemFileHandle | null;
529
529
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
530
530
  stats: {
531
531
  open: boolean;
@@ -590,9 +590,9 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
590
590
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
591
591
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
592
592
  isBindingEnabled: boolean;
593
+ boxSelectionMode: import("../types").BoxSelectionMode;
593
594
  bindingPreference: "enabled" | "disabled";
594
595
  isMidpointSnappingEnabled: boolean;
595
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
596
596
  suggestedBinding: {
597
597
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
598
598
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -680,7 +680,7 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
680
680
  selectedElementsAreBeingDragged: boolean;
681
681
  shouldCacheIgnoreZoom: boolean;
682
682
  toast: {
683
- message: string;
683
+ message: React.ReactNode;
684
684
  closable?: boolean;
685
685
  duration?: number;
686
686
  } | null;
@@ -698,7 +698,7 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
698
698
  height: number;
699
699
  offsetTop: number;
700
700
  offsetLeft: number;
701
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
701
+ fileHandle: FileSystemFileHandle | null;
702
702
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
703
703
  stats: {
704
704
  open: boolean;
@@ -760,9 +760,9 @@ export declare const actionZoomToFitSelectionInViewport: {
760
760
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
761
761
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
762
762
  isBindingEnabled: boolean;
763
+ boxSelectionMode: import("../types").BoxSelectionMode;
763
764
  bindingPreference: "enabled" | "disabled";
764
765
  isMidpointSnappingEnabled: boolean;
765
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
766
766
  suggestedBinding: {
767
767
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
768
768
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -850,7 +850,7 @@ export declare const actionZoomToFitSelectionInViewport: {
850
850
  selectedElementsAreBeingDragged: boolean;
851
851
  shouldCacheIgnoreZoom: boolean;
852
852
  toast: {
853
- message: string;
853
+ message: React.ReactNode;
854
854
  closable?: boolean;
855
855
  duration?: number;
856
856
  } | null;
@@ -868,7 +868,7 @@ export declare const actionZoomToFitSelectionInViewport: {
868
868
  height: number;
869
869
  offsetTop: number;
870
870
  offsetLeft: number;
871
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
871
+ fileHandle: FileSystemFileHandle | null;
872
872
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
873
873
  stats: {
874
874
  open: boolean;
@@ -934,9 +934,9 @@ export declare const actionZoomToFitSelection: {
934
934
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
935
935
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
936
936
  isBindingEnabled: boolean;
937
+ boxSelectionMode: import("../types").BoxSelectionMode;
937
938
  bindingPreference: "enabled" | "disabled";
938
939
  isMidpointSnappingEnabled: boolean;
939
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
940
940
  suggestedBinding: {
941
941
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
942
942
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -1024,7 +1024,7 @@ export declare const actionZoomToFitSelection: {
1024
1024
  selectedElementsAreBeingDragged: boolean;
1025
1025
  shouldCacheIgnoreZoom: boolean;
1026
1026
  toast: {
1027
- message: string;
1027
+ message: React.ReactNode;
1028
1028
  closable?: boolean;
1029
1029
  duration?: number;
1030
1030
  } | null;
@@ -1042,7 +1042,7 @@ export declare const actionZoomToFitSelection: {
1042
1042
  height: number;
1043
1043
  offsetTop: number;
1044
1044
  offsetLeft: number;
1045
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
1045
+ fileHandle: FileSystemFileHandle | null;
1046
1046
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
1047
1047
  stats: {
1048
1048
  open: boolean;
@@ -1109,9 +1109,9 @@ export declare const actionZoomToFit: {
1109
1109
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
1110
1110
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1111
1111
  isBindingEnabled: boolean;
1112
+ boxSelectionMode: import("../types").BoxSelectionMode;
1112
1113
  bindingPreference: "enabled" | "disabled";
1113
1114
  isMidpointSnappingEnabled: boolean;
1114
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1115
1115
  suggestedBinding: {
1116
1116
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
1117
1117
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -1199,7 +1199,7 @@ export declare const actionZoomToFit: {
1199
1199
  selectedElementsAreBeingDragged: boolean;
1200
1200
  shouldCacheIgnoreZoom: boolean;
1201
1201
  toast: {
1202
- message: string;
1202
+ message: React.ReactNode;
1203
1203
  closable?: boolean;
1204
1204
  duration?: number;
1205
1205
  } | null;
@@ -1217,7 +1217,7 @@ export declare const actionZoomToFit: {
1217
1217
  height: number;
1218
1218
  offsetTop: number;
1219
1219
  offsetLeft: number;
1220
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
1220
+ fileHandle: FileSystemFileHandle | null;
1221
1221
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
1222
1222
  stats: {
1223
1223
  open: boolean;
@@ -1284,9 +1284,9 @@ export declare const actionToggleEraserTool: {
1284
1284
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
1285
1285
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1286
1286
  isBindingEnabled: boolean;
1287
+ boxSelectionMode: import("../types").BoxSelectionMode;
1287
1288
  bindingPreference: "enabled" | "disabled";
1288
1289
  isMidpointSnappingEnabled: boolean;
1289
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1290
1290
  suggestedBinding: {
1291
1291
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
1292
1292
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -1369,7 +1369,7 @@ export declare const actionToggleEraserTool: {
1369
1369
  selectedElementsAreBeingDragged: boolean;
1370
1370
  shouldCacheIgnoreZoom: boolean;
1371
1371
  toast: {
1372
- message: string;
1372
+ message: React.ReactNode;
1373
1373
  closable?: boolean;
1374
1374
  duration?: number;
1375
1375
  } | null;
@@ -1384,7 +1384,7 @@ export declare const actionToggleEraserTool: {
1384
1384
  height: number;
1385
1385
  offsetTop: number;
1386
1386
  offsetLeft: number;
1387
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
1387
+ fileHandle: FileSystemFileHandle | null;
1388
1388
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
1389
1389
  stats: {
1390
1390
  open: boolean;
@@ -1450,9 +1450,9 @@ export declare const actionToggleLassoTool: {
1450
1450
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
1451
1451
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1452
1452
  isBindingEnabled: boolean;
1453
+ boxSelectionMode: import("../types").BoxSelectionMode;
1453
1454
  bindingPreference: "enabled" | "disabled";
1454
1455
  isMidpointSnappingEnabled: boolean;
1455
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1456
1456
  suggestedBinding: {
1457
1457
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
1458
1458
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -1535,7 +1535,7 @@ export declare const actionToggleLassoTool: {
1535
1535
  selectedElementsAreBeingDragged: boolean;
1536
1536
  shouldCacheIgnoreZoom: boolean;
1537
1537
  toast: {
1538
- message: string;
1538
+ message: React.ReactNode;
1539
1539
  closable?: boolean;
1540
1540
  duration?: number;
1541
1541
  } | null;
@@ -1550,7 +1550,7 @@ export declare const actionToggleLassoTool: {
1550
1550
  height: number;
1551
1551
  offsetTop: number;
1552
1552
  offsetLeft: number;
1553
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
1553
+ fileHandle: FileSystemFileHandle | null;
1554
1554
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
1555
1555
  stats: {
1556
1556
  open: boolean;
@@ -1615,9 +1615,9 @@ export declare const actionToggleHandTool: {
1615
1615
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
1616
1616
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
1617
1617
  isBindingEnabled: boolean;
1618
+ boxSelectionMode: import("../types").BoxSelectionMode;
1618
1619
  bindingPreference: "enabled" | "disabled";
1619
1620
  isMidpointSnappingEnabled: boolean;
1620
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
1621
1621
  suggestedBinding: {
1622
1622
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
1623
1623
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -1700,7 +1700,7 @@ export declare const actionToggleHandTool: {
1700
1700
  selectedElementsAreBeingDragged: boolean;
1701
1701
  shouldCacheIgnoreZoom: boolean;
1702
1702
  toast: {
1703
- message: string;
1703
+ message: React.ReactNode;
1704
1704
  closable?: boolean;
1705
1705
  duration?: number;
1706
1706
  } | null;
@@ -1715,7 +1715,7 @@ export declare const actionToggleHandTool: {
1715
1715
  height: number;
1716
1716
  offsetTop: number;
1717
1717
  offsetLeft: number;
1718
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
1718
+ fileHandle: FileSystemFileHandle | null;
1719
1719
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
1720
1720
  stats: {
1721
1721
  open: boolean;
@@ -27,9 +27,9 @@ export declare const actionPaste: {
27
27
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
28
28
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
29
29
  isBindingEnabled: boolean;
30
+ boxSelectionMode: import("../types").BoxSelectionMode;
30
31
  bindingPreference: "enabled" | "disabled";
31
32
  isMidpointSnappingEnabled: boolean;
32
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
33
33
  suggestedBinding: {
34
34
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
35
35
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -120,7 +120,7 @@ export declare const actionPaste: {
120
120
  selectedElementsAreBeingDragged: boolean;
121
121
  shouldCacheIgnoreZoom: boolean;
122
122
  toast: {
123
- message: string;
123
+ message: React.ReactNode;
124
124
  closable?: boolean;
125
125
  duration?: number;
126
126
  } | null;
@@ -138,7 +138,7 @@ export declare const actionPaste: {
138
138
  height: number;
139
139
  offsetTop: number;
140
140
  offsetLeft: number;
141
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
141
+ fileHandle: FileSystemFileHandle | null;
142
142
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
143
143
  stats: {
144
144
  open: boolean;
@@ -237,9 +237,9 @@ export declare const actionCopyAsPng: {
237
237
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
238
238
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
239
239
  isBindingEnabled: boolean;
240
+ boxSelectionMode: import("../types").BoxSelectionMode;
240
241
  bindingPreference: "enabled" | "disabled";
241
242
  isMidpointSnappingEnabled: boolean;
242
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
243
243
  suggestedBinding: {
244
244
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
245
245
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -330,7 +330,7 @@ export declare const actionCopyAsPng: {
330
330
  selectedElementsAreBeingDragged: boolean;
331
331
  shouldCacheIgnoreZoom: boolean;
332
332
  toast: {
333
- message: string;
333
+ message: React.ReactNode;
334
334
  closable?: boolean;
335
335
  duration?: number;
336
336
  } | null;
@@ -348,7 +348,7 @@ export declare const actionCopyAsPng: {
348
348
  height: number;
349
349
  offsetTop: number;
350
350
  offsetLeft: number;
351
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
351
+ fileHandle: FileSystemFileHandle | null;
352
352
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
353
353
  stats: {
354
354
  open: boolean;
@@ -28,9 +28,9 @@ export declare const actionToggleCropEditor: {
28
28
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
29
29
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
30
30
  isBindingEnabled: boolean;
31
+ boxSelectionMode: import("../types").BoxSelectionMode;
31
32
  bindingPreference: "enabled" | "disabled";
32
33
  isMidpointSnappingEnabled: boolean;
33
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
34
34
  suggestedBinding: {
35
35
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
36
36
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -121,7 +121,7 @@ export declare const actionToggleCropEditor: {
121
121
  selectedElementsAreBeingDragged: boolean;
122
122
  shouldCacheIgnoreZoom: boolean;
123
123
  toast: {
124
- message: string;
124
+ message: React.ReactNode;
125
125
  closable?: boolean;
126
126
  duration?: number;
127
127
  } | null;
@@ -139,7 +139,7 @@ export declare const actionToggleCropEditor: {
139
139
  height: number;
140
140
  offsetTop: number;
141
141
  offsetLeft: number;
142
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
142
+ fileHandle: FileSystemFileHandle | null;
143
143
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
144
144
  stats: {
145
145
  open: boolean;
@@ -29,9 +29,9 @@ export declare const actionDeleteSelected: {
29
29
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
30
30
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
31
31
  isBindingEnabled: boolean;
32
+ boxSelectionMode: import("../types").BoxSelectionMode;
32
33
  bindingPreference: "enabled" | "disabled";
33
34
  isMidpointSnappingEnabled: boolean;
34
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
35
35
  suggestedBinding: {
36
36
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
37
37
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -122,7 +122,7 @@ export declare const actionDeleteSelected: {
122
122
  selectedElementsAreBeingDragged: boolean;
123
123
  shouldCacheIgnoreZoom: boolean;
124
124
  toast: {
125
- message: string;
125
+ message: React.ReactNode;
126
126
  closable?: boolean;
127
127
  duration?: number;
128
128
  } | null;
@@ -140,7 +140,7 @@ export declare const actionDeleteSelected: {
140
140
  height: number;
141
141
  offsetTop: number;
142
142
  offsetLeft: number;
143
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
143
+ fileHandle: FileSystemFileHandle | null;
144
144
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
145
145
  stats: {
146
146
  open: boolean;
@@ -222,9 +222,9 @@ export declare const actionDeleteSelected: {
222
222
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
223
223
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
224
224
  isBindingEnabled: boolean;
225
+ boxSelectionMode: import("../types").BoxSelectionMode;
225
226
  bindingPreference: "enabled" | "disabled";
226
227
  isMidpointSnappingEnabled: boolean;
227
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
228
228
  suggestedBinding: {
229
229
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
230
230
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -315,7 +315,7 @@ export declare const actionDeleteSelected: {
315
315
  selectedElementsAreBeingDragged: boolean;
316
316
  shouldCacheIgnoreZoom: boolean;
317
317
  toast: {
318
- message: string;
318
+ message: React.ReactNode;
319
319
  closable?: boolean;
320
320
  duration?: number;
321
321
  } | null;
@@ -333,7 +333,7 @@ export declare const actionDeleteSelected: {
333
333
  height: number;
334
334
  offsetTop: number;
335
335
  offsetLeft: number;
336
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
336
+ fileHandle: FileSystemFileHandle | null;
337
337
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
338
338
  stats: {
339
339
  open: boolean;
@@ -388,9 +388,9 @@ export declare const actionDeleteSelected: {
388
388
  resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
389
389
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
390
390
  isBindingEnabled: boolean;
391
+ boxSelectionMode: import("../types").BoxSelectionMode;
391
392
  bindingPreference: "enabled" | "disabled";
392
393
  isMidpointSnappingEnabled: boolean;
393
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
394
394
  suggestedBinding: {
395
395
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
396
396
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -473,7 +473,7 @@ export declare const actionDeleteSelected: {
473
473
  selectedElementsAreBeingDragged: boolean;
474
474
  shouldCacheIgnoreZoom: boolean;
475
475
  toast: {
476
- message: string;
476
+ message: React.ReactNode;
477
477
  closable?: boolean;
478
478
  duration?: number;
479
479
  } | null;
@@ -487,7 +487,7 @@ export declare const actionDeleteSelected: {
487
487
  height: number;
488
488
  offsetTop: number;
489
489
  offsetLeft: number;
490
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
490
+ fileHandle: FileSystemFileHandle | null;
491
491
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
492
492
  stats: {
493
493
  open: boolean;
@@ -0,0 +1,160 @@
1
+ import type { AppClassProperties, AppState } from "../types";
2
+ export declare const actionDeselect: {
3
+ name: "deselect";
4
+ label: string;
5
+ trackEvent: false;
6
+ perform: (_elements: readonly import("@excalidraw/element/types").OrderedExcalidrawElement[], appState: Readonly<AppState>, _: unknown, app: AppClassProperties) => {
7
+ appState: {
8
+ activeEmbeddable: null;
9
+ activeTool: {
10
+ lastActiveTool: import("../types").ActiveTool | null;
11
+ locked: boolean;
12
+ fromSelection: boolean;
13
+ } & import("../types").ActiveTool;
14
+ selectedLinearElement: null;
15
+ selectionElement: null;
16
+ showHyperlinkPopup: false;
17
+ suggestedBinding: null;
18
+ frameToHighlight: null;
19
+ selectedElementIds: AppState["selectedElementIds"];
20
+ selectedGroupIds: AppState["selectedGroupIds"];
21
+ editingGroupId: AppState["editingGroupId"];
22
+ contextMenu: {
23
+ items: import("../components/ContextMenu").ContextMenuItems;
24
+ top: number;
25
+ left: number;
26
+ } | null;
27
+ showWelcomeScreen: boolean;
28
+ isLoading: boolean;
29
+ errorMessage: React.ReactNode;
30
+ newElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawNonSelectionElement> | null;
31
+ resizingElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
32
+ multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
33
+ isBindingEnabled: boolean;
34
+ boxSelectionMode: import("../types").BoxSelectionMode;
35
+ bindingPreference: "enabled" | "disabled";
36
+ isMidpointSnappingEnabled: boolean;
37
+ frameRendering: {
38
+ enabled: boolean;
39
+ name: boolean;
40
+ outline: boolean;
41
+ clip: boolean;
42
+ };
43
+ editingFrame: string | null;
44
+ elementsToHighlight: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawElement>[] | null;
45
+ editingTextElement: import("@excalidraw/element/types").ExcalidrawTextElement | null;
46
+ preferredSelectionTool: {
47
+ type: "selection" | "lasso";
48
+ initialized: boolean;
49
+ };
50
+ penMode: boolean;
51
+ penDetected: boolean;
52
+ exportBackground: boolean;
53
+ exportEmbedScene: boolean;
54
+ exportWithDarkMode: boolean;
55
+ exportScale: number;
56
+ currentItemStrokeColor: string;
57
+ currentItemBackgroundColor: string;
58
+ currentItemFillStyle: import("@excalidraw/element/types").ExcalidrawElement["fillStyle"];
59
+ currentItemStrokeWidth: number;
60
+ currentItemStrokeStyle: import("@excalidraw/element/types").ExcalidrawElement["strokeStyle"];
61
+ currentItemRoughness: number;
62
+ currentItemOpacity: number;
63
+ currentItemFontFamily: import("@excalidraw/element/types").FontFamilyValues;
64
+ currentItemFontSize: number;
65
+ currentItemTextAlign: import("@excalidraw/element/types").TextAlign;
66
+ currentItemStartArrowhead: import("@excalidraw/element/types").Arrowhead | null;
67
+ currentItemEndArrowhead: import("@excalidraw/element/types").Arrowhead | null;
68
+ currentHoveredFontFamily: import("@excalidraw/element/types").FontFamilyValues | null;
69
+ currentItemRoundness: import("@excalidraw/element/types").StrokeRoundness;
70
+ currentItemArrowType: "sharp" | "round" | "elbow";
71
+ viewBackgroundColor: string;
72
+ scrollX: number;
73
+ scrollY: number;
74
+ cursorButton: "up" | "down";
75
+ scrolledOutside: boolean;
76
+ name: string | null;
77
+ isResizing: boolean;
78
+ isRotating: boolean;
79
+ zoom: import("../types").Zoom;
80
+ openMenu: "canvas" | null;
81
+ openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
82
+ openSidebar: {
83
+ name: import("../types").SidebarName;
84
+ tab?: import("../types").SidebarTabName;
85
+ } | null;
86
+ openDialog: null | {
87
+ name: "imageExport" | "help" | "jsonExport";
88
+ } | {
89
+ name: "ttd";
90
+ tab: "text-to-diagram" | "mermaid";
91
+ } | {
92
+ name: "commandPalette";
93
+ } | {
94
+ name: "settings";
95
+ } | {
96
+ name: "elementLinkSelector";
97
+ sourceElementId: import("@excalidraw/element/types").ExcalidrawElement["id"];
98
+ } | {
99
+ name: "charts";
100
+ data: import("../charts").Spreadsheet;
101
+ rawText: string;
102
+ };
103
+ defaultSidebarDockedPreference: boolean;
104
+ lastPointerDownWith: import("@excalidraw/element/types").PointerType;
105
+ hoveredElementIds: Readonly<{
106
+ [id: string]: true;
107
+ }>;
108
+ previousSelectedElementIds: {
109
+ [id: string]: true;
110
+ };
111
+ selectedElementsAreBeingDragged: boolean;
112
+ shouldCacheIgnoreZoom: boolean;
113
+ toast: {
114
+ message: React.ReactNode;
115
+ closable?: boolean;
116
+ duration?: number;
117
+ } | null;
118
+ zenModeEnabled: boolean;
119
+ theme: import("@excalidraw/element/types").Theme;
120
+ gridSize: number;
121
+ gridStep: number;
122
+ gridModeEnabled: boolean;
123
+ viewModeEnabled: boolean;
124
+ width: number;
125
+ height: number;
126
+ offsetTop: number;
127
+ offsetLeft: number;
128
+ fileHandle: FileSystemFileHandle | null;
129
+ collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
130
+ stats: {
131
+ open: boolean;
132
+ panels: number;
133
+ };
134
+ snapLines: readonly import("../snapping").SnapLine[];
135
+ originSnapOffset: {
136
+ x: number;
137
+ y: number;
138
+ } | null;
139
+ objectsSnapModeEnabled: boolean;
140
+ userToFollow: import("../types").UserToFollow | null;
141
+ followedBy: Set<import("../types").SocketId>;
142
+ scrollConstraints: import("../types").ScrollConstraints | null;
143
+ isCropping: boolean;
144
+ croppingElementId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
145
+ searchMatches: Readonly<{
146
+ focusedId: import("@excalidraw/element/types").ExcalidrawElement["id"] | null;
147
+ matches: readonly import("../types").SearchMatch[];
148
+ }> | null;
149
+ activeLockedId: string | null;
150
+ lockedMultiSelections: {
151
+ [groupId: string]: true;
152
+ };
153
+ bindMode: import("@excalidraw/element/types").BindMode;
154
+ };
155
+ captureUpdate: "IMMEDIATELY";
156
+ };
157
+ keyTest: (event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, _: readonly import("@excalidraw/element/types").ExcalidrawElement[], app: AppClassProperties) => boolean;
158
+ } & {
159
+ keyTest?: ((event: KeyboardEvent | import("react").KeyboardEvent<Element>, appState: AppState, _: readonly import("@excalidraw/element/types").ExcalidrawElement[], app: AppClassProperties) => boolean) | undefined;
160
+ };
@@ -57,9 +57,9 @@ export declare const actionLinkToElement: {
57
57
  multiElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawLinearElement> | null;
58
58
  selectionElement: import("@excalidraw/element/types").NonDeletedExcalidrawElement | null;
59
59
  isBindingEnabled: boolean;
60
+ boxSelectionMode: import("../types").BoxSelectionMode;
60
61
  bindingPreference: "enabled" | "disabled";
61
62
  isMidpointSnappingEnabled: boolean;
62
- startBoundElement: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement> | null;
63
63
  suggestedBinding: {
64
64
  element: import("@excalidraw/element/types").NonDeleted<import("@excalidraw/element/types").ExcalidrawBindableElement>;
65
65
  midPoint?: import("@excalidraw/math").GlobalPoint;
@@ -133,7 +133,7 @@ export declare const actionLinkToElement: {
133
133
  selectedElementsAreBeingDragged: boolean;
134
134
  shouldCacheIgnoreZoom: boolean;
135
135
  toast: {
136
- message: string;
136
+ message: React.ReactNode;
137
137
  closable?: boolean;
138
138
  duration?: number;
139
139
  } | null;
@@ -151,7 +151,7 @@ export declare const actionLinkToElement: {
151
151
  height: number;
152
152
  offsetTop: number;
153
153
  offsetLeft: number;
154
- fileHandle: import("browser-fs-access").FileSystemHandle | null;
154
+ fileHandle: FileSystemFileHandle | null;
155
155
  collaborators: Map<import("../types").SocketId, import("../types").Collaborator>;
156
156
  stats: {
157
157
  open: boolean;