@zsviczian/excalidraw 0.17.6-14 → 0.17.6-15

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 (47) hide show
  1. package/dist/excalidraw.development.js +75 -31
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/dist/styles.development.css +78 -0
  4. package/dist/styles.production.css +1 -0
  5. package/package.json +1 -2
  6. package/types/excalidraw/actions/actionAddToLibrary.d.ts +18 -0
  7. package/types/excalidraw/actions/actionBoundText.d.ts +12 -0
  8. package/types/excalidraw/actions/actionCanvas.d.ts +84 -0
  9. package/types/excalidraw/actions/actionClipboard.d.ts +36 -0
  10. package/types/excalidraw/actions/actionCropEditor.d.ts +6 -0
  11. package/types/excalidraw/actions/actionDeleteSelected.d.ts +18 -0
  12. package/types/excalidraw/actions/actionElementLink.d.ts +244 -0
  13. package/types/excalidraw/actions/actionElementLock.d.ts +12 -0
  14. package/types/excalidraw/actions/actionExport.d.ts +51 -0
  15. package/types/excalidraw/actions/actionFinalize.d.ts +12 -0
  16. package/types/excalidraw/actions/actionFrame.d.ts +24 -0
  17. package/types/excalidraw/actions/actionGroup.d.ts +12 -0
  18. package/types/excalidraw/actions/actionLinearEditor.d.ts +6 -0
  19. package/types/excalidraw/actions/actionLink.d.ts +7 -1
  20. package/types/excalidraw/actions/actionMenu.d.ts +15 -0
  21. package/types/excalidraw/actions/actionNavigate.d.ts +12 -0
  22. package/types/excalidraw/actions/actionProperties.d.ts +90 -0
  23. package/types/excalidraw/actions/actionSelectAll.d.ts +6 -0
  24. package/types/excalidraw/actions/actionStyles.d.ts +6 -0
  25. package/types/excalidraw/actions/actionToggleGridMode.d.ts +6 -0
  26. package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +6 -0
  27. package/types/excalidraw/actions/actionToggleSearchMenu.d.ts +9 -0
  28. package/types/excalidraw/actions/actionToggleStats.d.ts +6 -0
  29. package/types/excalidraw/actions/actionToggleViewMode.d.ts +6 -0
  30. package/types/excalidraw/actions/actionToggleZenMode.d.ts +6 -0
  31. package/types/excalidraw/actions/types.d.ts +1 -1
  32. package/types/excalidraw/components/App.d.ts +9 -1
  33. package/types/excalidraw/components/ElementLinkDialog.d.ts +11 -0
  34. package/types/excalidraw/components/LayerUI.d.ts +2 -1
  35. package/types/excalidraw/components/hyperlink/Hyperlink.d.ts +1 -1
  36. package/types/excalidraw/components/hyperlink/helpers.d.ts +1 -0
  37. package/types/excalidraw/components/icons.d.ts +1 -0
  38. package/types/excalidraw/constants.d.ts +2 -0
  39. package/types/excalidraw/data/encode.d.ts +1 -0
  40. package/types/excalidraw/element/binding.d.ts +1 -1
  41. package/types/excalidraw/element/elementLink.d.ts +13 -0
  42. package/types/excalidraw/element/embeddable.d.ts +6 -0
  43. package/types/excalidraw/errors.d.ts +7 -0
  44. package/types/excalidraw/index.d.ts +1 -0
  45. package/types/excalidraw/renderer/renderElement.d.ts +1 -1
  46. package/types/excalidraw/scene/Scene.d.ts +1 -0
  47. package/types/excalidraw/types.d.ts +9 -0
@@ -88,12 +88,18 @@ export declare const actionGoToCollaborator: {
88
88
  tab: "mermaid" | "text-to-diagram";
89
89
  } | {
90
90
  name: "commandPalette";
91
+ } | {
92
+ name: "elementLinkSelector";
93
+ sourceElementId: string;
91
94
  } | null;
92
95
  defaultSidebarDockedPreference: boolean;
93
96
  lastPointerDownWith: import("../element/types").PointerType;
94
97
  selectedElementIds: Readonly<{
95
98
  [id: string]: true;
96
99
  }>;
100
+ hoveredElementIds: Readonly<{
101
+ [id: string]: true;
102
+ }>;
97
103
  previousSelectedElementIds: {
98
104
  [id: string]: true;
99
105
  };
@@ -292,12 +298,18 @@ export declare const actionGoToCollaborator: {
292
298
  tab: "mermaid" | "text-to-diagram";
293
299
  } | {
294
300
  name: "commandPalette";
301
+ } | {
302
+ name: "elementLinkSelector";
303
+ sourceElementId: string;
295
304
  } | null;
