@excalidraw/math 0.18.0-7f66e1f → 0.18.0-816c81c
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 +3 -3
- package/dist/dev/index.js.map +2 -2
- package/dist/prod/index.js +1 -1
- package/dist/types/common/debug.d.ts +21 -0
- package/dist/types/common/src/appEventBus.d.ts +27 -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 +19 -11
- package/dist/types/common/src/editorInterface.d.ts +1 -1
- package/dist/types/common/src/font-metadata.d.ts +1 -3
- package/dist/types/common/src/index.d.ts +4 -1
- 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 +51 -40
- package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
- package/dist/types/element/src/Scene.d.ts +5 -3
- package/dist/types/element/src/arrowheads.d.ts +3 -0
- 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 +67 -48
- 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/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/elbowArrow.d.ts +2 -0
- 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 +21 -20
- package/dist/types/element/src/mutateElement.d.ts +5 -1
- package/dist/types/element/src/newElement.d.ts +6 -6
- package/dist/types/element/src/renderElement.d.ts +1 -7
- package/dist/types/element/src/resizeElements.d.ts +10 -10
- package/dist/types/element/src/resizeTest.d.ts +1 -1
- 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/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 +3 -23
- package/dist/types/element/src/typeChecks.d.ts +4 -7
- package/dist/types/element/src/types.d.ts +12 -13
- 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 +149 -201
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +77 -112
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +460 -857
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +111 -903
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +37 -55
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +123 -179
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +47 -71
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +76 -111
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +53 -71
- package/dist/types/excalidraw/actions/actionExport.d.ts +157 -1425
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -402
- package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionFrame.d.ts +233 -340
- package/dist/types/excalidraw/actions/actionGroup.d.ts +80 -123
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +129 -185
- package/dist/types/excalidraw/actions/actionLink.d.ts +55 -73
- package/dist/types/excalidraw/actions/actionMenu.d.ts +41 -65
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -367
- package/dist/types/excalidraw/actions/actionProperties.d.ts +137 -2563
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +40 -62
- package/dist/types/excalidraw/actions/actionStyles.d.ts +36 -54
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +53 -71
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +53 -71
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +41 -65
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +52 -70
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +53 -71
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +53 -71
- package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -9
- package/dist/types/excalidraw/actions/index.d.ts +2 -0
- 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 +23 -20
- package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
- package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
- package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
- package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
- package/dist/types/excalidraw/charts/index.d.ts +7 -0
- package/dist/types/excalidraw/clipboard.d.ts +13 -38
- package/dist/types/excalidraw/components/Actions.d.ts +1 -1
- package/dist/types/excalidraw/components/App.d.ts +83 -56
- package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
- 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/colorPickerUtils.d.ts +0 -1
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
- 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/EyeDropper.d.ts +0 -1
- package/dist/types/excalidraw/components/FilledButton.d.ts +1 -0
- 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/IconPicker.d.ts +14 -9
- package/dist/types/excalidraw/components/InlineIcon.d.ts +2 -2
- 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/LibraryUnit.d.ts +2 -3
- package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -1
- 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/PasteChartDialog.d.ts +4 -5
- package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -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/CodeMirrorEditor.d.ts +11 -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/TTDDialogInput.d.ts +3 -3
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -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/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/mermaid-lang-lite.d.ts +2 -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/chat.d.ts +10 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
- package/dist/types/excalidraw/components/Toast.d.ts +11 -7
- package/dist/types/excalidraw/components/Trans.d.ts +2 -2
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +48 -38
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -6
- 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 +39 -21
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +19 -2
- package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -32
- package/dist/types/excalidraw/components/shapes.d.ts +74 -1
- package/dist/types/excalidraw/data/blob.d.ts +326 -7
- 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 +5 -7
- package/dist/types/excalidraw/data/index.d.ts +4 -5
- package/dist/types/excalidraw/data/json.d.ts +170 -4
- package/dist/types/excalidraw/data/library.d.ts +24 -9
- package/dist/types/excalidraw/data/resave.d.ts +7 -2
- package/dist/types/excalidraw/data/restore.d.ts +25 -10
- package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
- package/dist/types/excalidraw/errors.d.ts +14 -0
- package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +1 -2
- package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
- package/dist/types/excalidraw/i18n.d.ts +2 -2
- package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -6
- 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 +11 -2
- 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 +105 -20
- 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 +3 -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
- package/dist/types/common/src/visualdebug.d.ts +0 -41
- package/dist/types/excalidraw/charts.d.ts +0 -27
- package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
- package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -16
- package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -8
- package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -22
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -85
- package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
- package/dist/types/excalidraw/index.d.ts +0 -46
- package/dist/types/excalidraw/polyfill.d.ts +0 -2
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import type { IMAGE_MIME_TYPES, UserIdleState, throttleRAF, MIME_TYPES, EditorInterface } from "@excalidraw/common";
|
|
2
|
-
import type { SuggestedBinding } from "@excalidraw/element";
|
|
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,
|
|
4
|
+
import type { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, 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";
|
|
11
11
|
import type App from "./components/App";
|
|
12
12
|
import type Library from "./data/library";
|
|
13
|
-
import type { FileSystemHandle } from "./data/filesystem";
|
|
14
13
|
import type { ContextMenuItems } from "./components/ContextMenu";
|
|
15
14
|
import type { SnapLine } from "./snapping";
|
|
16
15
|
import type { ImportedDataState } from "./data/types";
|
|
@@ -18,6 +17,7 @@ import type { Language } from "./i18n";
|
|
|
18
17
|
import type { isOverScrollBars } from "./scene/scrollbars";
|
|
19
18
|
import type React from "react";
|
|
20
19
|
import type { JSX } from "react";
|
|
20
|
+
export type { App };
|
|
21
21
|
export type SocketId = string & {
|
|
22
22
|
_brand: "SocketId";
|
|
23
23
|
};
|
|
@@ -125,16 +125,20 @@ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
|
125
125
|
frameRendering: AppState["frameRendering"];
|
|
126
126
|
currentHoveredFontFamily: AppState["currentHoveredFontFamily"];
|
|
127
127
|
hoveredElementIds: AppState["hoveredElementIds"];
|
|
128
|
+
suggestedBinding: AppState["suggestedBinding"];
|
|
128
129
|
croppingElementId: AppState["croppingElementId"];
|
|
129
130
|
}>;
|
|
130
131
|
export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
132
|
+
activeTool: AppState["activeTool"];
|
|
131
133
|
activeEmbeddable: AppState["activeEmbeddable"];
|
|
132
134
|
selectionElement: AppState["selectionElement"];
|
|
133
135
|
selectedGroupIds: AppState["selectedGroupIds"];
|
|
134
136
|
selectedLinearElement: AppState["selectedLinearElement"];
|
|
135
137
|
multiElement: AppState["multiElement"];
|
|
138
|
+
newElement: AppState["newElement"];
|
|
136
139
|
isBindingEnabled: AppState["isBindingEnabled"];
|
|
137
|
-
|
|
140
|
+
isMidpointSnappingEnabled: AppState["isMidpointSnappingEnabled"];
|
|
141
|
+
suggestedBinding: AppState["suggestedBinding"];
|
|
138
142
|
isRotating: AppState["isRotating"];
|
|
139
143
|
elementsToHighlight: AppState["elementsToHighlight"];
|
|
140
144
|
collaborators: AppState["collaborators"];
|
|
@@ -145,6 +149,11 @@ 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"];
|
|
156
|
+
currentItemArrowType: AppState["currentItemArrowType"];
|
|
148
157
|
}>;
|
|
149
158
|
export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
|
|
150
159
|
export type ObservedStandaloneAppState = {
|
|
@@ -196,9 +205,20 @@ export interface AppState {
|
|
|
196
205
|
* - set on pointer down, updated during pointer move
|
|
197
206
|
*/
|
|
198
207
|
selectionElement: NonDeletedExcalidrawElement | null;
|
|
208
|
+
/**
|
|
209
|
+
* tracking current arrow binding editor state (takes into account
|
|
210
|
+
* `bindingPreference` and keyboard modifiers (ctrl/alt)
|
|
211
|
+
*/
|
|
199
212
|
isBindingEnabled: boolean;
|
|
213
|
+
/** user arrow binding preference */
|
|
214
|
+
bindingPreference: "enabled" | "disabled";
|
|
215
|
+
/** user preference whether arrow snap to midpoints while binding */
|
|
216
|
+
isMidpointSnappingEnabled: boolean;
|
|
200
217
|
startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
|
|
201
|
-
|
|
218
|
+
suggestedBinding: {
|
|
219
|
+
element: NonDeleted<ExcalidrawBindableElement>;
|
|
220
|
+
midPoint?: GlobalPoint;
|
|
221
|
+
} | null;
|
|
202
222
|
frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
203
223
|
frameRendering: {
|
|
204
224
|
enabled: boolean;
|
|
@@ -268,9 +288,15 @@ export interface AppState {
|
|
|
268
288
|
tab: "text-to-diagram" | "mermaid";
|
|
269
289
|
} | {
|
|
270
290
|
name: "commandPalette";
|
|
291
|
+
} | {
|
|
292
|
+
name: "settings";
|
|
271
293
|
} | {
|
|
272
294
|
name: "elementLinkSelector";
|
|
273
295
|
sourceElementId: ExcalidrawElement["id"];
|
|
296
|
+
} | {
|
|
297
|
+
name: "charts";
|
|
298
|
+
data: Spreadsheet;
|
|
299
|
+
rawText: string;
|
|
274
300
|
};
|
|
275
301
|
/**
|
|
276
302
|
* Reflects user preference for whether the default sidebar should be docked.
|
|
@@ -293,7 +319,7 @@ export interface AppState {
|
|
|
293
319
|
selectedElementsAreBeingDragged: boolean;
|
|
294
320
|
shouldCacheIgnoreZoom: boolean;
|
|
295
321
|
toast: {
|
|
296
|
-
message:
|
|
322
|
+
message: React.ReactNode;
|
|
297
323
|
closable?: boolean;
|
|
298
324
|
duration?: number;
|
|
299
325
|
} | null;
|
|
@@ -315,21 +341,13 @@ export interface AppState {
|
|
|
315
341
|
height: number;
|
|
316
342
|
offsetTop: number;
|
|
317
343
|
offsetLeft: number;
|
|
318
|
-
fileHandle:
|
|
344
|
+
fileHandle: FileSystemFileHandle | null;
|
|
319
345
|
collaborators: Map<SocketId, Collaborator>;
|
|
320
346
|
stats: {
|
|
321
347
|
open: boolean;
|
|
322
348
|
/** bitmap. Use `STATS_PANELS` bit values */
|
|
323
349
|
panels: number;
|
|
324
350
|
};
|
|
325
|
-
currentChartType: ChartType;
|
|
326
|
-
pasteDialog: {
|
|
327
|
-
shown: false;
|
|
328
|
-
data: null;
|
|
329
|
-
} | {
|
|
330
|
-
shown: true;
|
|
331
|
-
data: Spreadsheet;
|
|
332
|
-
};
|
|
333
351
|
showHyperlinkPopup: false | "info" | "editor";
|
|
334
352
|
selectedLinearElement: LinearElementEditor | null;
|
|
335
353
|
snapLines: readonly SnapLine[];
|
|
@@ -355,6 +373,7 @@ export interface AppState {
|
|
|
355
373
|
lockedMultiSelections: {
|
|
356
374
|
[groupId: string]: true;
|
|
357
375
|
};
|
|
376
|
+
bindMode: BindMode;
|
|
358
377
|
}
|
|
359
378
|
export type SearchMatch = {
|
|
360
379
|
id: string;
|
|
@@ -367,7 +386,7 @@ export type SearchMatch = {
|
|
|
367
386
|
showOnCanvas: boolean;
|
|
368
387
|
}[];
|
|
369
388
|
};
|
|
370
|
-
export type UIAppState = Omit<AppState, "
|
|
389
|
+
export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
|
|
371
390
|
export type NormalizedZoomValue = number & {
|
|
372
391
|
_brand: "normalizedZoom";
|
|
373
392
|
};
|
|
@@ -415,11 +434,36 @@ export type OnUserFollowedPayload = {
|
|
|
415
434
|
userToFollow: UserToFollow;
|
|
416
435
|
action: "FOLLOW" | "UNFOLLOW";
|
|
417
436
|
};
|
|
437
|
+
export type OnExportProgress = {
|
|
438
|
+
type: "progress";
|
|
439
|
+
message?: React.ReactNode;
|
|
440
|
+
/** 0-1 range */
|
|
441
|
+
progress?: number;
|
|
442
|
+
};
|
|
418
443
|
export interface ExcalidrawProps {
|
|
419
444
|
onChange?: (elements: readonly OrderedExcalidrawElement[], appState: AppState, files: BinaryFiles) => void;
|
|
445
|
+
/**
|
|
446
|
+
* note: only subscribes if the props.onIncrement is defined on initial render
|
|
447
|
+
*/
|
|
420
448
|
onIncrement?: (event: DurableIncrement | EphemeralIncrement) => void;
|
|
421
449
|
initialData?: (() => MaybePromise<ExcalidrawInitialDataState | null>) | MaybePromise<ExcalidrawInitialDataState | null>;
|
|
422
|
-
|
|
450
|
+
/**
|
|
451
|
+
* Invoked as soon as the Excalidraw API is available
|
|
452
|
+
* NOTE editor is not yet mounted, and state is not yet initialized
|
|
453
|
+
*/
|
|
454
|
+
onExcalidrawAPI?: (api: ExcalidrawImperativeAPI | null) => void;
|
|
455
|
+
/**
|
|
456
|
+
* Invoked once the editor root is mounted.
|
|
457
|
+
*/
|
|
458
|
+
onMount?: (payload: ExcalidrawMountPayload) => void;
|
|
459
|
+
/**
|
|
460
|
+
* Invoked when the editor root is unmounted.
|
|
461
|
+
*/
|
|
462
|
+
onUnmount?: () => void;
|
|
463
|
+
/**
|
|
464
|
+
* Invoked once the initial scene is loaded.
|
|
465
|
+
*/
|
|
466
|
+
onInitialize?: (api: ExcalidrawImperativeAPI) => void;
|
|
423
467
|
isCollaborating?: boolean;
|
|
424
468
|
onPointerUpdate?: (payload: {
|
|
425
469
|
pointer: {
|
|
@@ -476,6 +520,29 @@ export interface ExcalidrawProps {
|
|
|
476
520
|
aiEnabled?: boolean;
|
|
477
521
|
showDeprecatedFonts?: boolean;
|
|
478
522
|
renderScrollbars?: boolean;
|
|
523
|
+
/**
|
|
524
|
+
* Called before exporting to a file.
|
|
525
|
+
*
|
|
526
|
+
* Allows the host app to intercept and delay saving until async operations
|
|
527
|
+
* (e.g., images are loaded) complete.
|
|
528
|
+
*
|
|
529
|
+
* If Promise/AsyncGenerator is returned, a progress toast will be shown
|
|
530
|
+
* until the operation completes. Generator can yield progress updates.
|
|
531
|
+
*/
|
|
532
|
+
onExport?: (
|
|
533
|
+
/** type of export. Currently we only call for JSON exports or
|
|
534
|
+
* JSON-embedded PNG (which is also identified as `json` type here)*/
|
|
535
|
+
type: "json", data: {
|
|
536
|
+
elements: readonly ExcalidrawElement[];
|
|
537
|
+
appState: AppState;
|
|
538
|
+
files: BinaryFiles;
|
|
539
|
+
}, options: {
|
|
540
|
+
/** signal that gets aborted if user cancels the export (e.g. closes
|
|
541
|
+
* the native file picker dialog). In that case, you can either
|
|
542
|
+
* return immediately, or throw AbortError.
|
|
543
|
+
*/
|
|
544
|
+
signal: AbortSignal;
|
|
545
|
+
}) => MaybePromise<void> | AsyncGenerator<OnExportProgress, void>;
|
|
479
546
|
}
|
|
480
547
|
export type SceneData = {
|
|
481
548
|
elements?: ImportedDataState["elements"];
|
|
@@ -507,8 +574,7 @@ export type UIOptions = Partial<{
|
|
|
507
574
|
* Optionally control the editor form factor and desktop UI mode from the host app.
|
|
508
575
|
* If not provided, we will take care of it internally.
|
|
509
576
|
*/
|
|
510
|
-
|
|
511
|
-
desktopUIMode?: EditorInterface["desktopUIMode"];
|
|
577
|
+
getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
|
|
512
578
|
/** @deprecated does nothing. Will be removed in 0.15 */
|
|
513
579
|
welcomeScreen?: boolean;
|
|
514
580
|
}>;
|
|
@@ -529,6 +595,8 @@ export type AppProps = Merge<ExcalidrawProps, {
|
|
|
529
595
|
export type AppClassProperties = {
|
|
530
596
|
props: AppProps;
|
|
531
597
|
state: AppState;
|
|
598
|
+
api: App["api"];
|
|
599
|
+
sessionExportThemeOverride: App["sessionExportThemeOverride"];
|
|
532
600
|
interactiveCanvas: HTMLCanvasElement | null;
|
|
533
601
|
/** static canvas */
|
|
534
602
|
canvas: HTMLCanvasElement;
|
|
@@ -569,6 +637,11 @@ export type AppClassProperties = {
|
|
|
569
637
|
onPointerUpEmitter: App["onPointerUpEmitter"];
|
|
570
638
|
updateEditorAtom: App["updateEditorAtom"];
|
|
571
639
|
onPointerDownEmitter: App["onPointerDownEmitter"];
|
|
640
|
+
onEvent: App["onEvent"];
|
|
641
|
+
onStateChange: App["onStateChange"];
|
|
642
|
+
lastPointerMoveCoords: App["lastPointerMoveCoords"];
|
|
643
|
+
bindModeHandler: App["bindModeHandler"];
|
|
644
|
+
setAppState: App["setAppState"];
|
|
572
645
|
};
|
|
573
646
|
export type PointerDownState = Readonly<{
|
|
574
647
|
origin: Readonly<{
|
|
@@ -629,7 +702,18 @@ export type PointerDownState = Readonly<{
|
|
|
629
702
|
};
|
|
630
703
|
}>;
|
|
631
704
|
export type UnsubscribeCallback = () => void;
|
|
705
|
+
export type ExcalidrawMountPayload = {
|
|
706
|
+
excalidrawAPI: ExcalidrawImperativeAPI;
|
|
707
|
+
container: HTMLDivElement | null;
|
|
708
|
+
};
|
|
709
|
+
export type ExcalidrawImperativeAPIEventMap = {
|
|
710
|
+
"editor:mount": [payload: ExcalidrawMountPayload];
|
|
711
|
+
"editor:initialize": [api: ExcalidrawImperativeAPI];
|
|
712
|
+
"editor:unmount": [];
|
|
713
|
+
};
|
|
632
714
|
export interface ExcalidrawImperativeAPI {
|
|
715
|
+
/** Whether the editor has been unmounted and the API is no longer usable. */
|
|
716
|
+
isDestroyed: boolean;
|
|
633
717
|
updateScene: InstanceType<typeof App>["updateScene"];
|
|
634
718
|
applyDeltas: InstanceType<typeof App>["applyDeltas"];
|
|
635
719
|
mutateElement: InstanceType<typeof App>["mutateElement"];
|
|
@@ -667,6 +751,8 @@ export interface ExcalidrawImperativeAPI {
|
|
|
667
751
|
onPointerUp: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: PointerEvent) => void) => UnsubscribeCallback;
|
|
668
752
|
onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
|
|
669
753
|
onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
|
|
754
|
+
onStateChange: InstanceType<typeof App>["onStateChange"];
|
|
755
|
+
onEvent: InstanceType<typeof App>["onEvent"];
|
|
670
756
|
}
|
|
671
757
|
export type FrameNameBounds = {
|
|
672
758
|
x: number;
|
|
@@ -707,4 +793,3 @@ export type Offsets = Partial<{
|
|
|
707
793
|
bottom: number;
|
|
708
794
|
left: number;
|
|
709
795
|
}>;
|
|
710
|
-
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
|
*
|
|
@@ -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-816c81c",
|
|
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-816c81c"
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
|
|
2
|
-
import type { Curve } from "@excalidraw/math";
|
|
3
|
-
import type { LineSegment } from "@excalidraw/utils";
|
|
4
|
-
import type { Bounds } from "@excalidraw/element";
|
|
5
|
-
declare global {
|
|
6
|
-
interface Window {
|
|
7
|
-
visualDebug?: {
|
|
8
|
-
data: DebugElement[][];
|
|
9
|
-
currentFrame?: number;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
export type DebugElement = {
|
|
14
|
-
color: string;
|
|
15
|
-
data: LineSegment<GlobalPoint> | Curve<GlobalPoint>;
|
|
16
|
-
permanent: boolean;
|
|
17
|
-
};
|
|
18
|
-
export declare const debugDrawCubicBezier: (c: Curve<GlobalPoint>, opts?: {
|
|
19
|
-
color?: string;
|
|
20
|
-
permanent?: boolean;
|
|
21
|
-
}) => void;
|
|
22
|
-
export declare const debugDrawLine: (segment: LineSegment<GlobalPoint> | LineSegment<GlobalPoint>[], opts?: {
|
|
23
|
-
color?: string;
|
|
24
|
-
permanent?: boolean;
|
|
25
|
-
}) => void;
|
|
26
|
-
export declare const debugDrawPoint: (p: GlobalPoint, opts?: {
|
|
27
|
-
color?: string;
|
|
28
|
-
permanent?: boolean;
|
|
29
|
-
fuzzy?: boolean;
|
|
30
|
-
}) => void;
|
|
31
|
-
export declare const debugDrawBounds: (box: Bounds | Bounds[], opts?: {
|
|
32
|
-
color?: string;
|
|
33
|
-
permanent?: boolean;
|
|
34
|
-
}) => void;
|
|
35
|
-
export declare const debugDrawPoints: ({ x, y, points, }: {
|
|
36
|
-
x: number;
|
|
37
|
-
y: number;
|
|
38
|
-
points: LocalPoint[];
|
|
39
|
-
}, options?: any) => void;
|
|
40
|
-
export declare const debugCloseFrame: () => void;
|
|
41
|
-
export declare const debugClear: () => void;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import type { NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
2
|
-
export type ChartElements = readonly NonDeletedExcalidrawElement[];
|
|
3
|
-
export interface Spreadsheet {
|
|
4
|
-
title: string | null;
|
|
5
|
-
labels: string[] | null;
|
|
6
|
-
values: number[];
|
|
7
|
-
}
|
|
8
|
-
export declare const NOT_SPREADSHEET = "NOT_SPREADSHEET";
|
|
9
|
-
export declare const VALID_SPREADSHEET = "VALID_SPREADSHEET";
|
|
10
|
-
type ParseSpreadsheetResult = {
|
|
11
|
-
type: typeof NOT_SPREADSHEET;
|
|
12
|
-
reason: string;
|
|
13
|
-
} | {
|
|
14
|
-
type: typeof VALID_SPREADSHEET;
|
|
15
|
-
spreadsheet: Spreadsheet;
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* @private exported for testing
|
|
19
|
-
*/
|
|
20
|
-
export declare const tryParseNumber: (s: string) => number | null;
|
|
21
|
-
/**
|
|
22
|
-
* @private exported for testing
|
|
23
|
-
*/
|
|
24
|
-
export declare const tryParseCells: (cells: string[][]) => ParseSpreadsheetResult;
|
|
25
|
-
export declare const tryParseSpreadsheet: (text: string) => ParseSpreadsheetResult;
|
|
26
|
-
export declare const renderSpreadsheet: (chartType: string, spreadsheet: Spreadsheet, x: number, y: number) => ChartElements;
|
|
27
|
-
export {};
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import "./ExcalidrawLogo.scss";
|
|
3
|
-
type LogoSize = "xs" | "small" | "normal" | "large" | "custom" | "mobile";
|
|
4
|
-
interface LogoProps {
|
|
5
|
-
size?: LogoSize;
|
|
6
|
-
withText?: boolean;
|
|
7
|
-
style?: React.CSSProperties;
|
|
8
|
-
/**
|
|
9
|
-
* If true, the logo will not be wrapped in a Link component.
|
|
10
|
-
* The link prop will be ignored as well.
|
|
11
|
-
* It will merely be a plain div.
|
|
12
|
-
*/
|
|
13
|
-
isNotLink?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export declare const ExcalidrawLogo: ({ style, size, withText, }: LogoProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export {};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { Theme } from "@excalidraw/element/types";
|
|
3
|
-
import type { Language } from "../i18n";
|
|
4
|
-
interface Props {
|
|
5
|
-
langCode: Language["code"];
|
|
6
|
-
children: React.ReactElement;
|
|
7
|
-
theme?: Theme;
|
|
8
|
-
}
|
|
9
|
-
export declare const InitializeApp: (props: Props) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
export {};
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { type EditorInterface } from "@excalidraw/common";
|
|
3
|
-
import "./LiveCollaborationTrigger.scss";
|
|
4
|
-
declare const LiveCollaborationTrigger: {
|
|
5
|
-
({ isCollaborating, onSelect, editorInterface, ...rest }: {
|
|
6
|
-
isCollaborating: boolean;
|
|
7
|
-
onSelect: () => void;
|
|
8
|
-
editorInterface?: Readonly<{
|
|
9
|
-
formFactor: "phone" | "tablet" | "desktop";
|
|
10
|
-
desktopUIMode: "compact" | "full";
|
|
11
|
-
userAgent: Readonly<{
|
|
12
|
-
isMobileDevice: boolean;
|
|
13
|
-
platform: "other" | "ios" | "android" | "unknown";
|
|
14
|
-
}>;
|
|
15
|
-
isTouchScreen: boolean;
|
|
16
|
-
canFitSidebar: boolean;
|
|
17
|
-
isLandscape: boolean;
|
|
18
|
-
}> | undefined;
|
|
19
|
-
} & import("react").ButtonHTMLAttributes<HTMLButtonElement>): import("react/jsx-runtime").JSX.Element;
|
|
20
|
-
displayName: string;
|
|
21
|
-
};
|
|
22
|
-
export default LiveCollaborationTrigger;
|