@nous-excalidraw/math 0.18.4 → 0.18.5
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.
- package/dist/types/element/src/typeChecks.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +6 -0
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +4 -0
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +25 -1
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +4 -0
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +6 -0
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +4 -0
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionExport.d.ts +5 -1
- package/dist/types/excalidraw/actions/actionFrame.d.ts +8 -0
- package/dist/types/excalidraw/actions/actionGroup.d.ts +4 -0
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionLink.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionMenu.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionProperties.d.ts +4 -0
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionStyles.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +2 -0
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +2 -0
- package/dist/types/excalidraw/components/App.d.ts +13 -0
- package/dist/types/excalidraw/components/FrameResizeDimensionLabel.d.ts +8 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +1 -0
- package/dist/types/excalidraw/data/blob.d.ts +6 -2
- package/dist/types/excalidraw/data/json.d.ts +3 -1
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +1 -1
- package/dist/types/excalidraw/scene/types.d.ts +2 -0
- package/dist/types/excalidraw/types.d.ts +11 -0
- package/package.json +2 -2
- package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -5
|
@@ -31,6 +31,8 @@ export declare const isRectangularElement: (element?: ExcalidrawElement | null)
|
|
|
31
31
|
export declare const isTextBindableContainer: (element: ExcalidrawElement | null, includeLocked?: boolean) => element is ExcalidrawTextContainer;
|
|
32
32
|
export declare const isExcalidrawElement: (element: any) => element is ExcalidrawElement;
|
|
33
33
|
export declare const isFlowchartNodeElement: (element: ExcalidrawElement) => element is ExcalidrawFlowchartNodeElement;
|
|
34
|
+
/** Elements that support an interactive hover outline along their geometry (not frame/image/embed). */
|
|
35
|
+
export declare const isHoverNativeOutlineShapeElement: (element: ExcalidrawElement | null | undefined) => boolean;
|
|
34
36
|
export declare const hasBoundTextElement: (element: ExcalidrawElement | null) => element is MarkNonNullable<ExcalidrawBindableElement, "boundElements">;
|
|
35
37
|
export declare const isBoundToContainer: (element: ExcalidrawElement | null) => element is ExcalidrawTextElementWithContainer;
|
|
36
38
|
export declare const isArrowBoundToElement: (element: ExcalidrawArrowElement) => boolean;
|
|
@@ -35,6 +35,8 @@ export declare const actionAddToLibrary: {
|
|
|
35
35
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
36
36
|
} | null;
|
|
37
37
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
38
|
+
hoverOutlineElementId: string | null;
|
|
39
|
+
hoveredFrameId: string | null;
|
|
38
40
|
frameRendering: {
|
|
39
41
|
enabled: boolean;
|
|
40
42
|
name: boolean;
|
|
@@ -190,6 +192,8 @@ export declare const actionAddToLibrary: {
|
|
|
190
192
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
191
193
|
} | null;
|
|
192
194
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
195
|
+
hoverOutlineElementId: string | null;
|
|
196
|
+
hoveredFrameId: string | null;
|
|
193
197
|
frameRendering: {
|
|
194
198
|
enabled: boolean;
|
|
195
199
|
name: boolean;
|
|
@@ -350,6 +354,8 @@ export declare const actionAddToLibrary: {
|
|
|
350
354
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
351
355
|
} | null;
|
|
352
356
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
357
|
+
hoverOutlineElementId: string | null;
|
|
358
|
+
hoveredFrameId: string | null;
|
|
353
359
|
frameRendering: {
|
|
354
360
|
enabled: boolean;
|
|
355
361
|
name: boolean;
|
|
@@ -55,6 +55,8 @@ export declare const actionBindText: {
|
|
|
55
55
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
56
56
|
} | null;
|
|
57
57
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
58
|
+
hoverOutlineElementId: string | null;
|
|
59
|
+
hoveredFrameId: string | null;
|
|
58
60
|
frameRendering: {
|
|
59
61
|
enabled: boolean;
|
|
60
62
|
name: boolean;
|
|
@@ -227,6 +229,8 @@ export declare const actionWrapTextInContainer: {
|
|
|
227
229
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
228
230
|
} | null;
|
|
229
231
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
232
|
+
hoverOutlineElementId: string | null;
|
|
233
|
+
hoveredFrameId: string | null;
|
|
230
234
|
frameRendering: {
|
|
231
235
|
enabled: boolean;
|
|
232
236
|
name: boolean;
|
|
@@ -67,6 +67,7 @@ export declare const actionClearCanvas: {
|
|
|
67
67
|
[id: string]: true;
|
|
68
68
|
}>;
|
|
69
69
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
70
|
+
hoverOutlineElementId: string | null;
|
|
70
71
|
activeEmbeddable: {
|
|
71
72
|
element: import("@nous-excalidraw/element/types").NonDeletedExcalidrawElement;
|
|
72
73
|
state: "hover" | "active";
|
|
@@ -103,6 +104,7 @@ export declare const actionClearCanvas: {
|
|
|
103
104
|
shouldCacheIgnoreZoom: boolean;
|
|
104
105
|
exportScale: number;
|
|
105
106
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
107
|
+
selectedElementsAreBeingDragged: boolean;
|
|
106
108
|
bindMode: import("@nous-excalidraw/element/types").BindMode;
|
|
107
109
|
contextMenu: {
|
|
108
110
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
@@ -116,6 +118,7 @@ export declare const actionClearCanvas: {
|
|
|
116
118
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
117
119
|
bindingPreference: "enabled" | "disabled";
|
|
118
120
|
startBoundElement: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawBindableElement> | null;
|
|
121
|
+
hoveredFrameId: string | null;
|
|
119
122
|
editingFrame: string | null;
|
|
120
123
|
preferredSelectionTool: {
|
|
121
124
|
type: "selection" | "lasso";
|
|
@@ -150,7 +153,6 @@ export declare const actionClearCanvas: {
|
|
|
150
153
|
previousSelectedElementIds: {
|
|
151
154
|
[id: string]: true;
|
|
152
155
|
};
|
|
153
|
-
selectedElementsAreBeingDragged: boolean;
|
|
154
156
|
toast: {
|
|
155
157
|
message: React.ReactNode;
|
|
156
158
|
closable?: boolean;
|
|
@@ -216,6 +218,8 @@ export declare const actionZoomIn: {
|
|
|
216
218
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
217
219
|
} | null;
|
|
218
220
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
221
|
+
hoverOutlineElementId: string | null;
|
|
222
|
+
hoveredFrameId: string | null;
|
|
219
223
|
frameRendering: {
|
|
220
224
|
enabled: boolean;
|
|
221
225
|
name: boolean;
|
|
@@ -392,6 +396,8 @@ export declare const actionZoomOut: {
|
|
|
392
396
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
393
397
|
} | null;
|
|
394
398
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
399
|
+
hoverOutlineElementId: string | null;
|
|
400
|
+
hoveredFrameId: string | null;
|
|
395
401
|
frameRendering: {
|
|
396
402
|
enabled: boolean;
|
|
397
403
|
name: boolean;
|
|
@@ -568,6 +574,8 @@ export declare const actionResetZoom: {
|
|
|
568
574
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
569
575
|
} | null;
|
|
570
576
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
577
|
+
hoverOutlineElementId: string | null;
|
|
578
|
+
hoveredFrameId: string | null;
|
|
571
579
|
frameRendering: {
|
|
572
580
|
enabled: boolean;
|
|
573
581
|
name: boolean;
|
|
@@ -745,6 +753,8 @@ export declare const zoomToFitBounds: ({ bounds, appState, canvasOffsets, fitToV
|
|
|
745
753
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
746
754
|
} | null;
|
|
747
755
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
756
|
+
hoverOutlineElementId: string | null;
|
|
757
|
+
hoveredFrameId: string | null;
|
|
748
758
|
frameRendering: {
|
|
749
759
|
enabled: boolean;
|
|
750
760
|
name: boolean;
|
|
@@ -918,6 +928,8 @@ export declare const zoomToFit: ({ canvasOffsets, targetElements, appState, fitT
|
|
|
918
928
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
919
929
|
} | null;
|
|
920
930
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
931
|
+
hoverOutlineElementId: string | null;
|
|
932
|
+
hoveredFrameId: string | null;
|
|
921
933
|
frameRendering: {
|
|
922
934
|
enabled: boolean;
|
|
923
935
|
name: boolean;
|
|
@@ -1088,6 +1100,8 @@ export declare const actionZoomToFitSelectionInViewport: {
|
|
|
1088
1100
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
1089
1101
|
} | null;
|
|
1090
1102
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
1103
|
+
hoverOutlineElementId: string | null;
|
|
1104
|
+
hoveredFrameId: string | null;
|
|
1091
1105
|
frameRendering: {
|
|
1092
1106
|
enabled: boolean;
|
|
1093
1107
|
name: boolean;
|
|
@@ -1262,6 +1276,8 @@ export declare const actionZoomToFitSelection: {
|
|
|
1262
1276
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
1263
1277
|
} | null;
|
|
1264
1278
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
1279
|
+
hoverOutlineElementId: string | null;
|
|
1280
|
+
hoveredFrameId: string | null;
|
|
1265
1281
|
frameRendering: {
|
|
1266
1282
|
enabled: boolean;
|
|
1267
1283
|
name: boolean;
|
|
@@ -1437,6 +1453,8 @@ export declare const actionZoomToFit: {
|
|
|
1437
1453
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
1438
1454
|
} | null;
|
|
1439
1455
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
1456
|
+
hoverOutlineElementId: string | null;
|
|
1457
|
+
hoveredFrameId: string | null;
|
|
1440
1458
|
frameRendering: {
|
|
1441
1459
|
enabled: boolean;
|
|
1442
1460
|
name: boolean;
|
|
@@ -1612,6 +1630,8 @@ export declare const actionToggleEraserTool: {
|
|
|
1612
1630
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
1613
1631
|
} | null;
|
|
1614
1632
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
1633
|
+
hoverOutlineElementId: string | null;
|
|
1634
|
+
hoveredFrameId: string | null;
|
|
1615
1635
|
frameRendering: {
|
|
1616
1636
|
enabled: boolean;
|
|
1617
1637
|
name: boolean;
|
|
@@ -1778,6 +1798,8 @@ export declare const actionToggleLassoTool: {
|
|
|
1778
1798
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
1779
1799
|
} | null;
|
|
1780
1800
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
1801
|
+
hoverOutlineElementId: string | null;
|
|
1802
|
+
hoveredFrameId: string | null;
|
|
1781
1803
|
frameRendering: {
|
|
1782
1804
|
enabled: boolean;
|
|
1783
1805
|
name: boolean;
|
|
@@ -1943,6 +1965,8 @@ export declare const actionToggleHandTool: {
|
|
|
1943
1965
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
1944
1966
|
} | null;
|
|
1945
1967
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
1968
|
+
hoverOutlineElementId: string | null;
|
|
1969
|
+
hoveredFrameId: string | null;
|
|
1946
1970
|
frameRendering: {
|
|
1947
1971
|
enabled: boolean;
|
|
1948
1972
|
name: boolean;
|
|
@@ -36,6 +36,8 @@ export declare const actionPaste: {
|
|
|
36
36
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
37
37
|
} | null;
|
|
38
38
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
39
|
+
hoverOutlineElementId: string | null;
|
|
40
|
+
hoveredFrameId: string | null;
|
|
39
41
|
frameRendering: {
|
|
40
42
|
enabled: boolean;
|
|
41
43
|
name: boolean;
|
|
@@ -246,6 +248,8 @@ export declare const actionCopyAsPng: {
|
|
|
246
248
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
247
249
|
} | null;
|
|
248
250
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
251
|
+
hoverOutlineElementId: string | null;
|
|
252
|
+
hoveredFrameId: string | null;
|
|
249
253
|
frameRendering: {
|
|
250
254
|
enabled: boolean;
|
|
251
255
|
name: boolean;
|
|
@@ -37,6 +37,8 @@ export declare const actionToggleCropEditor: {
|
|
|
37
37
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
38
38
|
} | null;
|
|
39
39
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
40
|
+
hoverOutlineElementId: string | null;
|
|
41
|
+
hoveredFrameId: string | null;
|
|
40
42
|
frameRendering: {
|
|
41
43
|
enabled: boolean;
|
|
42
44
|
name: boolean;
|
|
@@ -38,6 +38,8 @@ export declare const actionDeleteSelected: {
|
|
|
38
38
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
39
39
|
} | null;
|
|
40
40
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
41
|
+
hoverOutlineElementId: string | null;
|
|
42
|
+
hoveredFrameId: string | null;
|
|
41
43
|
frameRendering: {
|
|
42
44
|
enabled: boolean;
|
|
43
45
|
name: boolean;
|
|
@@ -231,6 +233,8 @@ export declare const actionDeleteSelected: {
|
|
|
231
233
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
232
234
|
} | null;
|
|
233
235
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
236
|
+
hoverOutlineElementId: string | null;
|
|
237
|
+
hoveredFrameId: string | null;
|
|
234
238
|
frameRendering: {
|
|
235
239
|
enabled: boolean;
|
|
236
240
|
name: boolean;
|
|
@@ -397,6 +401,8 @@ export declare const actionDeleteSelected: {
|
|
|
397
401
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
398
402
|
} | null;
|
|
399
403
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
404
|
+
hoverOutlineElementId: string | null;
|
|
405
|
+
hoveredFrameId: string | null;
|
|
400
406
|
frameRendering: {
|
|
401
407
|
enabled: boolean;
|
|
402
408
|
name: boolean;
|
|
@@ -35,6 +35,8 @@ export declare const actionDeselect: {
|
|
|
35
35
|
isMidpointSnappingEnabled: boolean;
|
|
36
36
|
startBoundElement: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawBindableElement> | null;
|
|
37
37
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
38
|
+
hoverOutlineElementId: string | null;
|
|
39
|
+
hoveredFrameId: string | null;
|
|
38
40
|
frameRendering: {
|
|
39
41
|
enabled: boolean;
|
|
40
42
|
name: boolean;
|
|
@@ -66,6 +66,8 @@ export declare const actionLinkToElement: {
|
|
|
66
66
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
67
67
|
} | null;
|
|
68
68
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
69
|
+
hoverOutlineElementId: string | null;
|
|
70
|
+
hoveredFrameId: string | null;
|
|
69
71
|
frameRendering: {
|
|
70
72
|
enabled: boolean;
|
|
71
73
|
name: boolean;
|
|
@@ -48,6 +48,8 @@ export declare const actionToggleElementLock: {
|
|
|
48
48
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
49
49
|
} | null;
|
|
50
50
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
51
|
+
hoverOutlineElementId: string | null;
|
|
52
|
+
hoveredFrameId: string | null;
|
|
51
53
|
frameRendering: {
|
|
52
54
|
enabled: boolean;
|
|
53
55
|
name: boolean;
|
|
@@ -219,6 +221,8 @@ export declare const actionUnlockAllElements: {
|
|
|
219
221
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
220
222
|
} | null;
|
|
221
223
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
224
|
+
hoverOutlineElementId: string | null;
|
|
225
|
+
hoveredFrameId: string | null;
|
|
222
226
|
frameRendering: {
|
|
223
227
|
enabled: boolean;
|
|
224
228
|
name: boolean;
|
|
@@ -39,6 +39,8 @@ export declare const actionSetEmbeddableAsActiveTool: {
|
|
|
39
39
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
40
40
|
} | null;
|
|
41
41
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
42
|
+
hoverOutlineElementId: string | null;
|
|
43
|
+
hoveredFrameId: string | null;
|
|
42
44
|
frameRendering: {
|
|
43
45
|
enabled: boolean;
|
|
44
46
|
name: boolean;
|
|
@@ -117,6 +117,7 @@ export declare const actionLoadScene: {
|
|
|
117
117
|
[id: string]: true;
|
|
118
118
|
}>;
|
|
119
119
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
120
|
+
hoverOutlineElementId: string | null;
|
|
120
121
|
activeTool: {
|
|
121
122
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
122
123
|
locked: boolean;
|
|
@@ -158,6 +159,7 @@ export declare const actionLoadScene: {
|
|
|
158
159
|
shouldCacheIgnoreZoom: boolean;
|
|
159
160
|
exportScale: number;
|
|
160
161
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
162
|
+
selectedElementsAreBeingDragged: boolean;
|
|
161
163
|
bindMode: import("@nous-excalidraw/element/types").BindMode;
|
|
162
164
|
gridSize: number;
|
|
163
165
|
contextMenu: {
|
|
@@ -172,6 +174,7 @@ export declare const actionLoadScene: {
|
|
|
172
174
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
173
175
|
bindingPreference: "enabled" | "disabled";
|
|
174
176
|
startBoundElement: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawBindableElement> | null;
|
|
177
|
+
hoveredFrameId: string | null;
|
|
175
178
|
editingFrame: string | null;
|
|
176
179
|
preferredSelectionTool: {
|
|
177
180
|
type: "selection" | "lasso";
|
|
@@ -210,7 +213,6 @@ export declare const actionLoadScene: {
|
|
|
210
213
|
previousSelectedElementIds: {
|
|
211
214
|
[id: string]: true;
|
|
212
215
|
};
|
|
213
|
-
selectedElementsAreBeingDragged: boolean;
|
|
214
216
|
toast: {
|
|
215
217
|
message: React.ReactNode;
|
|
216
218
|
closable?: boolean;
|
|
@@ -266,6 +268,8 @@ export declare const actionLoadScene: {
|
|
|
266
268
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
267
269
|
} | null;
|
|
268
270
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
271
|
+
hoverOutlineElementId: string | null;
|
|
272
|
+
hoveredFrameId: string | null;
|
|
269
273
|
frameRendering: {
|
|
270
274
|
enabled: boolean;
|
|
271
275
|
name: boolean;
|
|
@@ -36,6 +36,8 @@ export declare const actionSelectAllElementsInFrame: {
|
|
|
36
36
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
37
37
|
} | null;
|
|
38
38
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
39
|
+
hoverOutlineElementId: string | null;
|
|
40
|
+
hoveredFrameId: string | null;
|
|
39
41
|
frameRendering: {
|
|
40
42
|
enabled: boolean;
|
|
41
43
|
name: boolean;
|
|
@@ -212,6 +214,8 @@ export declare const actionRemoveAllElementsFromFrame: {
|
|
|
212
214
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
213
215
|
} | null;
|
|
214
216
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
217
|
+
hoverOutlineElementId: string | null;
|
|
218
|
+
hoveredFrameId: string | null;
|
|
215
219
|
frameRendering: {
|
|
216
220
|
enabled: boolean;
|
|
217
221
|
name: boolean;
|
|
@@ -392,6 +396,8 @@ export declare const actionupdateFrameRendering: {
|
|
|
392
396
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
393
397
|
} | null;
|
|
394
398
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
399
|
+
hoverOutlineElementId: string | null;
|
|
400
|
+
hoveredFrameId: string | null;
|
|
395
401
|
editingFrame: string | null;
|
|
396
402
|
elementsToHighlight: import("@nous-excalidraw/element/types").NonDeleted<ExcalidrawElement>[] | null;
|
|
397
403
|
editingTextElement: import("@nous-excalidraw/element/types").ExcalidrawTextElement | null;
|
|
@@ -565,6 +571,8 @@ export declare const actionSetFrameAsActiveTool: {
|
|
|
565
571
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
566
572
|
} | null;
|
|
567
573
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
574
|
+
hoverOutlineElementId: string | null;
|
|
575
|
+
hoveredFrameId: string | null;
|
|
568
576
|
frameRendering: {
|
|
569
577
|
enabled: boolean;
|
|
570
578
|
name: boolean;
|
|
@@ -42,6 +42,8 @@ export declare const actionGroup: {
|
|
|
42
42
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
43
43
|
} | null;
|
|
44
44
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
45
|
+
hoverOutlineElementId: string | null;
|
|
46
|
+
hoveredFrameId: string | null;
|
|
45
47
|
frameRendering: {
|
|
46
48
|
enabled: boolean;
|
|
47
49
|
name: boolean;
|
|
@@ -217,6 +219,8 @@ export declare const actionUngroup: {
|
|
|
217
219
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
218
220
|
} | null;
|
|
219
221
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
222
|
+
hoverOutlineElementId: string | null;
|
|
223
|
+
hoveredFrameId: string | null;
|
|
220
224
|
frameRendering: {
|
|
221
225
|
enabled: boolean;
|
|
222
226
|
name: boolean;
|
|
@@ -69,6 +69,8 @@ export declare const actionToggleLinearEditor: {
|
|
|
69
69
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
70
70
|
} | null;
|
|
71
71
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
72
|
+
hoverOutlineElementId: string | null;
|
|
73
|
+
hoveredFrameId: string | null;
|
|
72
74
|
frameRendering: {
|
|
73
75
|
enabled: boolean;
|
|
74
76
|
name: boolean;
|
|
@@ -33,6 +33,8 @@ export declare const actionLink: {
|
|
|
33
33
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
34
34
|
} | null;
|
|
35
35
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
36
|
+
hoverOutlineElementId: string | null;
|
|
37
|
+
hoveredFrameId: string | null;
|
|
36
38
|
frameRendering: {
|
|
37
39
|
enabled: boolean;
|
|
38
40
|
name: boolean;
|
|
@@ -40,6 +40,8 @@ export declare const actionShortcuts: {
|
|
|
40
40
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
41
41
|
} | null;
|
|
42
42
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
43
|
+
hoverOutlineElementId: string | null;
|
|
44
|
+
hoveredFrameId: string | null;
|
|
43
45
|
frameRendering: {
|
|
44
46
|
enabled: boolean;
|
|
45
47
|
name: boolean;
|
|
@@ -62,6 +62,8 @@ export declare const actionDecreaseFontSize: {
|
|
|
62
62
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
63
63
|
} | null;
|
|
64
64
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
65
|
+
hoverOutlineElementId: string | null;
|
|
66
|
+
hoveredFrameId: string | null;
|
|
65
67
|
frameRendering: {
|
|
66
68
|
enabled: boolean;
|
|
67
69
|
name: boolean;
|
|
@@ -233,6 +235,8 @@ export declare const actionIncreaseFontSize: {
|
|
|
233
235
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
234
236
|
} | null;
|
|
235
237
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
238
|
+
hoverOutlineElementId: string | null;
|
|
239
|
+
hoveredFrameId: string | null;
|
|
236
240
|
frameRendering: {
|
|
237
241
|
enabled: boolean;
|
|
238
242
|
name: boolean;
|
|
@@ -40,6 +40,8 @@ export declare const actionSelectAll: {
|
|
|
40
40
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
41
41
|
} | null;
|
|
42
42
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
43
|
+
hoverOutlineElementId: string | null;
|
|
44
|
+
hoveredFrameId: string | null;
|
|
43
45
|
frameRendering: {
|
|
44
46
|
enabled: boolean;
|
|
45
47
|
name: boolean;
|
|
@@ -38,6 +38,8 @@ export declare const actionCopyStyles: {
|
|
|
38
38
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
39
39
|
} | null;
|
|
40
40
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
41
|
+
hoverOutlineElementId: string | null;
|
|
42
|
+
hoveredFrameId: string | null;
|
|
41
43
|
frameRendering: {
|
|
42
44
|
enabled: boolean;
|
|
43
45
|
name: boolean;
|
|
@@ -34,6 +34,8 @@ export declare const actionToggleArrowBinding: {
|
|
|
34
34
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
35
35
|
} | null;
|
|
36
36
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
37
|
+
hoverOutlineElementId: string | null;
|
|
38
|
+
hoveredFrameId: string | null;
|
|
37
39
|
frameRendering: {
|
|
38
40
|
enabled: boolean;
|
|
39
41
|
name: boolean;
|
|
@@ -39,6 +39,8 @@ export declare const actionToggleGridMode: {
|
|
|
39
39
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
40
40
|
} | null;
|
|
41
41
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
42
|
+
hoverOutlineElementId: string | null;
|
|
43
|
+
hoveredFrameId: string | null;
|
|
42
44
|
frameRendering: {
|
|
43
45
|
enabled: boolean;
|
|
44
46
|
name: boolean;
|
|
@@ -34,6 +34,8 @@ export declare const actionToggleMidpointSnapping: {
|
|
|
34
34
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
35
35
|
} | null;
|
|
36
36
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
37
|
+
hoverOutlineElementId: string | null;
|
|
38
|
+
hoveredFrameId: string | null;
|
|
37
39
|
frameRendering: {
|
|
38
40
|
enabled: boolean;
|
|
39
41
|
name: boolean;
|
|
@@ -37,6 +37,8 @@ export declare const actionToggleObjectsSnapMode: {
|
|
|
37
37
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
38
38
|
} | null;
|
|
39
39
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
40
|
+
hoverOutlineElementId: string | null;
|
|
41
|
+
hoveredFrameId: string | null;
|
|
40
42
|
frameRendering: {
|
|
41
43
|
enabled: boolean;
|
|
42
44
|
name: boolean;
|
|
@@ -43,6 +43,8 @@ export declare const actionToggleSearchMenu: {
|
|
|
43
43
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
44
44
|
} | null;
|
|
45
45
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
46
|
+
hoverOutlineElementId: string | null;
|
|
47
|
+
hoveredFrameId: string | null;
|
|
46
48
|
frameRendering: {
|
|
47
49
|
enabled: boolean;
|
|
48
50
|
name: boolean;
|
|
@@ -39,6 +39,8 @@ export declare const actionToggleStats: {
|
|
|
39
39
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
40
40
|
} | null;
|
|
41
41
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
42
|
+
hoverOutlineElementId: string | null;
|
|
43
|
+
hoveredFrameId: string | null;
|
|
42
44
|
frameRendering: {
|
|
43
45
|
enabled: boolean;
|
|
44
46
|
name: boolean;
|
|
@@ -36,6 +36,8 @@ export declare const actionToggleViewMode: {
|
|
|
36
36
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
37
37
|
} | null;
|
|
38
38
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
39
|
+
hoverOutlineElementId: string | null;
|
|
40
|
+
hoveredFrameId: string | null;
|
|
39
41
|
frameRendering: {
|
|
40
42
|
enabled: boolean;
|
|
41
43
|
name: boolean;
|
|
@@ -36,6 +36,8 @@ export declare const actionToggleZenMode: {
|
|
|
36
36
|
midPoint?: import("@nous-excalidraw/math").GlobalPoint;
|
|
37
37
|
} | null;
|
|
38
38
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
39
|
+
hoverOutlineElementId: string | null;
|
|
40
|
+
hoveredFrameId: string | null;
|
|
39
41
|
frameRendering: {
|
|
40
42
|
enabled: boolean;
|
|
41
43
|
name: boolean;
|
|
@@ -67,6 +67,7 @@ export declare const useExcalidrawAPI: () => ExcalidrawImperativeAPI | null;
|
|
|
67
67
|
declare class App extends React.Component<AppProps, AppState> {
|
|
68
68
|
canvas: AppClassProperties["canvas"];
|
|
69
69
|
interactiveCanvas: AppClassProperties["interactiveCanvas"];
|
|
70
|
+
outlineOverlayCanvas: AppClassProperties["outlineOverlayCanvas"];
|
|
70
71
|
sessionExportThemeOverride: AppState["theme"] | undefined;
|
|
71
72
|
rc: RoughCanvas;
|
|
72
73
|
unmounted: boolean;
|
|
@@ -481,6 +482,12 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
481
482
|
private getTextElementAtPosition;
|
|
482
483
|
private isHittingTextAutoResizeHandle;
|
|
483
484
|
private handleTextAutoResizeHandlePointerDown;
|
|
485
|
+
/**
|
|
486
|
+
* When a frame wins z-order at a point, its full interior still hits — so
|
|
487
|
+
* images/embeds below it in the stack never surface. Prefer the topmost
|
|
488
|
+
* descendant in the same hit stack that passes a real geometry hit.
|
|
489
|
+
*/
|
|
490
|
+
private getTopFrameDescendantHitUnderPoint;
|
|
484
491
|
private getElementAtPosition;
|
|
485
492
|
private getElementsAtPosition;
|
|
486
493
|
getElementHitThreshold(element: ExcalidrawElement): number;
|
|
@@ -495,6 +502,11 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
495
502
|
private getElementLinkAtPosition;
|
|
496
503
|
private handleElementLinkClick;
|
|
497
504
|
private getTopLayerFrameAtSceneCoords;
|
|
505
|
+
private clearHoverOutlineIfNeeded;
|
|
506
|
+
/** Unified frame hover: title band, frame interior, or any element inside the frame. */
|
|
507
|
+
private computeHoveredFrameId;
|
|
508
|
+
private updateFrameHoverAndOutline;
|
|
509
|
+
private updateFrameHoverStateFromSceneCoords;
|
|
498
510
|
private handleCanvasPointerMove;
|
|
499
511
|
private handleEraser;
|
|
500
512
|
private handleTouchMove;
|
|
@@ -565,6 +577,7 @@ declare class App extends React.Component<AppProps, AppState> {
|
|
|
565
577
|
* to render new images. This is just a failsafe */
|
|
566
578
|
private scheduleImageRefresh;
|
|
567
579
|
private clearSelection;
|
|
580
|
+
private handleOutlineOverlayCanvasRef;
|
|
568
581
|
private handleInteractiveCanvasRef;
|
|
569
582
|
private insertImages;
|
|
570
583
|
private handleAppOnDrop;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ElementsMap, NonDeletedExcalidrawElement } from "@nous-excalidraw/element/types";
|
|
2
|
+
import type { AppState } from "../types";
|
|
3
|
+
import "./FrameResizeDimensionLabel.scss";
|
|
4
|
+
export declare const FrameResizeDimensionLabel: ({ element, elementsMap, appState, }: {
|
|
5
|
+
element: NonDeletedExcalidrawElement;
|
|
6
|
+
elementsMap: ElementsMap;
|
|
7
|
+
appState: AppState;
|
|
8
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -7,6 +7,7 @@ import type { DOMAttributes } from "react";
|
|
|
7
7
|
type InteractiveCanvasProps = {
|
|
8
8
|
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
9
9
|
canvas: HTMLCanvasElement | null;
|
|
10
|
+
outlineOverlayCanvas: HTMLCanvasElement | null;
|
|
10
11
|
elementsMap: RenderableElementsMap;
|
|
11
12
|
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
12
13
|
selectedElements: readonly NonDeletedExcalidrawElement[];
|
|
@@ -55,6 +55,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
55
55
|
[id: string]: true;
|
|
56
56
|
}>;
|
|
57
57
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
58
|
+
hoverOutlineElementId: string | null;
|
|
58
59
|
activeTool: {
|
|
59
60
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
60
61
|
locked: boolean;
|
|
@@ -96,6 +97,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
96
97
|
shouldCacheIgnoreZoom: boolean;
|
|
97
98
|
exportScale: number;
|
|
98
99
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
100
|
+
selectedElementsAreBeingDragged: boolean;
|
|
99
101
|
bindMode: import("@nous-excalidraw/element/types").BindMode;
|
|
100
102
|
gridSize: number;
|
|
101
103
|
contextMenu: {
|
|
@@ -110,6 +112,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
110
112
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
111
113
|
bindingPreference: "enabled" | "disabled";
|
|
112
114
|
startBoundElement: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawBindableElement> | null;
|
|
115
|
+
hoveredFrameId: string | null;
|
|
113
116
|
editingFrame: string | null;
|
|
114
117
|
preferredSelectionTool: {
|
|
115
118
|
type: "selection" | "lasso";
|
|
@@ -148,7 +151,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
148
151
|
previousSelectedElementIds: {
|
|
149
152
|
[id: string]: true;
|
|
150
153
|
};
|
|
151
|
-
selectedElementsAreBeingDragged: boolean;
|
|
152
154
|
toast: {
|
|
153
155
|
message: React.ReactNode;
|
|
154
156
|
closable?: boolean;
|
|
@@ -221,6 +223,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
221
223
|
[id: string]: true;
|
|
222
224
|
}>;
|
|
223
225
|
frameToHighlight: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
226
|
+
hoverOutlineElementId: string | null;
|
|
224
227
|
activeTool: {
|
|
225
228
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
226
229
|
locked: boolean;
|
|
@@ -262,6 +265,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
262
265
|
shouldCacheIgnoreZoom: boolean;
|
|
263
266
|
exportScale: number;
|
|
264
267
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
268
|
+
selectedElementsAreBeingDragged: boolean;
|
|
265
269
|
bindMode: import("@nous-excalidraw/element/types").BindMode;
|
|
266
270
|
gridSize: number;
|
|
267
271
|
contextMenu: {
|
|
@@ -276,6 +280,7 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
276
280
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
277
281
|
bindingPreference: "enabled" | "disabled";
|
|
278
282
|
startBoundElement: import("@nous-excalidraw/element/types").NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawBindableElement> | null;
|
|
283
|
+
hoveredFrameId: string | null;
|
|
279
284
|
editingFrame: string | null;
|
|
280
285
|
preferredSelectionTool: {
|
|
281
286
|
type: "selection" | "lasso";
|
|
@@ -314,7 +319,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
314
319
|
previousSelectedElementIds: {
|
|
315
320
|
[id: string]: true;
|
|
316
321
|
};
|
|
317
|
-
selectedElementsAreBeingDragged: boolean;
|
|
318
322
|
toast: {
|
|
319
323
|
message: React.ReactNode;
|
|
320
324
|
closable?: boolean;
|
|
@@ -53,6 +53,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
53
53
|
[id: string]: true;
|
|
54
54
|
}>;
|
|
55
55
|
frameToHighlight: NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawFrameLikeElement> | null;
|
|
56
|
+
hoverOutlineElementId: string | null;
|
|
56
57
|
activeTool: {
|
|
57
58
|
lastActiveTool: import("../types").ActiveTool | null;
|
|
58
59
|
locked: boolean;
|
|
@@ -94,6 +95,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
94
95
|
shouldCacheIgnoreZoom: boolean;
|
|
95
96
|
exportScale: number;
|
|
96
97
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
98
|
+
selectedElementsAreBeingDragged: boolean;
|
|
97
99
|
bindMode: import("@nous-excalidraw/element/types").BindMode;
|
|
98
100
|
gridSize: number;
|
|
99
101
|
contextMenu: {
|
|
@@ -108,6 +110,7 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
108
110
|
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
109
111
|
bindingPreference: "enabled" | "disabled";
|
|
110
112
|
startBoundElement: NonDeleted<import("@nous-excalidraw/element/types").ExcalidrawBindableElement> | null;
|
|
113
|
+
hoveredFrameId: string | null;
|
|
111
114
|
editingFrame: string | null;
|
|
112
115
|
preferredSelectionTool: {
|
|
113
116
|
type: "selection" | "lasso";
|
|
@@ -146,7 +149,6 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
146
149
|
previousSelectedElementIds: {
|
|
147
150
|
[id: string]: true;
|
|
148
151
|
};
|
|
149
|
-
selectedElementsAreBeingDragged: boolean;
|
|
150
152
|
toast: {
|
|
151
153
|
message: React.ReactNode;
|
|
152
154
|
closable?: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getScrollBars } from "../scene/scrollbars";
|
|
2
2
|
import type { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
|
|
3
|
-
declare const _renderInteractiveScene: ({ app, canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, editorInterface, animationState, deltaTime, }: InteractiveSceneRenderConfig) => {
|
|
3
|
+
declare const _renderInteractiveScene: ({ app, canvas, outlineOverlayCanvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, editorInterface, animationState, deltaTime, }: InteractiveSceneRenderConfig) => {
|
|
4
4
|
scrollBars?: ReturnType<typeof getScrollBars>;
|
|
5
5
|
atLeastOneVisibleElement: boolean;
|
|
6
6
|
elementsMap: RenderableElementsMap;
|
|
@@ -74,6 +74,8 @@ export type InteractiveSceneRenderAnimationState = {
|
|
|
74
74
|
export type InteractiveSceneRenderConfig = {
|
|
75
75
|
app: AppClassProperties;
|
|
76
76
|
canvas: HTMLCanvasElement | null;
|
|
77
|
+
/** When set, hover outline + selection borders render here so they paint above DOM embeds (iframes). */
|
|
78
|
+
outlineOverlayCanvas?: HTMLCanvasElement | null;
|
|
77
79
|
elementsMap: RenderableElementsMap;
|
|
78
80
|
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
79
81
|
selectedElements: readonly NonDeletedExcalidrawElement[];
|
|
@@ -129,6 +129,7 @@ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
|
129
129
|
croppingElementId: AppState["croppingElementId"];
|
|
130
130
|
}>;
|
|
131
131
|
export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
132
|
+
hoverOutlineElementId: AppState["hoverOutlineElementId"];
|
|
132
133
|
activeTool: AppState["activeTool"];
|
|
133
134
|
activeEmbeddable: AppState["activeEmbeddable"];
|
|
134
135
|
selectionElement: AppState["selectionElement"];
|
|
@@ -154,6 +155,7 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
|
154
155
|
shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
|
|
155
156
|
exportScale: AppState["exportScale"];
|
|
156
157
|
currentItemArrowType: AppState["currentItemArrowType"];
|
|
158
|
+
selectedElementsAreBeingDragged: AppState["selectedElementsAreBeingDragged"];
|
|
157
159
|
}>;
|
|
158
160
|
export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
|
|
159
161
|
export type ObservedStandaloneAppState = {
|
|
@@ -223,6 +225,13 @@ export interface AppState {
|
|
|
223
225
|
midPoint?: GlobalPoint;
|
|
224
226
|
} | null;
|
|
225
227
|
frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
228
|
+
/** Interactive canvas: 2px screen hover outline for frame / image / embeddable */
|
|
229
|
+
hoverOutlineElementId: string | null;
|
|
230
|
+
/**
|
|
231
|
+
* Frame under cursor for unified hover (title + outline): frame rect, label,
|
|
232
|
+
* or any child inside the frame.
|
|
233
|
+
*/
|
|
234
|
+
hoveredFrameId: string | null;
|
|
226
235
|
frameRendering: {
|
|
227
236
|
enabled: boolean;
|
|
228
237
|
name: boolean;
|
|
@@ -601,6 +610,8 @@ export type AppClassProperties = {
|
|
|
601
610
|
api: App["api"];
|
|
602
611
|
sessionExportThemeOverride: App["sessionExportThemeOverride"];
|
|
603
612
|
interactiveCanvas: HTMLCanvasElement | null;
|
|
613
|
+
/** Renders selection/hover outlines above embed layer; pointer-events none */
|
|
614
|
+
outlineOverlayCanvas: HTMLCanvasElement | null;
|
|
604
615
|
/** static canvas */
|
|
605
616
|
canvas: HTMLCanvasElement;
|
|
606
617
|
focusContainer(): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nous-excalidraw/math",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.5",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/types/math/src/index.d.ts",
|
|
6
6
|
"main": "./dist/prod/index.js",
|
|
@@ -61,6 +61,6 @@
|
|
|
61
61
|
"build:esm": "rimraf dist && node ../../scripts/buildBase.js && yarn gen:types"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@nous-excalidraw/common": "0.18.
|
|
64
|
+
"@nous-excalidraw/common": "0.18.5"
|
|
65
65
|
}
|
|
66
66
|
}
|