296
305
  defaultSidebarDockedPreference: boolean;
297
306
  lastPointerDownWith: import("../element/types").PointerType;
298
307
  selectedElementIds: Readonly<{
299
308
  [id: string]: true;
300
309
  }>;
310
+ hoveredElementIds: Readonly<{
311
+ [id: string]: true;
312
+ }>;
301
313
  previousSelectedElementIds: {
302
314
  [id: string]: true;
303
315
  };
@@ -107,12 +107,18 @@ export declare const actionChangeFillStyle: {
107
107
  tab: "mermaid" | "text-to-diagram";
108
108
  } | {
109
109
  name: "commandPalette";
110
+ } | {
111
+ name: "elementLinkSelector";
112
+ sourceElementId: string;
110
113
  } | null;
111
114
  defaultSidebarDockedPreference: boolean;
112
115
  lastPointerDownWith: import("../element/types").PointerType;
113
116
  selectedElementIds: Readonly<{
114
117
  [id: string]: true;
115
118
  }>;
119
+ hoveredElementIds: Readonly<{
120
+ [id: string]: true;
121
+ }>;
116
122
  previousSelectedElementIds: {
117
123
  [id: string]: true;
118
124
  };
@@ -318,12 +324,18 @@ export declare const actionChangeStrokeWidth: {
318
324
  tab: "mermaid" | "text-to-diagram";
319
325
  } | {
320
326
  name: "commandPalette";
327
+ } | {
328
+ name: "elementLinkSelector";
329
+ sourceElementId: string;
321
330
  } | null;
322
331
  defaultSidebarDockedPreference: boolean;
323
332
  lastPointerDownWith: import("../element/types").PointerType;
324
333
  selectedElementIds: Readonly<{
325
334
  [id: string]: true;
326
335
  }>;
336
+ hoveredElementIds: Readonly<{
337
+ [id: string]: true;
338
+ }>;
327
339
  previousSelectedElementIds: {
328
340
  [id: string]: true;
329
341
  };
@@ -529,12 +541,18 @@ export declare const actionChangeSloppiness: {
529
541
  tab: "mermaid" | "text-to-diagram";
530
542
  } | {
531
543
  name: "commandPalette";
544
+ } | {
545
+ name: "elementLinkSelector";
546
+ sourceElementId: string;
532
547
  } | null;
533
548
  defaultSidebarDockedPreference: boolean;
534
549
  lastPointerDownWith: import("../element/types").PointerType;
535
550
  selectedElementIds: Readonly<{
536
551
  [id: string]: true;
537
552
  }>;
553
+ hoveredElementIds: Readonly<{
554
+ [id: string]: true;
555
+ }>;
538
556
  previousSelectedElementIds: {
539
557
  [id: string]: true;
540
558
  };
@@ -740,12 +758,18 @@ export declare const actionChangeStrokeStyle: {
740
758
  tab: "mermaid" | "text-to-diagram";
741
759
  } | {
742
760
  name: "commandPalette";
761
+ } | {
762
+ name: "elementLinkSelector";
763
+ sourceElementId: string;
743
764
  } | null;
744
765
  defaultSidebarDockedPreference: boolean;
745
766
  lastPointerDownWith: import("../element/types").PointerType;
746
767
  selectedElementIds: Readonly<{
747
768
  [id: string]: true;
748
769
  }>;
770
+ hoveredElementIds: Readonly<{
771
+ [id: string]: true;
772
+ }>;
749
773
  previousSelectedElementIds: {
750
774
  [id: string]: true;
751
775
  };
@@ -951,12 +975,18 @@ export declare const actionChangeOpacity: {
951
975
  tab: "mermaid" | "text-to-diagram";
952
976
  } | {
953
977
  name: "commandPalette";
978
+ } | {
979
+ name: "elementLinkSelector";
980
+ sourceElementId: string;
954
981
  } | null;
955
982
  defaultSidebarDockedPreference: boolean;
956
983
  lastPointerDownWith: import("../element/types").PointerType;
957
984
  selectedElementIds: Readonly<{
958
985
  [id: string]: true;
959
986
  }>;
987
+ hoveredElementIds: Readonly<{
988
+ [id: string]: true;
989
+ }>;
960
990
  previousSelectedElementIds: {
961
991
  [id: string]: true;
962
992
  };
