@excalidraw/math 0.18.0-7876ee524 → 0.18.0-7ea3229
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 +60 -63
- package/dist/dev/index.js.map +3 -3
- package/dist/prod/index.js +1 -1
- package/dist/types/common/debug.d.ts +21 -0
- package/dist/types/common/src/bounds.d.ts +10 -0
- package/dist/types/common/src/colors.d.ts +59 -39
- package/dist/types/common/src/constants.d.ts +37 -26
- package/dist/types/common/src/editorInterface.d.ts +34 -0
- package/dist/types/common/src/font-metadata.d.ts +1 -3
- package/dist/types/common/src/index.d.ts +3 -0
- package/dist/types/common/src/keys.d.ts +1 -1
- package/dist/types/common/src/utility-types.d.ts +0 -1
- package/dist/types/common/src/utils.d.ts +52 -38
- package/dist/types/element/src/Scene.d.ts +3 -3
- package/dist/types/element/src/arrows/focus.d.ts +27 -0
- package/dist/types/element/src/arrows/helpers.d.ts +5 -0
- package/dist/types/element/src/binding.d.ts +66 -46
- package/dist/types/element/src/bounds.d.ts +3 -11
- package/dist/types/element/src/collision.d.ts +7 -2
- package/dist/types/element/src/comparisons.d.ts +7 -7
- package/dist/types/element/src/delta.d.ts +1 -2
- package/dist/types/element/src/distribute.d.ts +2 -1
- package/dist/types/element/src/dragElements.d.ts +3 -3
- package/dist/types/element/src/duplicate.d.ts +3 -3
- package/dist/types/element/src/fractionalIndex.d.ts +2 -2
- package/dist/types/element/src/frame.d.ts +5 -1
- package/dist/types/element/src/heading.d.ts +2 -1
- package/dist/types/element/src/image.d.ts +1 -11
- package/dist/types/element/src/index.d.ts +4 -3
- package/dist/types/element/src/linearElementEditor.d.ts +18 -20
- package/dist/types/element/src/mutateElement.d.ts +3 -1
- package/dist/types/element/src/newElement.d.ts +6 -6
- package/dist/types/element/src/positionElementsOnGrid.d.ts +2 -0
- package/dist/types/element/src/renderElement.d.ts +4 -7
- package/dist/types/element/src/resizeElements.d.ts +10 -10
- package/dist/types/element/src/resizeTest.d.ts +6 -5
- package/dist/types/element/src/selection.d.ts +3 -7
- package/dist/types/element/src/shape.d.ts +8 -7
- package/dist/types/element/src/store.d.ts +3 -2
- package/dist/types/element/src/textElement.d.ts +1 -1
- package/dist/types/element/src/textMeasurements.d.ts +1 -3
- package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
- package/dist/types/element/src/transformHandles.d.ts +8 -27
- package/dist/types/element/src/typeChecks.d.ts +4 -7
- package/dist/types/element/src/types.d.ts +7 -11
- package/dist/types/element/src/utils.d.ts +8 -3
- package/dist/types/element/src/zindex.d.ts +7 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +147 -181
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +73 -96
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +438 -758
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +109 -873
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +35 -47
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +118 -156
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -4
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +50 -64
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +72 -95
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +52 -64
- package/dist/types/excalidraw/actions/actionExport.d.ts +161 -1109
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
- package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionFrame.d.ts +225 -308
- package/dist/types/excalidraw/actions/actionGroup.d.ts +76 -107
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +128 -178
- package/dist/types/excalidraw/actions/actionLink.d.ts +52 -64
- package/dist/types/excalidraw/actions/actionMenu.d.ts +45 -425
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
- package/dist/types/excalidraw/actions/actionProperties.d.ts +135 -2488
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +38 -54
- package/dist/types/excalidraw/actions/actionStyles.d.ts +35 -47
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +52 -64
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +52 -64
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +44 -58
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +51 -63
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +52 -64
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +52 -64
- package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -9
- package/dist/types/excalidraw/actions/index.d.ts +2 -2
- package/dist/types/excalidraw/actions/register.d.ts +2 -2
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +4 -4
- package/dist/types/excalidraw/appState.d.ts +25 -20
- package/dist/types/excalidraw/clipboard.d.ts +58 -17
- package/dist/types/excalidraw/components/Actions.d.ts +22 -5
- package/dist/types/excalidraw/components/App.d.ts +76 -67
- package/dist/types/excalidraw/components/Card.d.ts +1 -3
- package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
- package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
- package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
- package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
- package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
- package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
- package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -2
- package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
- package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
- package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
- package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
- package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
- package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
- package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
- package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
- package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
- package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
- package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
- package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
- package/dist/types/excalidraw/components/Modal.d.ts +0 -1
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
- package/dist/types/excalidraw/components/Popover.d.ts +2 -1
- package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
- package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
- package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
- package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
- package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
- package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
- package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
- package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
- package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
- package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
- package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
- package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
- package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
- package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
- package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +2 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +2 -3
- package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
- package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
- package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
- package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
- package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
- package/dist/types/excalidraw/components/TextField.d.ts +1 -0
- package/dist/types/excalidraw/components/Toast.d.ts +3 -3
- package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
- package/dist/types/excalidraw/components/Trans.d.ts +2 -2
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +6 -3
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +47 -35
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -5
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
- package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
- package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
- package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
- package/dist/types/excalidraw/components/icons.d.ts +32 -13
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +17 -2
- package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
- package/dist/types/excalidraw/components/shapes.d.ts +202 -1
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
- package/dist/types/excalidraw/data/blob.d.ts +330 -10
- package/dist/types/excalidraw/data/encode.d.ts +4 -4
- package/dist/types/excalidraw/data/encryption.d.ts +5 -5
- package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
- package/dist/types/excalidraw/data/index.d.ts +3 -3
- package/dist/types/excalidraw/data/json.d.ts +162 -2
- package/dist/types/excalidraw/data/library.d.ts +24 -9
- package/dist/types/excalidraw/data/restore.d.ts +25 -10
- package/dist/types/excalidraw/data/types.d.ts +4 -1
- package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
- package/dist/types/excalidraw/errors.d.ts +14 -0
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
- package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
- package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
- package/dist/types/excalidraw/i18n.d.ts +2 -2
- package/dist/types/excalidraw/index.d.ts +7 -7
- package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
- package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
- package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
- package/dist/types/excalidraw/scene/export.d.ts +2 -2
- package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
- package/dist/types/excalidraw/scene/types.d.ts +22 -5
- package/dist/types/excalidraw/shortcut.d.ts +1 -0
- package/dist/types/excalidraw/snapping.d.ts +5 -5
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
- package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
- package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
- package/dist/types/excalidraw/types.d.ts +38 -21
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
- package/dist/types/math/src/point.d.ts +6 -1
- package/dist/types/math/src/polygon.d.ts +2 -2
- package/dist/types/math/src/range.d.ts +1 -3
- package/dist/types/math/src/segment.d.ts +4 -3
- package/dist/types/math/src/types.d.ts +25 -1
- package/dist/types/utils/src/bbox.d.ts +1 -1
- package/dist/types/utils/src/export.d.ts +5 -5
- package/dist/types/utils/src/shape.d.ts +6 -6
- package/dist/types/utils/src/withinBounds.d.ts +2 -2
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { UserIdleState } from "@excalidraw/common";
|
|
1
|
+
import type { UserIdleState, EditorInterface } from "@excalidraw/common";
|
|
2
2
|
import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
|
|
3
3
|
import type { MakeBrand } from "@excalidraw/common/utility-types";
|
|
4
|
-
import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId,
|
|
4
|
+
import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, PendingExcalidrawElements } from "../types";
|
|
5
5
|
import type { RoughCanvas } from "roughjs/bin/canvas";
|
|
6
6
|
import type { Drawable } from "roughjs/bin/core";
|
|
7
7
|
export type RenderableElementsMap = NonDeletedElementsMap & MakeBrand<"RenderableElementsMap">;
|
|
@@ -15,6 +15,7 @@ export type StaticCanvasRenderConfig = {
|
|
|
15
15
|
embedsValidationStatus: EmbedsValidationStatus;
|
|
16
16
|
elementsPendingErasure: ElementsPendingErasure;
|
|
17
17
|
pendingFlowchartNodes: PendingExcalidrawElements | null;
|
|
18
|
+
theme: AppState["theme"];
|
|
18
19
|
};
|
|
19
20
|
export type SVGRenderConfig = {
|
|
20
21
|
offsetX: number;
|
|
@@ -32,6 +33,7 @@ export type SVGRenderConfig = {
|
|
|
32
33
|
* @default true
|
|
33
34
|
*/
|
|
34
35
|
reuseImages: boolean;
|
|
36
|
+
theme: AppState["theme"];
|
|
35
37
|
};
|
|
36
38
|
export type InteractiveCanvasRenderConfig = {
|
|
37
39
|
remoteSelectedElementIds: Map<ExcalidrawElement["id"], SocketId[]>;
|
|
@@ -43,6 +45,10 @@ export type InteractiveCanvasRenderConfig = {
|
|
|
43
45
|
remotePointerUsernames: Map<SocketId, string>;
|
|
44
46
|
remotePointerButton: Map<SocketId, string | undefined>;
|
|
45
47
|
selectionColor: string;
|
|
48
|
+
lastViewportPosition: {
|
|
49
|
+
x: number;
|
|
50
|
+
y: number;
|
|
51
|
+
};
|
|
46
52
|
renderScrollbars?: boolean;
|
|
47
53
|
};
|
|
48
54
|
export type RenderInteractiveSceneCallback = {
|
|
@@ -60,7 +66,13 @@ export type StaticSceneRenderConfig = {
|
|
|
60
66
|
appState: StaticCanvasAppState;
|
|
61
67
|
renderConfig: StaticCanvasRenderConfig;
|
|
62
68
|
};
|
|
69
|
+
export type InteractiveSceneRenderAnimationState = {
|
|
70
|
+
bindingHighlight: {
|
|
71
|
+
runtime: number;
|
|
72
|
+
} | undefined;
|
|
73
|
+
};
|
|
63
74
|
export type InteractiveSceneRenderConfig = {
|
|
75
|
+
app: AppClassProperties;
|
|
64
76
|
canvas: HTMLCanvasElement | null;
|
|
65
77
|
elementsMap: RenderableElementsMap;
|
|
66
78
|
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
@@ -69,8 +81,10 @@ export type InteractiveSceneRenderConfig = {
|
|
|
69
81
|
scale: number;
|
|
70
82
|
appState: InteractiveCanvasAppState;
|
|
71
83
|
renderConfig: InteractiveCanvasRenderConfig;
|
|
72
|
-
|
|
84
|
+
editorInterface: EditorInterface;
|
|
73
85
|
callback: (data: RenderInteractiveSceneCallback) => void;
|
|
86
|
+
animationState?: InteractiveSceneRenderAnimationState;
|
|
87
|
+
deltaTime: number;
|
|
74
88
|
};
|
|
75
89
|
export type NewElementSceneRenderConfig = {
|
|
76
90
|
canvas: HTMLCanvasElement | null;
|
|
@@ -103,14 +117,17 @@ export type ScrollBars = {
|
|
|
103
117
|
deltaMultiplier: number;
|
|
104
118
|
} | null;
|
|
105
119
|
};
|
|
106
|
-
export type
|
|
120
|
+
export type SVGPathString = string & {
|
|
121
|
+
__brand: "SVGPathString";
|
|
122
|
+
};
|
|
123
|
+
export type ElementShape = Drawable | Drawable[] | Path2D | (Drawable | SVGPathString)[] | null;
|
|
107
124
|
export type ElementShapes = {
|
|
108
125
|
rectangle: Drawable;
|
|
109
126
|
ellipse: Drawable;
|
|
110
127
|
diamond: Drawable;
|
|
111
128
|
iframe: Drawable;
|
|
112
129
|
embeddable: Drawable;
|
|
113
|
-
freedraw: Drawable |
|
|
130
|
+
freedraw: (Drawable | SVGPathString)[];
|
|
114
131
|
arrow: Drawable[];
|
|
115
132
|
line: Drawable[];
|
|
116
133
|
text: null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getShortcutKey: (shortcut: string) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type GlobalPoint } from "@excalidraw/math";
|
|
2
2
|
import type { InclusiveRange } from "@excalidraw/math";
|
|
3
|
-
import type { Bounds } from "@excalidraw/
|
|
3
|
+
import type { Bounds } from "@excalidraw/common";
|
|
4
4
|
import type { MaybeTransformHandleType } from "@excalidraw/element";
|
|
5
5
|
import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
6
6
|
import type { AppClassProperties, AppState, KeyboardModifiersObject } from "./types";
|
|
@@ -70,9 +70,9 @@ export declare const isSnappingEnabled: ({ event, app, selectedElements, }: {
|
|
|
70
70
|
}) => boolean;
|
|
71
71
|
export declare const areRoughlyEqual: (a: number, b: number, precision?: number) => boolean;
|
|
72
72
|
export declare const getElementsCorners: (elements: ExcalidrawElement[], elementsMap: ElementsMap, { omitCenter, boundingBoxCorners, dragOffset, }?: {
|
|
73
|
-
omitCenter?: boolean
|
|
74
|
-
boundingBoxCorners?: boolean
|
|
75
|
-
dragOffset?: Vector2D
|
|
73
|
+
omitCenter?: boolean;
|
|
74
|
+
boundingBoxCorners?: boolean;
|
|
75
|
+
dragOffset?: Vector2D;
|
|
76
76
|
}) => GlobalPoint[];
|
|
77
77
|
export declare const getVisibleGaps: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => {
|
|
78
78
|
horizontalGaps: Gap[];
|
|
@@ -107,5 +107,5 @@ export declare const getSnapLinesAtPointer: (elements: readonly ExcalidrawElemen
|
|
|
107
107
|
};
|
|
108
108
|
snapLines: PointerSnapLine[];
|
|
109
109
|
};
|
|
110
|
-
export declare const isActiveToolNonLinearSnappable: (activeToolType: AppState["activeTool"]["type"]) =>
|
|
110
|
+
export declare const isActiveToolNonLinearSnappable: (activeToolType: AppState["activeTool"]["type"]) => activeToolType is "text" | "rectangle" | "diamond" | "ellipse" | "image" | "frame" | "magicframe";
|
|
111
111
|
export {};
|
|
@@ -38,7 +38,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
38
38
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
39
39
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
40
40
|
*/
|
|
41
|
-
declare function subset(hbSubsetWasm: any, heapu8: Uint8Array, font: ArrayBuffer, codePoints: ReadonlySet<number>): Uint8Array
|
|
41
|
+
declare function subset(hbSubsetWasm: any, heapu8: Uint8Array, font: ArrayBuffer, codePoints: ReadonlySet<number>): Uint8Array<ArrayBuffer>;
|
|
42
42
|
declare const _default: {
|
|
43
43
|
subset: typeof subset;
|
|
44
44
|
};
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* In the future consider separating common utils into a separate shared chunk.
|
|
8
8
|
*/
|
|
9
9
|
declare const load: () => Promise<{
|
|
10
|
-
subset: (fontBuffer: ArrayBuffer, codePoints: ReadonlySet<number>) => Uint8Array
|
|
10
|
+
subset: (fontBuffer: ArrayBuffer, codePoints: ReadonlySet<number>) => Uint8Array<ArrayBuffer>;
|
|
11
11
|
}>;
|
|
12
12
|
declare const _default: () => ReturnType<typeof load>;
|
|
13
13
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: Uint8Array
|
|
1
|
+
declare const _default: Uint8Array<ArrayBuffer>;
|
|
2
2
|
export default _default;
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* In the future consider separating common utils into a separate shared chunk.
|
|
8
8
|
*/
|
|
9
9
|
declare const load: () => Promise<{
|
|
10
|
-
compress: (buffer: ArrayBuffer) => Uint8Array
|
|
11
|
-
decompress: (buffer: ArrayBuffer) => Uint8Array
|
|
10
|
+
compress: (buffer: ArrayBuffer) => Uint8Array<ArrayBuffer>;
|
|
11
|
+
decompress: (buffer: ArrayBuffer) => Uint8Array<ArrayBuffer>;
|
|
12
12
|
}>;
|
|
13
13
|
declare const _default: () => ReturnType<typeof load>;
|
|
14
14
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: Uint8Array
|
|
1
|
+
declare const _default: Uint8Array<ArrayBuffer>;
|
|
2
2
|
export default _default;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { IMAGE_MIME_TYPES, UserIdleState, throttleRAF, MIME_TYPES } from "@excalidraw/common";
|
|
2
|
-
import type { SuggestedBinding } from "@excalidraw/element";
|
|
1
|
+
import type { IMAGE_MIME_TYPES, UserIdleState, throttleRAF, MIME_TYPES, EditorInterface } from "@excalidraw/common";
|
|
3
2
|
import type { LinearElementEditor } from "@excalidraw/element";
|
|
4
3
|
import type { MaybeTransformHandleType } from "@excalidraw/element";
|
|
5
|
-
import type { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, ChartType, FontFamilyValues, FileId, Theme, StrokeRoundness, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeLikeElement, OrderedExcalidrawElement, ExcalidrawNonSelectionElement } from "@excalidraw/element/types";
|
|
4
|
+
import type { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, ChartType, FontFamilyValues, FileId, Theme, StrokeRoundness, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeLikeElement, OrderedExcalidrawElement, ExcalidrawNonSelectionElement, BindMode } from "@excalidraw/element/types";
|
|
6
5
|
import type { Merge, MaybePromise, ValueOf, MakeBrand } from "@excalidraw/common/utility-types";
|
|
7
6
|
import type { CaptureUpdateActionType, DurableIncrement, EphemeralIncrement } from "@excalidraw/element";
|
|
7
|
+
import type { GlobalPoint } from "@excalidraw/math";
|
|
8
8
|
import type { Action } from "./actions/types";
|
|
9
9
|
import type { Spreadsheet } from "./charts";
|
|
10
10
|
import type { ClipboardData } from "./clipboard";
|
|
@@ -18,6 +18,7 @@ import type { Language } from "./i18n";
|
|
|
18
18
|
import type { isOverScrollBars } from "./scene/scrollbars";
|
|
19
19
|
import type React from "react";
|
|
20
20
|
import type { JSX } from "react";
|
|
21
|
+
export type { App };
|
|
21
22
|
export type SocketId = string & {
|
|
22
23
|
_brand: "SocketId";
|
|
23
24
|
};
|
|
@@ -125,16 +126,19 @@ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
|
125
126
|
frameRendering: AppState["frameRendering"];
|
|
126
127
|
currentHoveredFontFamily: AppState["currentHoveredFontFamily"];
|
|
127
128
|
hoveredElementIds: AppState["hoveredElementIds"];
|
|
129
|
+
suggestedBinding: AppState["suggestedBinding"];
|
|
128
130
|
croppingElementId: AppState["croppingElementId"];
|
|
129
131
|
}>;
|
|
130
132
|
export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
133
|
+
activeTool: AppState["activeTool"];
|
|
131
134
|
activeEmbeddable: AppState["activeEmbeddable"];
|
|
132
135
|
selectionElement: AppState["selectionElement"];
|
|
133
136
|
selectedGroupIds: AppState["selectedGroupIds"];
|
|
134
137
|
selectedLinearElement: AppState["selectedLinearElement"];
|
|
135
138
|
multiElement: AppState["multiElement"];
|
|
139
|
+
newElement: AppState["newElement"];
|
|
136
140
|
isBindingEnabled: AppState["isBindingEnabled"];
|
|
137
|
-
|
|
141
|
+
suggestedBinding: AppState["suggestedBinding"];
|
|
138
142
|
isRotating: AppState["isRotating"];
|
|
139
143
|
elementsToHighlight: AppState["elementsToHighlight"];
|
|
140
144
|
collaborators: AppState["collaborators"];
|
|
@@ -145,6 +149,10 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
|
145
149
|
croppingElementId: AppState["croppingElementId"];
|
|
146
150
|
searchMatches: AppState["searchMatches"];
|
|
147
151
|
activeLockedId: AppState["activeLockedId"];
|
|
152
|
+
hoveredElementIds: AppState["hoveredElementIds"];
|
|
153
|
+
frameRendering: AppState["frameRendering"];
|
|
154
|
+
shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
|
|
155
|
+
exportScale: AppState["exportScale"];
|
|
148
156
|
}>;
|
|
149
157
|
export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
|
|
150
158
|
export type ObservedStandaloneAppState = {
|
|
@@ -198,7 +206,10 @@ export interface AppState {
|
|
|
198
206
|
selectionElement: NonDeletedExcalidrawElement | null;
|
|
199
207
|
isBindingEnabled: boolean;
|
|
200
208
|
startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
|
|
201
|
-
|
|
209
|
+
suggestedBinding: {
|
|
210
|
+
element: NonDeleted<ExcalidrawBindableElement>;
|
|
211
|
+
midPoint?: GlobalPoint;
|
|
212
|
+
} | null;
|
|
202
213
|
frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
203
214
|
frameRendering: {
|
|
204
215
|
enabled: boolean;
|
|
@@ -221,6 +232,10 @@ export interface AppState {
|
|
|
221
232
|
locked: boolean;
|
|
222
233
|
fromSelection: boolean;
|
|
223
234
|
} & ActiveTool;
|
|
235
|
+
preferredSelectionTool: {
|
|
236
|
+
type: "selection" | "lasso";
|
|
237
|
+
initialized: boolean;
|
|
238
|
+
};
|
|
224
239
|
penMode: boolean;
|
|
225
240
|
penDetected: boolean;
|
|
226
241
|
exportBackground: boolean;
|
|
@@ -251,8 +266,8 @@ export interface AppState {
|
|
|
251
266
|
isResizing: boolean;
|
|
252
267
|
isRotating: boolean;
|
|
253
268
|
zoom: Zoom;
|
|
254
|
-
openMenu: "canvas" |
|
|
255
|
-
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | null;
|
|
269
|
+
openMenu: "canvas" | null;
|
|
270
|
+
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
256
271
|
openSidebar: {
|
|
257
272
|
name: SidebarName;
|
|
258
273
|
tab?: SidebarTabName;
|
|
@@ -264,6 +279,8 @@ export interface AppState {
|
|
|
264
279
|
tab: "text-to-diagram" | "mermaid";
|
|
265
280
|
} | {
|
|
266
281
|
name: "commandPalette";
|
|
282
|
+
} | {
|
|
283
|
+
name: "settings";
|
|
267
284
|
} | {
|
|
268
285
|
name: "elementLinkSelector";
|
|
269
286
|
sourceElementId: ExcalidrawElement["id"];
|
|
@@ -351,6 +368,7 @@ export interface AppState {
|
|
|
351
368
|
lockedMultiSelections: {
|
|
352
369
|
[groupId: string]: true;
|
|
353
370
|
};
|
|
371
|
+
bindMode: BindMode;
|
|
354
372
|
}
|
|
355
373
|
export type SearchMatch = {
|
|
356
374
|
id: string;
|
|
@@ -363,7 +381,7 @@ export type SearchMatch = {
|
|
|
363
381
|
showOnCanvas: boolean;
|
|
364
382
|
}[];
|
|
365
383
|
};
|
|
366
|
-
export type UIAppState = Omit<AppState, "
|
|
384
|
+
export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
|
|
367
385
|
export type NormalizedZoomValue = number & {
|
|
368
386
|
_brand: "normalizedZoom";
|
|
369
387
|
};
|
|
@@ -441,6 +459,7 @@ export interface ExcalidrawProps {
|
|
|
441
459
|
onDuplicate?: (nextElements: readonly ExcalidrawElement[],
|
|
442
460
|
/** excludes the duplicated elements */
|
|
443
461
|
prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
|
|
462
|
+
renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
444
463
|
renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
445
464
|
langCode?: Language["code"];
|
|
446
465
|
viewModeEnabled?: boolean;
|
|
@@ -498,6 +517,11 @@ export type UIOptions = Partial<{
|
|
|
498
517
|
tools: {
|
|
499
518
|
image: boolean;
|
|
500
519
|
};
|
|
520
|
+
/**
|
|
521
|
+
* Optionally control the editor form factor and desktop UI mode from the host app.
|
|
522
|
+
* If not provided, we will take care of it internally.
|
|
523
|
+
*/
|
|
524
|
+
getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
|
|
501
525
|
/** @deprecated does nothing. Will be removed in 0.15 */
|
|
502
526
|
welcomeScreen?: boolean;
|
|
503
527
|
}>;
|
|
@@ -528,7 +552,7 @@ export type AppClassProperties = {
|
|
|
528
552
|
mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
|
|
529
553
|
}>;
|
|
530
554
|
files: BinaryFiles;
|
|
531
|
-
|
|
555
|
+
editorInterface: App["editorInterface"];
|
|
532
556
|
scene: App["scene"];
|
|
533
557
|
syncActionResult: App["syncActionResult"];
|
|
534
558
|
fonts: App["fonts"];
|
|
@@ -557,6 +581,9 @@ export type AppClassProperties = {
|
|
|
557
581
|
excalidrawContainerValue: App["excalidrawContainerValue"];
|
|
558
582
|
onPointerUpEmitter: App["onPointerUpEmitter"];
|
|
559
583
|
updateEditorAtom: App["updateEditorAtom"];
|
|
584
|
+
onPointerDownEmitter: App["onPointerDownEmitter"];
|
|
585
|
+
lastPointerMoveCoords: App["lastPointerMoveCoords"];
|
|
586
|
+
bindModeHandler: App["bindModeHandler"];
|
|
560
587
|
};
|
|
561
588
|
export type PointerDownState = Readonly<{
|
|
562
589
|
origin: Readonly<{
|
|
@@ -604,6 +631,7 @@ export type PointerDownState = Readonly<{
|
|
|
604
631
|
x: number;
|
|
605
632
|
y: number;
|
|
606
633
|
};
|
|
634
|
+
blockDragging: boolean;
|
|
607
635
|
};
|
|
608
636
|
eventListeners: {
|
|
609
637
|
onMove: null | ReturnType<typeof throttleRAF>;
|
|
@@ -641,6 +669,7 @@ export interface ExcalidrawImperativeAPI {
|
|
|
641
669
|
setCursor: InstanceType<typeof App>["setCursor"];
|
|
642
670
|
resetCursor: InstanceType<typeof App>["resetCursor"];
|
|
643
671
|
toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
|
|
672
|
+
getEditorInterface: () => EditorInterface;
|
|
644
673
|
/**
|
|
645
674
|
* Disables rendering of frames (including element clipping), but currently
|
|
646
675
|
* the frames are still interactive in edit mode. As such, this API should be
|
|
@@ -654,17 +683,6 @@ export interface ExcalidrawImperativeAPI {
|
|
|
654
683
|
onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
|
|
655
684
|
onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
|
|
656
685
|
}
|
|
657
|
-
export type Device = Readonly<{
|
|
658
|
-
viewport: {
|
|
659
|
-
isMobile: boolean;
|
|
660
|
-
isLandscape: boolean;
|
|
661
|
-
};
|
|
662
|
-
editor: {
|
|
663
|
-
isMobile: boolean;
|
|
664
|
-
canFitSidebar: boolean;
|
|
665
|
-
};
|
|
666
|
-
isTouchScreen: boolean;
|
|
667
|
-
}>;
|
|
668
686
|
export type FrameNameBounds = {
|
|
669
687
|
x: number;
|
|
670
688
|
y: number;
|
|
@@ -704,4 +722,3 @@ export type Offsets = Partial<{
|
|
|
704
722
|
bottom: number;
|
|
705
723
|
left: number;
|
|
706
724
|
}>;
|
|
707
|
-
export {};
|
|
@@ -9,7 +9,7 @@ export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords,
|
|
|
9
9
|
* Note: `text`, which can be wrapped and therefore different from `originalText`,
|
|
10
10
|
* is derived from `originalText`
|
|
11
11
|
*/
|
|
12
|
-
onChange?: (
|
|
12
|
+
onChange?: (nextOriginalText: string) => void;
|
|
13
13
|
onSubmit: (data: {
|
|
14
14
|
viaKeyboard: boolean;
|
|
15
15
|
nextOriginalText: string;
|
|
@@ -19,6 +19,6 @@ export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords,
|
|
|
19
19
|
canvas: HTMLCanvasElement;
|
|
20
20
|
excalidrawContainer: HTMLDivElement | null;
|
|
21
21
|
app: App;
|
|
22
|
-
autoSelect?: boolean
|
|
22
|
+
autoSelect?: boolean;
|
|
23
23
|
}) => SubmitHandler;
|
|
24
24
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector } from "./types";
|
|
1
|
+
import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector, GlobalCoord, LocalCoord } from "./types";
|
|
2
2
|
/**
|
|
3
3
|
* Create a properly typed Point instance from the X and Y coordinates.
|
|
4
4
|
*
|
|
@@ -7,6 +7,11 @@ import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector } from "./types"
|
|
|
7
7
|
* @returns The branded and created point
|
|
8
8
|
*/
|
|
9
9
|
export declare function pointFrom<Point extends GlobalPoint | LocalPoint>(x: number, y: number): Point;
|
|
10
|
+
export declare function pointFrom<Coord extends GlobalCoord | LocalCoord>(coords: Coord): Coord extends GlobalCoord ? GlobalPoint : LocalPoint;
|
|
11
|
+
export declare function pointFrom<Point extends GlobalPoint | LocalPoint>(coords: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
}): Point;
|
|
10
15
|
/**
|
|
11
16
|
* Converts and remaps an array containing a pair of numbers to Point.
|
|
12
17
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GlobalPoint, LocalPoint, Polygon } from "./types";
|
|
2
2
|
export declare function polygon<Point extends GlobalPoint | LocalPoint>(...points: Point[]): Polygon<Point>;
|
|
3
3
|
export declare function polygonFromPoints<Point extends GlobalPoint | LocalPoint>(points: Point[]): Polygon<Point>;
|
|
4
|
-
export declare const polygonIncludesPoint: <Point extends
|
|
4
|
+
export declare const polygonIncludesPoint: <Point extends LocalPoint | GlobalPoint>(point: Point, polygon: Polygon<Point>) => boolean;
|
|
5
5
|
export declare const polygonIncludesPointNonZero: <Point extends [number, number]>(point: Point, polygon: Point[]) => boolean;
|
|
6
|
-
export declare const pointOnPolygon: <Point extends
|
|
6
|
+
export declare const pointOnPolygon: <Point extends LocalPoint | GlobalPoint>(p: Point, poly: Polygon<Point>, threshold?: number) => boolean;
|
|
@@ -13,9 +13,7 @@ export declare function rangeInclusive(start: number, end: number): InclusiveRan
|
|
|
13
13
|
* @param pair The number pair to convert to an inclusive range
|
|
14
14
|
* @returns The new inclusive range
|
|
15
15
|
*/
|
|
16
|
-
export declare function rangeInclusiveFromPair(pair: [start: number, end: number]):
|
|
17
|
-
_brand: "excalimath_degree";
|
|
18
|
-
};
|
|
16
|
+
export declare function rangeInclusiveFromPair(pair: [start: number, end: number]): InclusiveRange;
|
|
19
17
|
/**
|
|
20
18
|
* Given two ranges, return if the two ranges overlap with each other e.g.
|
|
21
19
|
* [1, 3] overlaps with [2, 4] while [1, 3] does not overlap with [4, 5].
|
|
@@ -21,14 +21,14 @@ export declare const isLineSegment: <Point extends GlobalPoint | LocalPoint>(seg
|
|
|
21
21
|
* @param origin
|
|
22
22
|
* @returns
|
|
23
23
|
*/
|
|
24
|
-
export declare const lineSegmentRotate: <Point extends
|
|
24
|
+
export declare const lineSegmentRotate: <Point extends LocalPoint | GlobalPoint>(l: LineSegment<Point>, angle: Radians, origin?: Point) => LineSegment<Point>;
|
|
25
25
|
/**
|
|
26
26
|
* Calculates the point two line segments with a definite start and end point
|
|
27
27
|
* intersect at.
|
|
28
28
|
*/
|
|
29
29
|
export declare const segmentsIntersectAt: <Point extends GlobalPoint | LocalPoint>(a: Readonly<LineSegment<Point>>, b: Readonly<LineSegment<Point>>) => Point | null;
|
|
30
|
-
export declare const pointOnLineSegment: <Point extends
|
|
31
|
-
export declare const distanceToLineSegment: <Point extends
|
|
30
|
+
export declare const pointOnLineSegment: <Point extends LocalPoint | GlobalPoint>(point: Point, line: LineSegment<Point>, threshold?: number) => boolean;
|
|
31
|
+
export declare const distanceToLineSegment: <Point extends LocalPoint | GlobalPoint>(point: Point, line: LineSegment<Point>) => number;
|
|
32
32
|
/**
|
|
33
33
|
* Returns the intersection point of a segment and a line
|
|
34
34
|
*
|
|
@@ -37,3 +37,4 @@ export declare const distanceToLineSegment: <Point extends GlobalPoint | LocalPo
|
|
|
37
37
|
* @returns
|
|
38
38
|
*/
|
|
39
39
|
export declare function lineSegmentIntersectionPoints<Point extends GlobalPoint | LocalPoint>(l: LineSegment<Point>, s: LineSegment<Point>, threshold?: number): Point | null;
|
|
40
|
+
export declare function lineSegmentsDistance<Point extends GlobalPoint | LocalPoint>(s1: LineSegment<Point>, s2: LineSegment<Point>): number;
|
|
@@ -19,12 +19,24 @@ export type InclusiveRange = [number, number] & {
|
|
|
19
19
|
_brand: "excalimath_degree";
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
|
-
* Represents a 2D position in world
|
|
22
|
+
* Represents a 2D position in world/canvas/scene space. A
|
|
23
23
|
* global coordinate.
|
|
24
24
|
*/
|
|
25
25
|
export type GlobalPoint = [x: number, y: number] & {
|
|
26
26
|
_brand: "excalimath__globalpoint";
|
|
27
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Represents a 2D position in world/canvas/scene space. A
|
|
30
|
+
* global coordinate.
|
|
31
|
+
*
|
|
32
|
+
* TODO remove this once we migrate the codebase to use Point tuples everywhere
|
|
33
|
+
*/
|
|
34
|
+
export type GlobalCoord = {
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
} & {
|
|
38
|
+
_brand: "excalimath__globalcoord";
|
|
39
|
+
};
|
|
28
40
|
/**
|
|
29
41
|
* Represents a 2D position in whatever local space it's
|
|
30
42
|
* needed. A local coordinate.
|
|
@@ -32,6 +44,18 @@ export type GlobalPoint = [x: number, y: number] & {
|
|
|
32
44
|
export type LocalPoint = [x: number, y: number] & {
|
|
33
45
|
_brand: "excalimath__localpoint";
|
|
34
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* Represents a 2D position in whatever local space it's needed.
|
|
49
|
+
* A local coordinate.
|
|
50
|
+
*
|
|
51
|
+
* TODO remove this once we migrate the codebase to use Point tuples everywhere
|
|
52
|
+
*/
|
|
53
|
+
export type LocalCoord = {
|
|
54
|
+
x: number;
|
|
55
|
+
y: number;
|
|
56
|
+
} & {
|
|
57
|
+
_brand: "excalimath__localcoord";
|
|
58
|
+
};
|
|
35
59
|
/**
|
|
36
60
|
* A line is an infinitely long object with no width, depth, or curvature.
|
|
37
61
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
|
|
2
|
-
import type { Bounds } from "@excalidraw/
|
|
2
|
+
import type { Bounds } from "@excalidraw/common";
|
|
3
3
|
export type LineSegment<P extends LocalPoint | GlobalPoint> = [P, P];
|
|
4
4
|
export declare function getBBox<P extends LocalPoint | GlobalPoint>(line: LineSegment<P>): Bounds;
|
|
5
5
|
export declare function doBBoxesIntersect(a: Bounds, b: Bounds): boolean;
|
|
@@ -15,7 +15,7 @@ type ExportOpts = {
|
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
export declare const exportToCanvas: ({ elements, appState, files, maxWidthOrHeight, getDimensions, exportPadding, exportingFrame, }: ExportOpts & {
|
|
18
|
-
exportPadding?: number
|
|
18
|
+
exportPadding?: number;
|
|
19
19
|
}) => Promise<HTMLCanvasElement>;
|
|
20
20
|
export declare const exportToBlob: (opts: ExportOpts & {
|
|
21
21
|
mimeType?: string;
|
|
@@ -23,10 +23,10 @@ export declare const exportToBlob: (opts: ExportOpts & {
|
|
|
23
23
|
exportPadding?: number;
|
|
24
24
|
}) => Promise<Blob>;
|
|
25
25
|
export declare const exportToSvg: ({ elements, appState, files, exportPadding, renderEmbeddables, exportingFrame, skipInliningFonts, reuseImages, }: Omit<ExportOpts, "getDimensions"> & {
|
|
26
|
-
exportPadding?: number
|
|
27
|
-
renderEmbeddables?: boolean
|
|
28
|
-
skipInliningFonts?: true
|
|
29
|
-
reuseImages?: boolean
|
|
26
|
+
exportPadding?: number;
|
|
27
|
+
renderEmbeddables?: boolean;
|
|
28
|
+
skipInliningFonts?: true;
|
|
29
|
+
reuseImages?: boolean;
|
|
30
30
|
}) => Promise<SVGSVGElement>;
|
|
31
31
|
export declare const exportToClipboard: (opts: ExportOpts & {
|
|
32
32
|
mimeType?: string;
|
|
@@ -46,13 +46,13 @@ export declare const getClosedCurveShape: <Point extends GlobalPoint | LocalPoin
|
|
|
46
46
|
* @param gap Optional value to inflate the shape before testing
|
|
47
47
|
* @returns An array of intersections
|
|
48
48
|
*/
|
|
49
|
-
export declare const segmentIntersectRectangleElement: <Point extends
|
|
50
|
-
export declare const pointOnEllipse: <Point extends
|
|
51
|
-
export declare const pointInEllipse: <Point extends
|
|
52
|
-
export declare const ellipseAxes: <Point extends
|
|
49
|
+
export declare const segmentIntersectRectangleElement: <Point extends LocalPoint | GlobalPoint>(element: ExcalidrawBindableElement, segment: LineSegment<Point>, gap?: number) => Point[];
|
|
50
|
+
export declare const pointOnEllipse: <Point extends LocalPoint | GlobalPoint>(point: Point, ellipse: Ellipse<Point>, threshold?: number) => boolean;
|
|
51
|
+
export declare const pointInEllipse: <Point extends LocalPoint | GlobalPoint>(p: Point, ellipse: Ellipse<Point>) => boolean;
|
|
52
|
+
export declare const ellipseAxes: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => {
|
|
53
53
|
majorAxis: number;
|
|
54
54
|
minorAxis: number;
|
|
55
55
|
};
|
|
56
|
-
export declare const ellipseFocusToCenter: <Point extends
|
|
57
|
-
export declare const ellipseExtremes: <Point extends
|
|
56
|
+
export declare const ellipseFocusToCenter: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => number;
|
|
57
|
+
export declare const ellipseExtremes: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => import("@excalidraw/math").Vector[];
|
|
58
58
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Bounds } from "@excalidraw/common";
|
|
2
2
|
import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
3
3
|
type Element = NonDeletedExcalidrawElement;
|
|
4
4
|
type Elements = readonly NonDeletedExcalidrawElement[];
|
|
@@ -8,7 +8,7 @@ export declare const elementsOverlappingBBox: ({ elements, bounds, type, errorMa
|
|
|
8
8
|
elements: Elements;
|
|
9
9
|
bounds: Bounds | ExcalidrawElement;
|
|
10
10
|
/** safety offset. Defaults to 0. */
|
|
11
|
-
errorMargin?: number
|
|
11
|
+
errorMargin?: number;
|
|
12
12
|
/**
|
|
13
13
|
* - overlap: elements overlapping or inside bounds
|
|
14
14
|
* - contain: elements inside bounds or bounds inside elements
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@excalidraw/math",
|
|
3
|
-
"version": "0.18.0-
|
|
3
|
+
"version": "0.18.0-7ea3229",
|
|
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
|
-
"@excalidraw/common": "0.18.0-
|
|
64
|
+
"@excalidraw/common": "0.18.0-7ea3229"
|
|
65
65
|
}
|
|
66
66
|
}
|