@nextcloud/excalidraw-common 0.18.0-8fb6b24 → 0.18.0-nc.2
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/dev/index.js +204 -85
- package/dist/dev/index.js.map +3 -3
- package/dist/prod/index.js +3 -3
- package/dist/types/common/src/colors.d.ts +23 -1
- package/dist/types/common/src/constants.d.ts +66 -7
- package/dist/types/common/src/keys.d.ts +4 -0
- package/dist/types/common/src/points.d.ts +1 -1
- package/dist/types/common/src/random.d.ts +7 -0
- package/dist/types/common/src/utils.d.ts +6 -43
- package/dist/types/element/src/Scene.d.ts +16 -5
- package/dist/types/element/src/align.d.ts +2 -2
- package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
- package/dist/types/element/src/arrows/focus.d.ts +5 -2
- package/dist/types/element/src/binding.d.ts +28 -13
- package/dist/types/element/src/bounds.d.ts +24 -7
- package/dist/types/element/src/bucketFill.d.ts +110 -0
- package/dist/types/element/src/collision.d.ts +14 -5
- package/dist/types/element/src/comparisons.d.ts +8 -5
- package/dist/types/element/src/convertToShape.d.ts +23 -0
- package/dist/types/element/src/cropElement.d.ts +36 -4
- package/dist/types/element/src/delta.d.ts +23 -1
- package/dist/types/element/src/distribute.d.ts +2 -2
- package/dist/types/element/src/dragElements.d.ts +27 -0
- package/dist/types/element/src/duplicate.d.ts +64 -3
- package/dist/types/element/src/embeddable.d.ts +2 -2
- package/dist/types/element/src/flowchart.d.ts +11 -7
- package/dist/types/element/src/fractionalIndex.d.ts +2 -2
- package/dist/types/element/src/frame.d.ts +11 -10
- package/dist/types/element/src/groups.d.ts +10 -15
- package/dist/types/element/src/image.d.ts +6 -0
- package/dist/types/element/src/index.d.ts +6 -1
- package/dist/types/element/src/linearElementEditor.d.ts +27 -10
- package/dist/types/element/src/listMarker.d.ts +34 -0
- package/dist/types/element/src/mutateElement.d.ts +1 -1
- package/dist/types/element/src/newElement.d.ts +53 -3
- package/dist/types/element/src/renderElement.d.ts +22 -7
- package/dist/types/element/src/resizeElements.d.ts +8 -1
- package/dist/types/element/src/selection.d.ts +6 -12
- package/dist/types/element/src/shape.d.ts +27 -1
- package/dist/types/element/src/sizeHelpers.d.ts +6 -0
- package/dist/types/element/src/sortElements.d.ts +10 -0
- package/dist/types/element/src/stickyNote.d.ts +183 -0
- package/dist/types/element/src/textElement.d.ts +20 -9
- package/dist/types/element/src/transform.d.ts +26 -7
- package/dist/types/element/src/typeChecks.d.ts +29 -27
- package/dist/types/element/src/types.d.ts +43 -7
- package/dist/types/element/src/utils.d.ts +15 -4
- package/dist/types/element/src/zindex.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +87 -18
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -6
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +74 -203
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +266 -941
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +58 -12
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +29 -6
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +4 -518
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +29 -6
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +59 -13
- package/dist/types/excalidraw/actions/actionExport.d.ts +64 -18
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +1 -0
- package/dist/types/excalidraw/actions/actionFrame.d.ts +114 -651
- package/dist/types/excalidraw/actions/actionGroup.d.ts +73 -27
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +84 -9
- package/dist/types/excalidraw/actions/actionLink.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionMenu.d.ts +29 -6
- package/dist/types/excalidraw/actions/actionProperties.d.ts +96 -34
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +34 -11
- package/dist/types/excalidraw/actions/actionStyles.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +33 -11
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +33 -11
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/{actionEmbeddable.d.ts → actionToggleShowHints.d.ts} +45 -19
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +30 -7
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +31 -8
- package/dist/types/excalidraw/actions/actionToggleWrap.d.ts +12 -0
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +30 -7
- package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
- package/dist/types/excalidraw/actions/index.d.ts +3 -2
- package/dist/types/excalidraw/actions/manager.d.ts +1 -0
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +8 -4
- package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
- package/dist/types/excalidraw/appState.d.ts +34 -10
- package/dist/types/excalidraw/components/Actions.d.ts +17 -12
- package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/App.arrowText.d.ts +70 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
- package/dist/types/excalidraw/components/App.clipboard.d.ts +31 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
- package/dist/types/excalidraw/components/App.d.ts +324 -111
- package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
- package/dist/types/excalidraw/components/App.duplicate.d.ts +101 -0
- package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
- package/dist/types/excalidraw/components/App.modifiers.d.ts +38 -0
- package/dist/types/excalidraw/components/App.pan.d.ts +62 -0
- package/dist/types/excalidraw/components/App.selection.d.ts +265 -0
- package/dist/types/excalidraw/components/App.selectionTool.d.ts +93 -0
- package/dist/types/excalidraw/components/App.text.d.ts +146 -0
- package/dist/types/excalidraw/components/App.textTool.d.ts +140 -0
- package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +113 -0
- package/dist/types/excalidraw/components/App.wheel.d.ts +26 -0
- package/dist/types/excalidraw/components/App.wrap.d.ts +31 -0
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +9 -3
- package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +5 -1
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
- package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -1
- package/dist/types/excalidraw/components/ColorPicker/colorTopPicksDnD.d.ts +11 -0
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -1
- package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
- package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
- package/dist/types/excalidraw/components/EyeDropper.d.ts +1 -1
- package/dist/types/excalidraw/components/FileDropOverlay.d.ts +2 -0
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +4 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerList.d.ts +6 -1
- package/dist/types/excalidraw/components/FontPicker/fontTopPicksDnD.d.ts +12 -0
- package/dist/types/excalidraw/components/IconButton.d.ts +48 -0
- package/dist/types/excalidraw/components/Island.d.ts +7 -0
- package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
- package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
- package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +3 -1
- package/dist/types/excalidraw/components/LibraryMenuItems.d.ts +3 -1
- package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +6 -2
- package/dist/types/excalidraw/components/LibraryUnit.d.ts +7 -2
- package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
- package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
- package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
- package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -0
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
- package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
- package/dist/types/excalidraw/components/Popover.d.ts +1 -3
- package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
- package/dist/types/excalidraw/components/SVGLayer.d.ts +1 -1
- package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +1 -1
- package/dist/types/excalidraw/components/Stats/Angle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Dimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
- package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +4 -4
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +3 -3
- package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
- package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
- package/dist/types/excalidraw/components/Tools.d.ts +151 -0
- package/dist/types/excalidraw/components/Tooltip.d.ts +15 -1
- package/dist/types/excalidraw/components/TopPicksDnD/TopPicksContextMenu.d.ts +14 -0
- package/dist/types/excalidraw/components/TopPicksDnD/TopPicksTip.d.ts +11 -0
- package/dist/types/excalidraw/components/TopPicksDnD/topPicksDnD.d.ts +58 -0
- package/dist/types/excalidraw/components/UserList.d.ts +3 -2
- package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +3 -1
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +3 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +2 -1
- package/dist/types/excalidraw/components/footer/Footer.d.ts +3 -1
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +2 -2
- package/dist/types/excalidraw/components/icons.d.ts +7 -1
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +10 -4
- package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
- package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
- package/dist/types/excalidraw/data/blob.d.ts +70 -24
- package/dist/types/excalidraw/data/index.d.ts +4 -4
- package/dist/types/excalidraw/data/json.d.ts +41 -18
- package/dist/types/excalidraw/data/library.d.ts +1 -1
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- package/dist/types/excalidraw/eraser/index.d.ts +2 -3
- package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
- package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -0
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +5 -5
- package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
- package/dist/types/excalidraw/lasso/index.d.ts +2 -3
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
- package/dist/types/excalidraw/renderOverrides.d.ts +9 -0
- package/dist/types/excalidraw/renderer/animation.d.ts +5 -1
- package/dist/types/excalidraw/renderer/helpers.d.ts +25 -0
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +2 -4
- package/dist/types/excalidraw/scene/Renderer.d.ts +489 -20
- package/dist/types/excalidraw/scene/export.d.ts +3 -3
- package/dist/types/excalidraw/scene/index.d.ts +2 -2
- package/dist/types/excalidraw/scene/types.d.ts +7 -4
- package/dist/types/excalidraw/snapping.d.ts +7 -7
- package/dist/types/excalidraw/types.d.ts +574 -29
- package/dist/types/excalidraw/viewport.d.ts +302 -0
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +13 -3
- package/dist/types/fractional-indexing/src/index.d.ts +29 -0
- package/dist/types/laser-pointer/src/index.d.ts +2 -0
- package/dist/types/laser-pointer/src/math.d.ts +16 -0
- package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
- package/dist/types/laser-pointer/src/state.d.ts +36 -0
- package/dist/types/math/src/constants.d.ts +0 -1
- package/dist/types/math/src/curve.d.ts +23 -13
- package/dist/types/math/src/index.d.ts +1 -0
- package/dist/types/math/src/pca.d.ts +79 -0
- package/dist/types/math/src/point.d.ts +1 -0
- package/dist/types/math/src/polygon.d.ts +25 -1
- package/dist/types/math/src/segment.d.ts +6 -0
- package/dist/types/utils/src/export.d.ts +4 -3
- package/dist/types/utils/src/index.d.ts +1 -2
- package/dist/types/utils/src/shape.d.ts +2 -2
- package/package.json +1 -1
- package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
- package/dist/types/excalidraw/components/FollowMode/FollowMode.d.ts +0 -10
- package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -10
- package/dist/types/excalidraw/components/ToolButton.d.ts +0 -49
- package/dist/types/excalidraw/components/shapes.d.ts +0 -263
- package/dist/types/excalidraw/cursor.d.ts +0 -5
- package/dist/types/excalidraw/scene/scroll.d.ts +0 -18
- package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
- package/dist/types/utils/src/bbox.d.ts +0 -9
- package/dist/types/utils/src/withinBounds.d.ts +0 -19
|
@@ -20,7 +20,13 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
20
20
|
data: {
|
|
21
21
|
elements: import("@nextcloud/excalidraw-element/types").OrderedExcalidrawElement[];
|
|
22
22
|
appState: {
|
|
23
|
+
zoom: import("../types").Zoom;
|
|
23
24
|
viewModeEnabled: boolean;
|
|
25
|
+
activeTool: {
|
|
26
|
+
lastActiveTool: import("../types").ActiveTool | null;
|
|
27
|
+
locked: boolean;
|
|
28
|
+
fromSelection: boolean;
|
|
29
|
+
} & import("../types").ActiveTool;
|
|
24
30
|
zenModeEnabled: boolean;
|
|
25
31
|
gridModeEnabled: boolean;
|
|
26
32
|
objectsSnapModeEnabled: boolean;
|
|
@@ -28,11 +34,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
28
34
|
name: string | null;
|
|
29
35
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
30
36
|
gridSize: number;
|
|
31
|
-
activeTool: {
|
|
32
|
-
lastActiveTool: import("../types").ActiveTool | null;
|
|
33
|
-
locked: boolean;
|
|
34
|
-
fromSelection: boolean;
|
|
35
|
-
} & import("../types").ActiveTool;
|
|
36
37
|
contextMenu: {
|
|
37
38
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
38
39
|
top: number;
|
|
@@ -50,13 +51,26 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
50
51
|
multiElement: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawLinearElement> | null;
|
|
51
52
|
selectionElement: import("@nextcloud/excalidraw-element/types").NonDeletedExcalidrawElement | null;
|
|
52
53
|
isBindingEnabled: boolean;
|
|
54
|
+
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
53
55
|
bindingPreference: "enabled" | "disabled";
|
|
54
56
|
isMidpointSnappingEnabled: boolean;
|
|
55
|
-
|
|
57
|
+
showHints: boolean;
|
|
58
|
+
inputDevice: import("../types").InputDevice;
|
|
56
59
|
suggestedBinding: {
|
|
57
60
|
element: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawBindableElement>;
|
|
58
61
|
midPoint?: import("@nextcloud/excalidraw-math").GlobalPoint;
|
|
59
62
|
} | null;
|
|
63
|
+
textToolHover: {
|
|
64
|
+
type: "text";
|
|
65
|
+
elementId: ExcalidrawElement["id"];
|
|
66
|
+
} | {
|
|
67
|
+
type: "container";
|
|
68
|
+
elementId: ExcalidrawElement["id"];
|
|
69
|
+
} | {
|
|
70
|
+
type: "arrow";
|
|
71
|
+
elementId: import("@nextcloud/excalidraw-element/types").ExcalidrawArrowElement["id"];
|
|
72
|
+
anchor: "start" | "end" | "label";
|
|
73
|
+
} | null;
|
|
60
74
|
frameToHighlight: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawFrameLikeElement> | null;
|
|
61
75
|
frameRendering: {
|
|
62
76
|
enabled: boolean;
|
|
@@ -64,8 +78,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
64
78
|
outline: boolean;
|
|
65
79
|
clip: boolean;
|
|
66
80
|
};
|
|
67
|
-
editingFrame:
|
|
68
|
-
elementsToHighlight: import("@nextcloud/excalidraw-element/types").
|
|
81
|
+
editingFrame: import("@nextcloud/excalidraw-element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
82
|
+
elementsToHighlight: readonly import("@nextcloud/excalidraw-element/types").NonDeletedExcalidrawElement[] | null;
|
|
69
83
|
editingTextElement: import("@nextcloud/excalidraw-element/types").ExcalidrawTextElement | null;
|
|
70
84
|
preferredSelectionTool: {
|
|
71
85
|
type: "selection" | "lasso";
|
|
@@ -78,11 +92,14 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
78
92
|
exportWithDarkMode: boolean;
|
|
79
93
|
exportScale: number;
|
|
80
94
|
currentItemStrokeColor: string;
|
|
95
|
+
currentItemStickynoteStrokeColor: string;
|
|
96
|
+
currentItemStickynoteBackgroundColor: string;
|
|
81
97
|
currentItemBackgroundColor: string;
|
|
82
98
|
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
83
|
-
|
|
99
|
+
currentItemStrokeWidthKey: import("@nextcloud/excalidraw-common").StrokeWidthKey;
|
|
84
100
|
currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
|
|
85
101
|
currentItemRoughness: number;
|
|
102
|
+
currentItemStrokeVariability: import("@nextcloud/excalidraw-element/types").StrokeVariability;
|
|
86
103
|
currentItemOpacity: number;
|
|
87
104
|
currentItemFontFamily: import("@nextcloud/excalidraw-element/types").FontFamilyValues;
|
|
88
105
|
currentItemFontSize: number;
|
|
@@ -94,11 +111,11 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
94
111
|
viewBackgroundColor: string;
|
|
95
112
|
scrollX: number;
|
|
96
113
|
scrollY: number;
|
|
114
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
97
115
|
cursorButton: "up" | "down";
|
|
98
116
|
scrolledOutside: boolean;
|
|
99
117
|
isResizing: boolean;
|
|
100
118
|
isRotating: boolean;
|
|
101
|
-
zoom: import("../types").Zoom;
|
|
102
119
|
openMenu: "canvas" | null;
|
|
103
120
|
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
104
121
|
openSidebar: {
|
|
@@ -158,8 +175,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
158
175
|
x: number;
|
|
159
176
|
y: number;
|
|
160
177
|
} | null;
|
|
161
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
162
|
-
followedBy: Set<import("../types").SocketId>;
|
|
163
178
|
isCropping: boolean;
|
|
164
179
|
croppingElementId: ExcalidrawElement["id"] | null;
|
|
165
180
|
searchMatches: Readonly<{
|
|
@@ -171,6 +186,14 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
171
186
|
[groupId: string]: true;
|
|
172
187
|
};
|
|
173
188
|
bindMode: import("@nextcloud/excalidraw-element/types").BindMode;
|
|
189
|
+
colorTopPicks: {
|
|
190
|
+
elementStroke: readonly string[] | null;
|
|
191
|
+
elementBackground: readonly string[] | null;
|
|
192
|
+
bucketFill: readonly string[] | null;
|
|
193
|
+
stickyNoteStroke: readonly string[] | null;
|
|
194
|
+
stickyNoteBackground: readonly string[] | null;
|
|
195
|
+
};
|
|
196
|
+
fontTopPicks: readonly import("@nextcloud/excalidraw-element/types").FontFamilyValues[] | null;
|
|
174
197
|
};
|
|
175
198
|
files: import("../types").BinaryFiles;
|
|
176
199
|
};
|
|
@@ -185,7 +208,13 @@ localAppState: AppState | null, localElements: readonly ExcalidrawElement[] | nu
|
|
|
185
208
|
fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
186
209
|
elements: import("@nextcloud/excalidraw-element/types").OrderedExcalidrawElement[];
|
|
187
210
|
appState: {
|
|
211
|
+
zoom: import("../types").Zoom;
|
|
188
212
|
viewModeEnabled: boolean;
|
|
213
|
+
activeTool: {
|
|
214
|
+
lastActiveTool: import("../types").ActiveTool | null;
|
|
215
|
+
locked: boolean;
|
|
216
|
+
fromSelection: boolean;
|
|
217
|
+
} & import("../types").ActiveTool;
|
|
189
218
|
zenModeEnabled: boolean;
|
|
190
219
|
gridModeEnabled: boolean;
|
|
191
220
|
objectsSnapModeEnabled: boolean;
|
|
@@ -193,11 +222,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
193
222
|
name: string | null;
|
|
194
223
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
195
224
|
gridSize: number;
|
|
196
|
-
activeTool: {
|
|
197
|
-
lastActiveTool: import("../types").ActiveTool | null;
|
|
198
|
-
locked: boolean;
|
|
199
|
-
fromSelection: boolean;
|
|
200
|
-
} & import("../types").ActiveTool;
|
|
201
225
|
contextMenu: {
|
|
202
226
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
203
227
|
top: number;
|
|
@@ -215,13 +239,26 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
215
239
|
multiElement: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawLinearElement> | null;
|
|
216
240
|
selectionElement: import("@nextcloud/excalidraw-element/types").NonDeletedExcalidrawElement | null;
|
|
217
241
|
isBindingEnabled: boolean;
|
|
242
|
+
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
218
243
|
bindingPreference: "enabled" | "disabled";
|
|
219
244
|
isMidpointSnappingEnabled: boolean;
|
|
220
|
-
|
|
245
|
+
showHints: boolean;
|
|
246
|
+
inputDevice: import("../types").InputDevice;
|
|
221
247
|
suggestedBinding: {
|
|
222
248
|
element: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawBindableElement>;
|
|
223
249
|
midPoint?: import("@nextcloud/excalidraw-math").GlobalPoint;
|
|
224
250
|
} | null;
|
|
251
|
+
textToolHover: {
|
|
252
|
+
type: "text";
|
|
253
|
+
elementId: ExcalidrawElement["id"];
|
|
254
|
+
} | {
|
|
255
|
+
type: "container";
|
|
256
|
+
elementId: ExcalidrawElement["id"];
|
|
257
|
+
} | {
|
|
258
|
+
type: "arrow";
|
|
259
|
+
elementId: import("@nextcloud/excalidraw-element/types").ExcalidrawArrowElement["id"];
|
|
260
|
+
anchor: "start" | "end" | "label";
|
|
261
|
+
} | null;
|
|
225
262
|
frameToHighlight: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawFrameLikeElement> | null;
|
|
226
263
|
frameRendering: {
|
|
227
264
|
enabled: boolean;
|
|
@@ -229,8 +266,8 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
229
266
|
outline: boolean;
|
|
230
267
|
clip: boolean;
|
|
231
268
|
};
|
|
232
|
-
editingFrame:
|
|
233
|
-
elementsToHighlight: import("@nextcloud/excalidraw-element/types").
|
|
269
|
+
editingFrame: import("@nextcloud/excalidraw-element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
270
|
+
elementsToHighlight: readonly import("@nextcloud/excalidraw-element/types").NonDeletedExcalidrawElement[] | null;
|
|
234
271
|
editingTextElement: import("@nextcloud/excalidraw-element/types").ExcalidrawTextElement | null;
|
|
235
272
|
preferredSelectionTool: {
|
|
236
273
|
type: "selection" | "lasso";
|
|
@@ -243,11 +280,14 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
243
280
|
exportWithDarkMode: boolean;
|
|
244
281
|
exportScale: number;
|
|
245
282
|
currentItemStrokeColor: string;
|
|
283
|
+
currentItemStickynoteStrokeColor: string;
|
|
284
|
+
currentItemStickynoteBackgroundColor: string;
|
|
246
285
|
currentItemBackgroundColor: string;
|
|
247
286
|
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
248
|
-
|
|
287
|
+
currentItemStrokeWidthKey: import("@nextcloud/excalidraw-common").StrokeWidthKey;
|
|
249
288
|
currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
|
|
250
289
|
currentItemRoughness: number;
|
|
290
|
+
currentItemStrokeVariability: import("@nextcloud/excalidraw-element/types").StrokeVariability;
|
|
251
291
|
currentItemOpacity: number;
|
|
252
292
|
currentItemFontFamily: import("@nextcloud/excalidraw-element/types").FontFamilyValues;
|
|
253
293
|
currentItemFontSize: number;
|
|
@@ -259,11 +299,11 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
259
299
|
viewBackgroundColor: string;
|
|
260
300
|
scrollX: number;
|
|
261
301
|
scrollY: number;
|
|
302
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
262
303
|
cursorButton: "up" | "down";
|
|
263
304
|
scrolledOutside: boolean;
|
|
264
305
|
isResizing: boolean;
|
|
265
306
|
isRotating: boolean;
|
|
266
|
-
zoom: import("../types").Zoom;
|
|
267
307
|
openMenu: "canvas" | null;
|
|
268
308
|
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
269
309
|
openSidebar: {
|
|
@@ -323,8 +363,6 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
323
363
|
x: number;
|
|
324
364
|
y: number;
|
|
325
365
|
} | null;
|
|
326
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
327
|
-
followedBy: Set<import("../types").SocketId>;
|
|
328
366
|
isCropping: boolean;
|
|
329
367
|
croppingElementId: ExcalidrawElement["id"] | null;
|
|
330
368
|
searchMatches: Readonly<{
|
|
@@ -336,6 +374,14 @@ fileHandle?: FileSystemFileHandle | null) => Promise<{
|
|
|
336
374
|
[groupId: string]: true;
|
|
337
375
|
};
|
|
338
376
|
bindMode: import("@nextcloud/excalidraw-element/types").BindMode;
|
|
377
|
+
colorTopPicks: {
|
|
378
|
+
elementStroke: readonly string[] | null;
|
|
379
|
+
elementBackground: readonly string[] | null;
|
|
380
|
+
bucketFill: readonly string[] | null;
|
|
381
|
+
stickyNoteStroke: readonly string[] | null;
|
|
382
|
+
stickyNoteBackground: readonly string[] | null;
|
|
383
|
+
};
|
|
384
|
+
fontTopPicks: readonly import("@nextcloud/excalidraw-element/types").FontFamilyValues[] | null;
|
|
339
385
|
};
|
|
340
386
|
files: import("../types").BinaryFiles;
|
|
341
387
|
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement } from "@nextcloud/excalidraw-element/types";
|
|
1
|
+
import type { ExcalidrawElement, ExcalidrawFrameLikeElement, NonDeleted, NonDeletedExcalidrawElement } from "@nextcloud/excalidraw-element/types";
|
|
2
2
|
import type { ExportType } from "../scene/types";
|
|
3
3
|
import type { AppState, BinaryFiles } from "../types";
|
|
4
4
|
export { loadFromBlob } from "./blob";
|
|
@@ -6,8 +6,8 @@ export { loadFromJSON, saveAsJSON } from "./json";
|
|
|
6
6
|
export type ExportedElements = readonly NonDeletedExcalidrawElement[] & {
|
|
7
7
|
_brand: "exportedElements";
|
|
8
8
|
};
|
|
9
|
-
export declare const prepareElementsForExport: (
|
|
10
|
-
exportingFrame: ExcalidrawFrameLikeElement | null;
|
|
9
|
+
export declare const prepareElementsForExport: (allElements: readonly ExcalidrawElement[], { selectedElementIds }: Pick<AppState, "selectedElementIds">, exportSelectionOnly: boolean) => {
|
|
10
|
+
exportingFrame: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
11
11
|
exportedElements: ExportedElements;
|
|
12
12
|
};
|
|
13
13
|
export declare const exportCanvas: (type: Omit<ExportType, "backend">, elements: ExportedElements, appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, name, fileHandle, exportingFrame, }: {
|
|
@@ -17,5 +17,5 @@ export declare const exportCanvas: (type: Omit<ExportType, "backend">, elements:
|
|
|
17
17
|
/** filename, if applicable */
|
|
18
18
|
name?: string;
|
|
19
19
|
fileHandle?: FileSystemFileHandle | null;
|
|
20
|
-
exportingFrame: ExcalidrawFrameLikeElement | null;
|
|
20
|
+
exportingFrame: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
21
21
|
}) => Promise<FileSystemFileHandle | null | undefined>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { ExcalidrawElement
|
|
1
|
+
import type { ExcalidrawElement } from "@nextcloud/excalidraw-element/types";
|
|
2
2
|
import type { MaybePromise } from "@nextcloud/excalidraw-common/utility-types";
|
|
3
3
|
import type { AppState, BinaryFiles, LibraryItems } from "../types";
|
|
4
4
|
import type { ImportedDataState, ImportedLibraryData } from "./types";
|
|
5
5
|
export type JSONExportData = {
|
|
6
|
-
elements: readonly
|
|
6
|
+
elements: readonly ExcalidrawElement[];
|
|
7
7
|
appState: AppState;
|
|
8
8
|
files: BinaryFiles;
|
|
9
9
|
};
|
|
@@ -18,7 +18,13 @@ export declare const saveAsJSON: ({ data, filename, fileHandle, }: {
|
|
|
18
18
|
export declare const loadFromJSON: (localAppState: AppState, localElements: readonly ExcalidrawElement[] | null) => Promise<{
|
|
19
19
|
elements: import("@nextcloud/excalidraw-element/types").OrderedExcalidrawElement[];
|
|
20
20
|
appState: {
|
|
21
|
+
zoom: import("../types").Zoom;
|
|
21
22
|
viewModeEnabled: boolean;
|
|
23
|
+
activeTool: {
|
|
24
|
+
lastActiveTool: import("../types").ActiveTool | null;
|
|
25
|
+
locked: boolean;
|
|
26
|
+
fromSelection: boolean;
|
|
27
|
+
} & import("../types").ActiveTool;
|
|
22
28
|
zenModeEnabled: boolean;
|
|
23
29
|
gridModeEnabled: boolean;
|
|
24
30
|
objectsSnapModeEnabled: boolean;
|
|
@@ -26,11 +32,6 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
26
32
|
name: string | null;
|
|
27
33
|
currentItemArrowType: "sharp" | "round" | "elbow";
|
|
28
34
|
gridSize: number;
|
|
29
|
-
activeTool: {
|
|
30
|
-
lastActiveTool: import("../types").ActiveTool | null;
|
|
31
|
-
locked: boolean;
|
|
32
|
-
fromSelection: boolean;
|
|
33
|
-
} & import("../types").ActiveTool;
|
|
34
35
|
contextMenu: {
|
|
35
36
|
items: import("../components/ContextMenu").ContextMenuItems;
|
|
36
37
|
top: number;
|
|
@@ -43,27 +44,40 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
43
44
|
element: import("@nextcloud/excalidraw-element/types").NonDeletedExcalidrawElement;
|
|
44
45
|
state: "hover" | "active";
|
|
45
46
|
} | null;
|
|
46
|
-
newElement: NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawNonSelectionElement> | null;
|
|
47
|
+
newElement: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawNonSelectionElement> | null;
|
|
47
48
|
resizingElement: import("@nextcloud/excalidraw-element/types").NonDeletedExcalidrawElement | null;
|
|
48
|
-
multiElement: NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawLinearElement> | null;
|
|
49
|
+
multiElement: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawLinearElement> | null;
|
|
49
50
|
selectionElement: import("@nextcloud/excalidraw-element/types").NonDeletedExcalidrawElement | null;
|
|
50
51
|
isBindingEnabled: boolean;
|
|
52
|
+
boxSelectionMode: import("../types").BoxSelectionMode;
|
|
51
53
|
bindingPreference: "enabled" | "disabled";
|
|
52
54
|
isMidpointSnappingEnabled: boolean;
|
|
53
|
-
|
|
55
|
+
showHints: boolean;
|
|
56
|
+
inputDevice: import("../types").InputDevice;
|
|
54
57
|
suggestedBinding: {
|
|
55
|
-
element: NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawBindableElement>;
|
|
58
|
+
element: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawBindableElement>;
|
|
56
59
|
midPoint?: import("@nextcloud/excalidraw-math").GlobalPoint;
|
|
57
60
|
} | null;
|
|
58
|
-
|
|
61
|
+
textToolHover: {
|
|
62
|
+
type: "text";
|
|
63
|
+
elementId: ExcalidrawElement["id"];
|
|
64
|
+
} | {
|
|
65
|
+
type: "container";
|
|
66
|
+
elementId: ExcalidrawElement["id"];
|
|
67
|
+
} | {
|
|
68
|
+
type: "arrow";
|
|
69
|
+
elementId: import("@nextcloud/excalidraw-element/types").ExcalidrawArrowElement["id"];
|
|
70
|
+
anchor: "start" | "end" | "label";
|
|
71
|
+
} | null;
|
|
72
|
+
frameToHighlight: import("@nextcloud/excalidraw-element/types").NonDeleted<import("@nextcloud/excalidraw-element/types").ExcalidrawFrameLikeElement> | null;
|
|
59
73
|
frameRendering: {
|
|
60
74
|
enabled: boolean;
|
|
61
75
|
name: boolean;
|
|
62
76
|
outline: boolean;
|
|
63
77
|
clip: boolean;
|
|
64
78
|
};
|
|
65
|
-
editingFrame:
|
|
66
|
-
elementsToHighlight:
|
|
79
|
+
editingFrame: import("@nextcloud/excalidraw-element/types").ExcalidrawFrameLikeElement["id"] | null;
|
|
80
|
+
elementsToHighlight: readonly import("@nextcloud/excalidraw-element/types").NonDeletedExcalidrawElement[] | null;
|
|
67
81
|
editingTextElement: import("@nextcloud/excalidraw-element/types").ExcalidrawTextElement | null;
|
|
68
82
|
preferredSelectionTool: {
|
|
69
83
|
type: "selection" | "lasso";
|
|
@@ -76,11 +90,14 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
76
90
|
exportWithDarkMode: boolean;
|
|
77
91
|
exportScale: number;
|
|
78
92
|
currentItemStrokeColor: string;
|
|
93
|
+
currentItemStickynoteStrokeColor: string;
|
|
94
|
+
currentItemStickynoteBackgroundColor: string;
|
|
79
95
|
currentItemBackgroundColor: string;
|
|
80
96
|
currentItemFillStyle: ExcalidrawElement["fillStyle"];
|
|
81
|
-
|
|
97
|
+
currentItemStrokeWidthKey: import("@nextcloud/excalidraw-common").StrokeWidthKey;
|
|
82
98
|
currentItemStrokeStyle: ExcalidrawElement["strokeStyle"];
|
|
83
99
|
currentItemRoughness: number;
|
|
100
|
+
currentItemStrokeVariability: import("@nextcloud/excalidraw-element/types").StrokeVariability;
|
|
84
101
|
currentItemOpacity: number;
|
|
85
102
|
currentItemFontFamily: import("@nextcloud/excalidraw-element/types").FontFamilyValues;
|
|
86
103
|
currentItemFontSize: number;
|
|
@@ -92,11 +109,11 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
92
109
|
viewBackgroundColor: string;
|
|
93
110
|
scrollX: number;
|
|
94
111
|
scrollY: number;
|
|
112
|
+
scrollConstraints: import("../types").ScrollConstraints | null;
|
|
95
113
|
cursorButton: "up" | "down";
|
|
96
114
|
scrolledOutside: boolean;
|
|
97
115
|
isResizing: boolean;
|
|
98
116
|
isRotating: boolean;
|
|
99
|
-
zoom: import("../types").Zoom;
|
|
100
117
|
openMenu: "canvas" | null;
|
|
101
118
|
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
102
119
|
openSidebar: {
|
|
@@ -156,8 +173,6 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
156
173
|
x: number;
|
|
157
174
|
y: number;
|
|
158
175
|
} | null;
|
|
159
|
-
userToFollow: import("../types").UserToFollow | null;
|
|
160
|
-
followedBy: Set<import("../types").SocketId>;
|
|
161
176
|
isCropping: boolean;
|
|
162
177
|
croppingElementId: ExcalidrawElement["id"] | null;
|
|
163
178
|
searchMatches: Readonly<{
|
|
@@ -169,6 +184,14 @@ export declare const loadFromJSON: (localAppState: AppState, localElements: read
|
|
|
169
184
|
[groupId: string]: true;
|
|
170
185
|
};
|
|
171
186
|
bindMode: import("@nextcloud/excalidraw-element/types").BindMode;
|
|
187
|
+
colorTopPicks: {
|
|
188
|
+
elementStroke: readonly string[] | null;
|
|
189
|
+
elementBackground: readonly string[] | null;
|
|
190
|
+
bucketFill: readonly string[] | null;
|
|
191
|
+
stickyNoteStroke: readonly string[] | null;
|
|
192
|
+
stickyNoteBackground: readonly string[] | null;
|
|
193
|
+
};
|
|
194
|
+
fontTopPicks: readonly import("@nextcloud/excalidraw-element/types").FontFamilyValues[] | null;
|
|
172
195
|
};
|
|
173
196
|
files: BinaryFiles;
|
|
174
197
|
}>;
|
|
@@ -37,7 +37,7 @@ export interface LibraryMigrationAdapter {
|
|
|
37
37
|
/** clears entire storage afterwards */
|
|
38
38
|
clear(): MaybePromise<void>;
|
|
39
39
|
}
|
|
40
|
-
export declare const libraryItemsAtom: import("jotai
|
|
40
|
+
export declare const libraryItemsAtom: import("jotai").PrimitiveAtom<{
|
|
41
41
|
status: "loading" | "loaded";
|
|
42
42
|
/** indicates whether library is initialized with library items (has gone
|
|
43
43
|
* through at least one update). Used in UI. Specific to this atom only. */
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GlobalPoint } from "@nextcloud/excalidraw-math";
|
|
2
|
+
import type App from "./components/App";
|
|
3
|
+
import type { Trail } from "./animatedTrail";
|
|
4
|
+
export declare class DrawShapeTrail implements Trail {
|
|
5
|
+
private app;
|
|
6
|
+
private trail;
|
|
7
|
+
constructor(app: App);
|
|
8
|
+
private getTrailOptions;
|
|
9
|
+
startPath(x: number, y: number): void;
|
|
10
|
+
addPointToPath(x: number, y: number): void;
|
|
11
|
+
endPath(): void;
|
|
12
|
+
clearTrails(): void;
|
|
13
|
+
getCurrentPoints(): GlobalPoint[];
|
|
14
|
+
start(container: SVGSVGElement): void;
|
|
15
|
+
stop(): void;
|
|
16
|
+
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { AnimatedTrail } from "../
|
|
2
|
-
import type { AnimationFrameHandler } from "../animation-frame-handler";
|
|
1
|
+
import { AnimatedTrail } from "../animatedTrail";
|
|
3
2
|
import type App from "../components/App";
|
|
4
3
|
export declare class EraserTrail extends AnimatedTrail {
|
|
5
4
|
private elementsToErase;
|
|
6
5
|
private groupsToErase;
|
|
7
|
-
constructor(
|
|
6
|
+
constructor(app: App);
|
|
8
7
|
startPath(x: number, y: number): void;
|
|
9
8
|
addPointToPath(x: number, y: number, restore?: boolean): string[];
|
|
10
9
|
private updateElementsToBeErased;
|
|
@@ -15,7 +15,8 @@ export declare class Fonts {
|
|
|
15
15
|
fontFaces: ExcalidrawFontFace[];
|
|
16
16
|
}>;
|
|
17
17
|
private readonly scene;
|
|
18
|
-
|
|
18
|
+
private readonly ownerDocument;
|
|
19
|
+
constructor(scene: Scene, ownerDocument?: Document);
|
|
19
20
|
/**
|
|
20
21
|
* Get all the font families for the given scene.
|
|
21
22
|
*/
|
|
@@ -36,7 +37,7 @@ export declare class Fonts {
|
|
|
36
37
|
/**
|
|
37
38
|
* Load font faces for passed elements - use when the scene is unavailable (i.e. export).
|
|
38
39
|
*/
|
|
39
|
-
static loadElementsFonts: (elements: readonly ExcalidrawElement[]) => Promise<FontFace[]>;
|
|
40
|
+
static loadElementsFonts: (elements: readonly ExcalidrawElement[], ownerDocument?: Document) => Promise<FontFace[]>;
|
|
40
41
|
/**
|
|
41
42
|
* Generate CSS @font-face declarations for the given elements.
|
|
42
43
|
*/
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { AppState } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Subscribes to specific appState changes. The component re-renders
|
|
4
|
+
* only when the specified prop(s) change — not on every appState update.
|
|
5
|
+
*
|
|
6
|
+
* Works both inside and outside the <Excalidraw> tree, as long as
|
|
7
|
+
* ExcalidrawAPIContext.Provider is an ancestor (automatically provided
|
|
8
|
+
* inside <Excalidraw>, or manually by the host app).
|
|
9
|
+
*
|
|
10
|
+
* Returns the narrowed value depending on prop form:
|
|
11
|
+
* - `keyof AppState` → `AppState[K]`
|
|
12
|
+
* - `(keyof AppState)[]` → whole `AppState`
|
|
13
|
+
* - selector function → selector's return type `T`
|
|
14
|
+
*
|
|
15
|
+
* If excalidrawAPI is not ready yet (host apps), hook is rerendered with latest
|
|
16
|
+
* value once available.
|
|
17
|
+
*/
|
|
18
|
+
export declare function useAppStateValue<K extends keyof AppState>(prop: K, _internal?: boolean): AppState[K];
|
|
19
|
+
export declare function useAppStateValue(props: (keyof AppState)[], _internal?: boolean): AppState;
|
|
20
|
+
export declare function useAppStateValue<T>(selector: (appState: AppState) => T, _internal?: boolean): T;
|
|
21
|
+
/**
|
|
22
|
+
* Subscribes to specific appState changes without causing component rerenders.
|
|
23
|
+
*
|
|
24
|
+
* The callback is called on every matching change, but also on initial render
|
|
25
|
+
* so you can initialize your state.
|
|
26
|
+
*/
|
|
27
|
+
export declare function useOnAppStateChange<K extends keyof AppState>(prop: K, callback: (value: AppState[K], appState: AppState) => void): undefined;
|
|
28
|
+
export declare function useOnAppStateChange(props: (keyof AppState)[], callback: (props: AppState, appState: AppState) => void): undefined;
|
|
29
|
+
export declare function useOnAppStateChange<T>(selector: (appState: AppState) => T, callback: (value: T, appState: AppState) => void): undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LibraryItem } from "../types";
|
|
2
2
|
export type SvgCache = Map<LibraryItem["id"], SVGSVGElement>;
|
|
3
|
-
export declare const libraryItemSvgsCache: import("jotai
|
|
3
|
+
export declare const libraryItemSvgsCache: import("jotai").PrimitiveAtom<SvgCache> & {
|
|
4
4
|
init: SvgCache;
|
|
5
5
|
};
|
|
6
6
|
export declare const useLibraryItemSvg: (id: LibraryItem["id"] | null, elements: LibraryItem["elements"] | undefined, svgCache: SvgCache, ref: React.RefObject<HTMLDivElement | null>) => SVGSVGElement | undefined;
|
|
@@ -2,13 +2,13 @@ export type CaretPosition = {
|
|
|
2
2
|
start: number;
|
|
3
3
|
end: number;
|
|
4
4
|
};
|
|
5
|
-
export declare const saveCaretPosition: () => CaretPosition | null;
|
|
6
|
-
export declare const restoreCaretPosition: (position: CaretPosition | null) => void;
|
|
7
|
-
export declare const withCaretPositionPreservation: (callback: () => void, isCompactMode: boolean, isEditingText: boolean, onPreventClose?: () => void) => void;
|
|
8
|
-
export declare const useTextEditorFocus: () => {
|
|
5
|
+
export declare const saveCaretPosition: (ownerDocument?: Document) => CaretPosition | null;
|
|
6
|
+
export declare const restoreCaretPosition: (position: CaretPosition | null, ownerDocument?: Document) => void;
|
|
7
|
+
export declare const withCaretPositionPreservation: (callback: () => void, isCompactMode: boolean, isEditingText: boolean, onPreventClose?: () => void, ownerDocument?: Document) => void;
|
|
8
|
+
export declare const useTextEditorFocus: (ownerDocument?: Document) => {
|
|
9
9
|
saveCaretPosition: () => void;
|
|
10
10
|
restoreCaretPosition: () => void;
|
|
11
11
|
clearSavedPosition: () => void;
|
|
12
12
|
hasSavedPosition: boolean;
|
|
13
13
|
};
|
|
14
|
-
export declare const temporarilyDisableTextEditorBlur: (duration?: number) => void;
|
|
14
|
+
export declare const temporarilyDisableTextEditorBlur: (ownerDocument?: Document, duration?: number) => void;
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
import { AnimatedTrail } from "./
|
|
2
|
-
import type { Trail } from "./
|
|
3
|
-
import type { AnimationFrameHandler } from "./animation-frame-handler";
|
|
1
|
+
import { AnimatedTrail } from "./animatedTrail";
|
|
2
|
+
import type { Trail } from "./animatedTrail";
|
|
4
3
|
import type App from "./components/App";
|
|
5
4
|
export declare class LaserTrails implements Trail {
|
|
6
|
-
private animationFrameHandler;
|
|
7
5
|
private app;
|
|
8
6
|
localTrail: AnimatedTrail;
|
|
9
7
|
private collabTrails;
|
|
10
8
|
private container?;
|
|
11
|
-
constructor(
|
|
9
|
+
constructor(app: App);
|
|
12
10
|
private getTrailOptions;
|
|
13
11
|
startPath(x: number, y: number): void;
|
|
14
12
|
addPointToPath(x: number, y: number): void;
|
|
15
13
|
endPath(): void;
|
|
16
14
|
start(container: SVGSVGElement): void;
|
|
17
15
|
stop(): void;
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
private stopCollabTrails;
|
|
17
|
+
updateCollabTrails(collaborators: App["state"]["collaborators"]): void;
|
|
20
18
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { AnimatedTrail } from "../animated-trail";
|
|
1
|
+
import { AnimatedTrail } from "../animatedTrail";
|
|
3
2
|
import type App from "../components/App";
|
|
4
3
|
export declare class LassoTrail extends AnimatedTrail {
|
|
5
4
|
private intersectedElements;
|
|
@@ -7,7 +6,7 @@ export declare class LassoTrail extends AnimatedTrail {
|
|
|
7
6
|
private elementsSegments;
|
|
8
7
|
private canvasTranslate;
|
|
9
8
|
private keepPreviousSelection;
|
|
10
|
-
constructor(
|
|
9
|
+
constructor(app: App);
|
|
11
10
|
startPath(x: number, y: number, keepPreviousSelection?: boolean): void;
|
|
12
11
|
selectElementsFromIds: (ids: string[]) => void;
|
|
13
12
|
addPointToPath: (x: number, y: number, keepPreviousSelection?: boolean) => void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ElementsSegmentsMap, GlobalPoint } from "@nextcloud/excalidraw-math/types";
|
|
2
2
|
import type { ElementsMap, ExcalidrawElement } from "@nextcloud/excalidraw-element/types";
|
|
3
|
+
import type { BoxSelectionMode } from "../types";
|
|
3
4
|
export declare const getLassoSelectedElementIds: (input: {
|
|
4
5
|
lassoPath: GlobalPoint[];
|
|
5
6
|
elements: readonly ExcalidrawElement[];
|
|
@@ -8,6 +9,7 @@ export declare const getLassoSelectedElementIds: (input: {
|
|
|
8
9
|
intersectedElements: Set<ExcalidrawElement["id"]>;
|
|
9
10
|
enclosedElements: Set<ExcalidrawElement["id"]>;
|
|
10
11
|
simplifyDistance?: number;
|
|
12
|
+
mode?: BoxSelectionMode;
|
|
11
13
|
}) => {
|
|
12
14
|
selectedElementIds: string[];
|
|
13
15
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ElementRenderOffsets, ElementRenderOverrides } from "./types";
|
|
2
|
+
/** Validate and copy before publishing, so a rejected snapshot changes nothing. */
|
|
3
|
+
export declare const copyElementRenderOverrides: (overrides: ElementRenderOverrides | null) => ElementRenderOverrides;
|
|
4
|
+
/**
|
|
5
|
+
* Extracts the offsets of a snapshot, returning `previous` when they are the
|
|
6
|
+
* same. Visibility is memoized on this map's identity, so a snapshot that only
|
|
7
|
+
* changes opacities (a fade) never re-runs viewport geometry.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getElementRenderOffsets: (overrides: ElementRenderOverrides, previous: ElementRenderOffsets) => ElementRenderOffsets;
|
|
@@ -3,10 +3,14 @@ export type Animation<R extends object> = (params: {
|
|
|
3
3
|
state?: R;
|
|
4
4
|
}) => R | null | undefined;
|
|
5
5
|
export declare class AnimationController {
|
|
6
|
-
private static
|
|
6
|
+
private static scheduledFrame;
|
|
7
7
|
private static animations;
|
|
8
8
|
static start<R extends object>(key: string, animation: Animation<R>): void;
|
|
9
|
+
private static scheduleNextFrame;
|
|
10
|
+
private static cancelScheduledFrame;
|
|
11
|
+
private static cancelScheduledFrameIfIdle;
|
|
9
12
|
private static tick;
|
|
10
13
|
static running(key: string): boolean;
|
|
11
14
|
static cancel(key: string): void;
|
|
15
|
+
static reset(): void;
|
|
12
16
|
}
|
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
import type { StaticCanvasRenderConfig } from "../scene/types";
|
|
2
2
|
import type { AppState, StaticCanvasAppState } from "../types";
|
|
3
|
+
export declare const DEFAULT_SELECTION_COLOR = "#6965db";
|
|
4
|
+
/**
|
|
5
|
+
* Returns the theme's selection color (`--color-selection`), read from the
|
|
6
|
+
* computed style of any element inside the editor container so that host
|
|
7
|
+
* overrides are respected. Falls back to the default when unavailable.
|
|
8
|
+
*/
|
|
9
|
+
export declare const getSelectionColor: (element: Element | null | undefined) => string;
|
|
3
10
|
export declare const fillCircle: (context: CanvasRenderingContext2D, cx: number, cy: number, radius: number, stroke: boolean, fill?: boolean) => void;
|
|
11
|
+
/**
|
|
12
|
+
* The scroll the renderers draw at: the real one, rounded to whole device
|
|
13
|
+
* pixels. Panning writes a fractional scroll (pointer delta ÷ zoom), and an
|
|
14
|
+
* element's cached bitmap blitted at a fractional device offset gets
|
|
15
|
+
* resampled — so as the fraction drifts under a pan, every element pulses
|
|
16
|
+
* between crisp and soft. A whole-pixel scroll moves the scene the way a
|
|
17
|
+
* browser scrolls a page: each element keeps its own, constant sub-pixel
|
|
18
|
+
* phase and a pan never changes how anything is filtered. The difference
|
|
19
|
+
* stays under half a device pixel, so hit-testing and DOM overlays keep
|
|
20
|
+
* using the real scroll. Identity when nothing needs to change.
|
|
21
|
+
*/
|
|
22
|
+
export declare const snapScrollToDevicePixels: <T extends {
|
|
23
|
+
scrollX: number;
|
|
24
|
+
scrollY: number;
|
|
25
|
+
zoom: {
|
|
26
|
+
value: number;
|
|
27
|
+
};
|
|
28
|
+
}>(appState: T, scale: number) => T;
|
|
4
29
|
export declare const getNormalizedCanvasDimensions: (canvas: HTMLCanvasElement, scale: number) => [number, number];
|
|
5
30
|
export declare const bootstrapCanvas: ({ canvas, scale, normalizedWidth, normalizedHeight, theme, isExporting, viewBackgroundColor, }: {
|
|
6
31
|
canvas: HTMLCanvasElement;
|