@@ -1163,12 +1193,18 @@ export declare const actionChangeFontSize: {
1163
1193
  tab: "mermaid" | "text-to-diagram";
1164
1194
  } | {
1165
1195
  name: "commandPalette";
1196
+ } | {
1197
+ name: "elementLinkSelector";
1198
+ sourceElementId: string;
1166
1199
  } | null;
1167
1200
  defaultSidebarDockedPreference: boolean;
1168
1201
  lastPointerDownWith: import("../element/types").PointerType;
1169
1202
  selectedElementIds: Readonly<{
1170
1203
  [id: string]: true;
1171
1204
  }>;
1205
+ hoveredElementIds: Readonly<{
1206
+ [id: string]: true;
1207
+ }>;
1172
1208
  previousSelectedElementIds: {
1173
1209
  [id: string]: true;
1174
1210
  };
@@ -1375,12 +1411,18 @@ export declare const actionDecreaseFontSize: {
1375
1411
  tab: "mermaid" | "text-to-diagram";
1376
1412
  } | {
1377
1413
  name: "commandPalette";
1414
+ } | {
1415
+ name: "elementLinkSelector";
1416
+ sourceElementId: string;
1378
1417
  } | null;
1379
1418
  defaultSidebarDockedPreference: boolean;
1380
1419
  lastPointerDownWith: import("../element/types").PointerType;
1381
1420
  selectedElementIds: Readonly<{
1382
1421
  [id: string]: true;
1383
1422
  }>;
1423
+ hoveredElementIds: Readonly<{
1424
+ [id: string]: true;
1425
+ }>;
1384
1426
  previousSelectedElementIds: {
1385
1427
  [id: string]: true;
1386
1428
  };
@@ -1587,12 +1629,18 @@ export declare const actionIncreaseFontSize: {
1587
1629
  tab: "mermaid" | "text-to-diagram";
1588
1630
  } | {
1589
1631
  name: "commandPalette";
1632
+ } | {
1633
+ name: "elementLinkSelector";
1634
+ sourceElementId: string;
1590
1635
  } | null;
1591
1636
  defaultSidebarDockedPreference: boolean;
1592
1637
  lastPointerDownWith: import("../element/types").PointerType;
1593
1638
  selectedElementIds: Readonly<{
1594
1639
  [id: string]: true;
1595
1640
  }>;
1641
+ hoveredElementIds: Readonly<{
1642
+ [id: string]: true;
1643
+ }>;
1596
1644
  previousSelectedElementIds: {
1597
1645
  [id: string]: true;
1598
1646
  };
@@ -1797,12 +1845,18 @@ export declare const actionChangeFontFamily: {
1797
1845
  tab: "mermaid" | "text-to-diagram";
1798
1846
  } | {
1799
1847
  name: "commandPalette";
1848
+ } | {
1849
+ name: "elementLinkSelector";
1850
+ sourceElementId: string;
1800
1851
  } | null;
1801
1852
  defaultSidebarDockedPreference: boolean;
1802
1853
  lastPointerDownWith: import("../element/types").PointerType;
1803
1854
  selectedElementIds: Readonly<{
1804
1855
  [id: string]: true;
1805
1856
  }>;
1857
+ hoveredElementIds: Readonly<{
1858
+ [id: string]: true;
1859
+ }>;
1806
1860
  previousSelectedElementIds: {
1807
1861
  [id: string]: true;
1808
1862
  };
@@ -1999,12 +2053,18 @@ export declare const actionChangeFontFamily: {
1999
2053
  tab: "mermaid" | "text-to-diagram";
2000
2054
  } | {
2001
2055
  name: "commandPalette";
2056
+ } | {
2057
+ name: "elementLinkSelector";
2058
+ sourceElementId: string;
2002
2059
  } | null;
2003
2060
  defaultSidebarDockedPreference: boolean;
2004
2061
  lastPointerDownWith: import("../element/types").PointerType;
2005
2062
  selectedElementIds: Readonly<{
2006
2063
  [id: string]: true;
2007
2064
  }>;
2065
+ hoveredElementIds: Readonly<{
2066
+ [id: string]: true;
2067
+ }>;
2008
2068
  previousSelectedElementIds: {
2009
2069
  [id: string]: true;
2010
2070
  };
@@ -2210,12 +2270,18 @@ export declare const actionChangeTextAlign: {
2210
2270
  tab: "mermaid" | "text-to-diagram";
2211
2271
  } | {
2212
2272
  name: "commandPalette";
2273
+ } | {
2274
+ name: "elementLinkSelector";
2275
+ sourceElementId: string;
2213
2276
  } | null;
2214
2277
  defaultSidebarDockedPreference: boolean;
2215
2278
  lastPointerDownWith: import("../element/types").PointerType;
2216
2279
  selectedElementIds: Readonly<{
2217
2280
  [id: string]: true;
2218
2281
  }>;
2282
+ hoveredElementIds: Readonly<{
2283
+ [id: string]: true;
2284
+ }>;
2219
2285
  previousSelectedElementIds: {
2220
2286
  [id: string]: true;
2221
2287
  };
@@ -2423,12 +2489,18 @@ export declare const actionChangeVerticalAlign: {
2423
2489
  tab: "mermaid" | "text-to-diagram";
2424
2490
  } | {
2425
2491
  name: "commandPalette";
2492
+ } | {
2493
+ name: "elementLinkSelector";
2494
+ sourceElementId: string;
2426
2495
  } | null;
2427
2496
  defaultSidebarDockedPreference: boolean;
2428
2497
  lastPointerDownWith: import("../element/types").PointerType;
2429
2498
  selectedElementIds: Readonly<{
2430
2499
  [id: string]: true;
2431
2500
  }>;
2501
+ hoveredElementIds: Readonly<{
2502
+ [id: string]: true;
2503
+ }>;
2432
2504
  previousSelectedElementIds: {
2433
2505
  [id: string]: true;
2434
2506
  };
@@ -2634,12 +2706,18 @@ export declare const actionChangeRoundness: {
2634
2706
  tab: "mermaid" | "text-to-diagram";
2635
2707
  } | {
2636
2708
  name: "commandPalette";
2709
+ } | {
2710
+ name: "elementLinkSelector";
2711
+ sourceElementId: string;
2637
2712
  } | null;
2638
2713
  defaultSidebarDockedPreference: boolean;
2639
2714
  lastPointerDownWith: import("../element/types").PointerType;
2640
2715
  selectedElementIds: Readonly<{
2641
2716
  [id: string]: true;
2642
2717
  }>;
2718
+ hoveredElementIds: Readonly<{
2719
+ [id: string]: true;
2720
+ }>;
2643
2721
  previousSelectedElementIds: {
2644
2722
  [id: string]: true;
2645
2723
  };
@@ -2848,12 +2926,18 @@ export declare const actionChangeArrowhead: {
2848
2926
  tab: "mermaid" | "text-to-diagram";
2849
2927
  } | {
2850
2928
  name: "commandPalette";
2929
+ } | {
2930
+ name: "elementLinkSelector";
2931
+ sourceElementId: string;
2851
2932
  } | null;
2852
2933
  defaultSidebarDockedPreference: boolean;
2853
2934
  lastPointerDownWith: import("../element/types").PointerType;
2854
2935
  selectedElementIds: Readonly<{
2855
2936
  [id: string]: true;
2856
2937
  }>;
2938
+ hoveredElementIds: Readonly<{
2939
+ [id: string]: true;
2940
+ }>;
2857
2941
  previousSelectedElementIds: {
2858
2942
  [id: string]: true;
2859
2943
  };
@@ -3059,12 +3143,18 @@ export declare const actionChangeArrowType: {
3059
3143
  tab: "mermaid" | "text-to-diagram";
3060
3144
  } | {
3061
3145
  name: "commandPalette";
3146
+ } | {
3147
+ name: "elementLinkSelector";
3148
+ sourceElementId: string;
3062
3149
  } | null;
3063
3150
  defaultSidebarDockedPreference: boolean;
3064
3151
  lastPointerDownWith: import("../element/types").PointerType;
3065
3152
  selectedElementIds: Readonly<{
3066
3153
  [id: string]: true;
3067
3154
  }>;
3155
+ hoveredElementIds: Readonly<{
3156
+ [id: string]: true;
3157
+ }>;
3068
3158
  previousSelectedElementIds: {
3069
3159
  [id: string]: true;
3070
3160
  };
@@ -97,9 +97,15 @@ export declare const actionSelectAll: {
97
97
  tab: "mermaid" | "text-to-diagram";
98
98
  } | {
99
99
  name: "commandPalette";
100
+ } | {
101
+ name: "elementLinkSelector";
102
+ sourceElementId: string;
100
103
  } | null;
101
104
  defaultSidebarDockedPreference: boolean;
102
105
  lastPointerDownWith: import("../element/types").PointerType;
106
+ hoveredElementIds: Readonly<{
107
+ [id: string]: true;
108
+ }>;
103
109
  previousSelectedElementIds: {
104
110
  [id: string]: true;
105
111
  };
@@ -90,12 +90,18 @@ export declare const actionCopyStyles: {
90
90
  tab: "mermaid" | "text-to-diagram";
91
91
  } | {
92
92
  name: "commandPalette";
93
+ } | {
94
+ name: "elementLinkSelector";
95
+ sourceElementId: string;
93
96
  } | null;
94
97
  defaultSidebarDockedPreference: boolean;
95
98
  lastPointerDownWith: import("../element/types").PointerType;
96
99
  selectedElementIds: Readonly<{
97
100
  [id: string]: true;
98
101
  }>;
102
+ hoveredElementIds: Readonly<{
103
+ [id: string]: true;
104
+ }>;
99
105
  previousSelectedElementIds: {
100
106
  [id: string]: true;
101
107
  };
@@ -92,12 +92,18 @@ export declare const actionToggleGridMode: {
92
92
  tab: "mermaid" | "text-to-diagram";
93
93
  } | {
94
94
  name: "commandPalette";
95
+ } | {
96
+ name: "elementLinkSelector";
97
+ sourceElementId: string;
95
98
  } | null;
96
99
  defaultSidebarDockedPreference: boolean;
97
100
  lastPointerDownWith: import("../element/types").PointerType;
98
101
  selectedElementIds: Readonly<{
99
102
  [id: string]: true;
100
103
  }>;
104
+ hoveredElementIds: Readonly<{
105
+ [id: string]: true;
106
+ }>;
101
107
  previousSelectedElementIds: {
102
108
  [id: string]: true;
103
109
  };
@@ -90,12 +90,18 @@ export declare const actionToggleObjectsSnapMode: {
90
90
  tab: "mermaid" | "text-to-diagram";
91
91
  } | {
92
92
  name: "commandPalette";
93
+ } | {
94
+ name: "elementLinkSelector";
95
+ sourceElementId: string;
93
96
  } | null;
94
97
  defaultSidebarDockedPreference: boolean;
95
98
  lastPointerDownWith: import("../element/types").PointerType;
96
99
  selectedElementIds: Readonly<{
97
100
  [id: string]: true;
98
101
  }>;
102
+ hoveredElementIds: Readonly<{
103
+ [id: string]: true;
104
+ }>;
99
105
  previousSelectedElementIds: {
100
106
  [id: string]: true;
101
107
  };
@@ -88,12 +88,18 @@ export declare const actionToggleSearchMenu: {
88
88
  tab: "mermaid" | "text-to-diagram";
89
89
  } | {
90
90
  name: "commandPalette";
91
+ } | {
92
+ name: "elementLinkSelector";
93
+ sourceElementId: string;
91
94
  } | null;
92
95
  defaultSidebarDockedPreference: boolean;
93
96
  lastPointerDownWith: import("../element/types").PointerType;
94
97
  selectedElementIds: Readonly<{
95
98
  [id: string]: true;
96
99
  }>;
100
+ hoveredElementIds: Readonly<{
101
+ [id: string]: true;
102
+ }>;
97
103
  previousSelectedElementIds: {
98
104
  [id: string]: true;
99
105
  };
@@ -288,6 +294,9 @@ export declare const actionToggleSearchMenu: {
288
294
  selectedElementIds: Readonly<{
289
295
  [id: string]: true;
290
296
  }>;
297
+ hoveredElementIds: Readonly<{
298
+ [id: string]: true;
299
+ }>;
291
300
  previousSelectedElementIds: {
292
301
  [id: string]: true;
293
302
  };
@@ -93,12 +93,18 @@ export declare const actionToggleStats: {
93
93
  tab: "mermaid" | "text-to-diagram";
94
94
  } | {
95
95
  name: "commandPalette";
96
+ } | {
97
+ name: "elementLinkSelector";
98
+ sourceElementId: string;
96
99
  } | null;
97
100
  defaultSidebarDockedPreference: boolean;
98
101
  lastPointerDownWith: import("../element/types").PointerType;
99
102
  selectedElementIds: Readonly<{
100
103
  [id: string]: true;
101
104
  }>;
105
+ hoveredElementIds: Readonly<{
106
+ [id: string]: true;
107
+ }>;
102
108
  previousSelectedElementIds: {
103
109
  [id: string]: true;
104
110
  };
@@ -90,12 +90,18 @@ export declare const actionToggleViewMode: {
90
90
  tab: "mermaid" | "text-to-diagram";
91
91
  } | {
92
92
  name: "commandPalette";
93
+ } | {
94
+ name: "elementLinkSelector";
95
+ sourceElementId: string;
93
96
  } | null;
94
97
  defaultSidebarDockedPreference: boolean;
95
98
  lastPointerDownWith: import("../element/types").PointerType;
96
99
  selectedElementIds: Readonly<{
97
100
  [id: string]: true;
98
101
  }>;
102
+ hoveredElementIds: Readonly<{
103
+ [id: string]: true;
104
+ }>;
99
105
  previousSelectedElementIds: {
100
106
  [id: string]: true;
101
107
  };
@@ -90,12 +90,18 @@ export declare const actionToggleZenMode: {
90
90
  tab: "mermaid" | "text-to-diagram";
91
91
  } | {
92
92
  name: "commandPalette";
93
+ } | {
94
+ name: "elementLinkSelector";
95
+ sourceElementId: string;
93
96
  } | null;
94
97
  defaultSidebarDockedPreference: boolean;
95
98
  lastPointerDownWith: import("../element/types").PointerType;
96
99
  selectedElementIds: Readonly<{
97
100
  [id: string]: true;
98
101
  }>;
102
+ hoveredElementIds: Readonly<{
103
+ [id: string]: true;
104
+ }>;
99
105
  previousSelectedElementIds: {
100
106
  [id: string]: true;
101
107
  };
@@ -14,7 +14,7 @@ export type ActionResult = {
14
14
  type ActionFn = (elements: readonly OrderedExcalidrawElement[], appState: Readonly<AppState>, formData: any, app: AppClassProperties) => ActionResult | Promise<ActionResult>;
15
15
  export type UpdaterFn = (res: ActionResult) => void;
16
16
  export type ActionFilterFn = (action: Action) => void;
17
- export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "toggleLaserPointerTool" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "cropEditor";
17
+ export type ActionName = "copy" | "cut" | "paste" | "copyAsPng" | "copyAsSvg" | "copyText" | "sendBackward" | "bringForward" | "sendToBack" | "bringToFront" | "copyStyles" | "selectAll" | "pasteStyles" | "gridMode" | "zenMode" | "objectsSnapMode" | "stats" | "changeStrokeColor" | "changeBackgroundColor" | "changeFillStyle" | "changeStrokeWidth" | "changeStrokeShape" | "changeSloppiness" | "changeStrokeStyle" | "changeArrowhead" | "changeArrowType" | "changeOpacity" | "changeFontSize" | "toggleCanvasMenu" | "toggleEditMenu" | "undo" | "redo" | "finalize" | "changeProjectName" | "changeExportBackground" | "changeExportEmbedScene" | "changeExportScale" | "saveToActiveFile" | "saveFileToDisk" | "loadScene" | "duplicateSelection" | "deleteSelectedElements" | "changeViewBackgroundColor" | "clearCanvas" | "zoomIn" | "zoomOut" | "resetZoom" | "zoomToFit" | "zoomToFitSelection" | "zoomToFitSelectionInViewport" | "changeFontFamily" | "changeTextAlign" | "changeVerticalAlign" | "toggleFullScreen" | "toggleShortcuts" | "group" | "ungroup" | "goToCollaborator" | "addToLibrary" | "changeRoundness" | "alignTop" | "alignBottom" | "alignLeft" | "alignRight" | "alignVerticallyCentered" | "alignHorizontallyCentered" | "distributeHorizontally" | "distributeVertically" | "flipHorizontal" | "flipVertical" | "viewMode" | "exportWithDarkMode" | "toggleTheme" | "increaseFontSize" | "decreaseFontSize" | "unbindText" | "hyperlink" | "bindText" | "unlockAllElements" | "toggleElementLock" | "toggleLinearEditor" | "toggleEraserTool" | "toggleHandTool" | "selectAllElementsInFrame" | "removeAllElementsFromFrame" | "updateFrameRendering" | "setFrameAsActiveTool" | "setEmbeddableAsActiveTool" | "createContainerFromText" | "wrapTextInContainer" | "toggleLaserPointerTool" | "commandPalette" | "autoResize" | "elementStats" | "searchMenu" | "copyElementLink" | "linkToElement" | "cropEditor";
18
18
  export type PanelComponentProps = {
19
19
  elements: readonly ExcalidrawElement[];
20
20
  appState: AppState;
@@ -156,6 +156,10 @@ declare class App extends React.Component<AppProps, AppState> {
156
156
  cancel(): void;
157
157
  } | null;
158
158
  onUp: ((event: PointerEvent) => void) | null;
159
+ /**
160
+ * Returns gridSize taking into account `gridModeEnabled`.
161
+ * If disabled, returns null.
162
+ */
159
163
  onKeyDown: ((event: KeyboardEvent) => void) | null;
160
164
  onKeyUp: ((event: KeyboardEvent) => void) | null;
161
165
  };
@@ -220,6 +224,10 @@ declare class App extends React.Component<AppProps, AppState> {
220
224
  cancel(): void;
221
225
  } | null;
222
226
  onUp: ((event: PointerEvent) => void) | null;
227
+ /**
228
+ * Returns gridSize taking into account `gridModeEnabled`.
229
+ * If disabled, returns null.
230
+ */
223
231
  onKeyDown: ((event: KeyboardEvent) => void) | null;
224
232
  onKeyUp: ((event: KeyboardEvent) => void) | null;
225
233
  };
@@ -332,7 +340,7 @@ declare class App extends React.Component<AppProps, AppState> {
332
340
  */
333
341
  zoomCanvas: (value: number) => void;
334
342
  private cancelInProgressAnimation;
335
- scrollToContent: (target?: ExcalidrawElement | readonly ExcalidrawElement[], opts?: ({
343
+ scrollToContent: (target?: string | ExcalidrawElement | readonly ExcalidrawElement[], opts?: ({
336
344
  fitToContent?: boolean;
337
345
  fitToViewport?: never;
338
346
  viewportZoomFactor?: number;
@@ -0,0 +1,11 @@
1
+ import type { AppProps, UIAppState } from "../types";
2
+ import type { ElementsMap, ExcalidrawElement } from "../element/types";
3
+ import "./ElementLinkDialog.scss";
4
+ declare const ElementLinkDialog: ({ sourceElementId, onClose, elementsMap, appState, generateLinkForSelection, }: {
5
+ sourceElementId: ExcalidrawElement["id"];
6
+ elementsMap: ElementsMap;
7
+ appState: UIAppState;
8
+ onClose?: (() => void) | undefined;
9
+ generateLinkForSelection: AppProps["generateLinkForSelection"];
10
+ }) => JSX.Element;
11
+ export default ElementLinkDialog;
@@ -25,6 +25,7 @@ interface LayerUIProps {
25
25
  children?: React.ReactNode;
26
26
  app: AppClassProperties;
27
27
  isCollaborating: boolean;
28
+ generateLinkForSelection?: AppProps["generateLinkForSelection"];
28
29
  }
29
- declare const _default: React.MemoExoticComponent<({ actionManager, appState, files, setAppState, elements, canvas, onLockToggle, onHandToolToggle, onPenModeToggle, showExitZenModeBtn, renderTopRightUI, renderCustomStats, UIOptions, onExportImage, renderWelcomeScreen, children, app, isCollaborating, }: LayerUIProps) => JSX.Element>;
30
+ declare const _default: React.MemoExoticComponent<({ actionManager, appState, files, setAppState, elements, canvas, onLockToggle, onHandToolToggle, onPenModeToggle, showExitZenModeBtn, renderTopRightUI, renderCustomStats, UIOptions, onExportImage, renderWelcomeScreen, children, app, isCollaborating, generateLinkForSelection, }: LayerUIProps) => JSX.Element>;
30
31
  export default _default;
@@ -13,6 +13,6 @@ export declare const Hyperlink: ({ element, elementsMap, setAppState, onLinkOpen
13
13
  } | null) => void;
14
14
  updateEmbedValidationStatus: (element: ExcalidrawEmbeddableElement, status: boolean) => void;
15
15
  }) => JSX.Element | null;
16
- export declare const getContextMenuLabel: (elements: readonly NonDeletedExcalidrawElement[], appState: UIAppState) => "labels.link.editEmbed" | "labels.link.edit" | "labels.link.createEmbed" | "labels.link.create";
16
+ export declare const getContextMenuLabel: (elements: readonly NonDeletedExcalidrawElement[], appState: UIAppState) => "labels.link.editEmbed" | "labels.link.edit" | "labels.link.create";
17
17
  export declare const showHyperlinkTooltip: (element: NonDeletedExcalidrawElement, appState: AppState, elementsMap: ElementsMap) => void;
18
18
  export declare const hideHyperlinkToolip: () => void;
@@ -3,6 +3,7 @@ import type { Bounds } from "../../element/bounds";
3
3
  import type { ElementsMap, NonDeletedExcalidrawElement } from "../../element/types";
4
4
  import type { AppState, UIAppState } from "../../types";
5
5
  export declare const EXTERNAL_LINK_IMG: HTMLImageElement;
6
+ export declare const ELEMENT_LINK_IMG: HTMLImageElement;
6
7
  export declare const getLinkHandleFromCoords: ([x1, y1, x2, y2]: Bounds, angle: Radians, appState: Pick<UIAppState, "zoom">) => Bounds;
7
8
  export declare const isPointHittingLinkIcon: (element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, appState: AppState, [x, y]: GlobalPoint) => boolean;
8
9
  export declare const isPointHittingLink: (element: NonDeletedExcalidrawElement, elementsMap: ElementsMap, appState: AppState, [x, y]: GlobalPoint, isMobile: boolean) => boolean;
@@ -210,4 +210,5 @@ export declare const collapseDownIcon: JSX.Element;
210
210
  export declare const collapseUpIcon: JSX.Element;
211
211
  export declare const upIcon: JSX.Element;
212
212
  export declare const cropIcon: JSX.Element;
213
+ export declare const elementLinkIcon: JSX.Element;
213
214
  export {};
@@ -320,3 +320,5 @@ export declare const MIN_WIDTH_OR_HEIGHT = 1;
320
320
  export declare const ARROW_TYPE: {
321
321
  [T in AppState["currentItemArrowType"]]: T;
322
322
  };
323
+ export declare const DEFAULT_REDUCED_GLOBAL_ALPHA = 0.3;
324
+ export declare const ELEMENT_LINK_KEY = "element";
@@ -6,6 +6,7 @@ export declare const toByteString: (data: string | Uint8Array | ArrayBuffer) =>
6
6
  export declare const stringToBase64: (str: string, isByteString?: boolean) => string;
7
7
  export declare const base64ToString: (base64: string, isByteString?: boolean) => string;
8
8
  export declare const base64ToArrayBuffer: (base64: string) => ArrayBuffer;
9
+ export declare const base64urlToString: (str: string) => string;
9
10
  type EncodedData = {
10
11
  encoded: string;
11
12
  encoding: "bstring";
@@ -30,7 +30,7 @@ export declare const getHoveredElementForBinding: (pointerCoords: {
30
30
  }, elements: readonly NonDeletedExcalidrawElement[], elementsMap: NonDeletedSceneElementsMap, fullShape?: boolean) => NonDeleted<ExcalidrawBindableElement> | null;
31
31
  export declare const updateBoundElements: (changedElement: NonDeletedExcalidrawElement, elementsMap: NonDeletedSceneElementsMap | SceneElementsMap, options?: {
32
32
  simultaneouslyUpdated?: readonly ExcalidrawElement[];
33
- oldSize?: {
33
+ newSize?: {
34
34
  width: number;
35
35
  height: number;
36
36
  };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Create and link between shapes.
3
+ */
4
+ import type { AppProps, AppState } from "../types";
5
+ import type { ExcalidrawElement } from "./types";
6
+ export declare const defaultGetElementLinkFromSelection: Exclude<AppProps["generateLinkForSelection"], undefined>;
7
+ export declare const getLinkIdAndTypeFromSelection: (selectedElements: ExcalidrawElement[], appState: AppState) => {
8
+ id: string;
9
+ type: "element" | "group";
10
+ } | null;
11
+ export declare const canCreateLinkFromElements: (selectedElements: ExcalidrawElement[]) => boolean;
12
+ export declare const isElementLink: (url: string) => boolean;
13
+ export declare const parseElementLinkFromURL: (url: string) => string | null;
@@ -94,12 +94,18 @@ export declare const actionSetEmbeddableAsActiveTool: {
94
94
  tab: "mermaid" | "text-to-diagram";
95
95
  } | {
96
96
  name: "commandPalette";
97
+ } | {
98
+ name: "elementLinkSelector";
99
+ sourceElementId: string;
97
100
  } | null;
98
101
  defaultSidebarDockedPreference: boolean;
99
102
  lastPointerDownWith: import("./types").PointerType;
100
103
  selectedElementIds: Readonly<{
101
104
  [id: string]: true;
102
105
  }>;
106
+ hoveredElementIds: Readonly<{
107
+ [id: string]: true;
108
+ }>;
103
109
  previousSelectedElementIds: {
104
110
  [id: string]: true;
105
111
  };
@@ -22,4 +22,11 @@ export declare class WorkerInTheMainChunkError extends Error {
22
22
  code: WorkerErrorCodes;
23
23
  constructor(message?: string, code?: WorkerErrorCodes);
24
24
  }
25
+ /**
26
+ * Use this for generic, handled errors, so you can check against them
27
+ * and rethrow if needed
28
+ */
29
+ export declare class ExcalidrawError extends Error {
30
+ constructor(message: string);
31
+ }
25
32
  export {};