@excalidraw/math 0.18.0-a8acc82 → 0.18.0-a9ca16e
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 +9 -4
- 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 +23 -27
- 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 +5 -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 +53 -42
- 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 +6 -5
- package/dist/types/element/src/selection.d.ts +8 -8
- package/dist/types/element/src/shape.d.ts +8 -7
- package/dist/types/element/src/textElement.d.ts +1 -1
- package/dist/types/element/src/textMeasurements.d.ts +1 -3
- package/dist/types/element/src/textWrapping.d.ts +26 -0
- 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 +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 +167 -210
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +92 -121
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +544 -902
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +123 -897
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +44 -59
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +145 -192
- 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 +53 -74
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +90 -119
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionExport.d.ts +171 -1412
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -396
- package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionFrame.d.ts +261 -356
- package/dist/types/excalidraw/actions/actionGroup.d.ts +95 -132
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +136 -189
- package/dist/types/excalidraw/actions/actionLink.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionMenu.d.ts +48 -437
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -361
- package/dist/types/excalidraw/actions/actionProperties.d.ts +152 -2533
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +47 -66
- package/dist/types/excalidraw/actions/actionStyles.d.ts +44 -58
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +4 -4
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +47 -68
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +58 -73
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -9
- package/dist/types/excalidraw/actions/index.d.ts +3 -1
- 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 +28 -22
- 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 +14 -4
- package/dist/types/excalidraw/components/App.d.ts +109 -70
- 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 +1 -3
- 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/EyeDropper.d.ts +0 -1
- package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +2 -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/IconPicker.d.ts +14 -9
- 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/PasteChartDialog.d.ts +4 -5
- package/dist/types/excalidraw/components/Popover.d.ts +2 -1
- 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/Range.d.ts +10 -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/TextField.d.ts +1 -0
- package/dist/types/excalidraw/components/Toast.d.ts +11 -7
- 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 +7 -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 +44 -22
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +19 -2
- package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
- 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/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/i18n.d.ts +2 -2
- 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/textAutoResizeHandle.d.ts +15 -0
- package/dist/types/excalidraw/types.d.ts +120 -36
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +7 -3
- package/dist/types/math/src/point.d.ts +7 -2
- 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/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 -9
- package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -10
- 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 -47
- package/dist/types/excalidraw/polyfill.d.ts +0 -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;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type GlobalPoint } from "@excalidraw/math";
|
|
2
|
+
import type { EditorInterface } from "@excalidraw/common";
|
|
3
|
+
import type { ExcalidrawTextElement } from "@excalidraw/element/types";
|
|
4
|
+
export declare const getTextBoxPadding: (zoomValue: number) => number;
|
|
5
|
+
export declare const getTextAutoResizeHandle: (textElement: ExcalidrawTextElement, zoomValue: number, formFactor: EditorInterface["formFactor"]) => {
|
|
6
|
+
center: GlobalPoint | import("@excalidraw/math").LocalPoint;
|
|
7
|
+
start: GlobalPoint;
|
|
8
|
+
end: GlobalPoint;
|
|
9
|
+
hitboxWidth: number;
|
|
10
|
+
hitboxHeight: number;
|
|
11
|
+
} | null;
|
|
12
|
+
export declare const isPointHittingTextAutoResizeHandle: (point: Readonly<{
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
}>, textElement: ExcalidrawTextElement, zoomValue: number, formFactor: EditorInterface["formFactor"]) => boolean;
|
|
@@ -1,16 +1,15 @@
|
|
|
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,
|
|
4
|
+
import type { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead, FontFamilyValues, FileId, Theme, StrokeRoundness, ExcalidrawEmbeddableElement, ExcalidrawMagicFrameElement, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeLikeElement, OrderedExcalidrawElement, ExcalidrawNonSelectionElement, BindMode, ExcalidrawTextElement } 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;
|
|
@@ -211,7 +231,7 @@ export interface AppState {
|
|
|
211
231
|
/**
|
|
212
232
|
* set when a new text is created or when an existing text is being edited
|
|
213
233
|
*/
|
|
214
|
-
editingTextElement:
|
|
234
|
+
editingTextElement: ExcalidrawTextElement | null;
|
|
215
235
|
activeTool: {
|
|
216
236
|
/**
|
|
217
237
|
* indicates a previous tool we should revert back to if we deselect the
|
|
@@ -221,6 +241,10 @@ export interface AppState {
|
|
|
221
241
|
locked: boolean;
|
|
222
242
|
fromSelection: boolean;
|
|
223
243
|
} & ActiveTool;
|
|
244
|
+
preferredSelectionTool: {
|
|
245
|
+
type: "selection" | "lasso";
|
|
246
|
+
initialized: boolean;
|
|
247
|
+
};
|
|
224
248
|
penMode: boolean;
|
|
225
249
|
penDetected: boolean;
|
|
226
250
|
exportBackground: boolean;
|
|
@@ -251,7 +275,7 @@ export interface AppState {
|
|
|
251
275
|
isResizing: boolean;
|
|
252
276
|
isRotating: boolean;
|
|
253
277
|
zoom: Zoom;
|
|
254
|
-
openMenu: "canvas" |
|
|
278
|
+
openMenu: "canvas" | null;
|
|
255
279
|
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
256
280
|
openSidebar: {
|
|
257
281
|
name: SidebarName;
|
|
@@ -264,9 +288,15 @@ export interface AppState {
|
|
|
264
288
|
tab: "text-to-diagram" | "mermaid";
|
|
265
289
|
} | {
|
|
266
290
|
name: "commandPalette";
|
|
291
|
+
} | {
|
|
292
|
+
name: "settings";
|
|
267
293
|
} | {
|
|
268
294
|
name: "elementLinkSelector";
|
|
269
295
|
sourceElementId: ExcalidrawElement["id"];
|
|
296
|
+
} | {
|
|
297
|
+
name: "charts";
|
|
298
|
+
data: Spreadsheet;
|
|
299
|
+
rawText: string;
|
|
270
300
|
};
|
|
271
301
|
/**
|
|
272
302
|
* Reflects user preference for whether the default sidebar should be docked.
|
|
@@ -289,7 +319,7 @@ export interface AppState {
|
|
|
289
319
|
selectedElementsAreBeingDragged: boolean;
|
|
290
320
|
shouldCacheIgnoreZoom: boolean;
|
|
291
321
|
toast: {
|
|
292
|
-
message:
|
|
322
|
+
message: React.ReactNode;
|
|
293
323
|
closable?: boolean;
|
|
294
324
|
duration?: number;
|
|
295
325
|
} | null;
|
|
@@ -311,21 +341,13 @@ export interface AppState {
|
|
|
311
341
|
height: number;
|
|
312
342
|
offsetTop: number;
|
|
313
343
|
offsetLeft: number;
|
|
314
|
-
fileHandle:
|
|
344
|
+
fileHandle: FileSystemFileHandle | null;
|
|
315
345
|
collaborators: Map<SocketId, Collaborator>;
|
|
316
346
|
stats: {
|
|
317
347
|
open: boolean;
|
|
318
348
|
/** bitmap. Use `STATS_PANELS` bit values */
|
|
319
349
|
panels: number;
|
|
320
350
|
};
|
|
321
|
-
currentChartType: ChartType;
|
|
322
|
-
pasteDialog: {
|
|
323
|
-
shown: false;
|
|
324
|
-
data: null;
|
|
325
|
-
} | {
|
|
326
|
-
shown: true;
|
|
327
|
-
data: Spreadsheet;
|
|
328
|
-
};
|
|
329
351
|
showHyperlinkPopup: false | "info" | "editor";
|
|
330
352
|
selectedLinearElement: LinearElementEditor | null;
|
|
331
353
|
snapLines: readonly SnapLine[];
|
|
@@ -351,8 +373,7 @@ export interface AppState {
|
|
|
351
373
|
lockedMultiSelections: {
|
|
352
374
|
[groupId: string]: true;
|
|
353
375
|
};
|
|
354
|
-
|
|
355
|
-
stylesPanelMode: "compact" | "full";
|
|
376
|
+
bindMode: BindMode;
|
|
356
377
|
}
|
|
357
378
|
export type SearchMatch = {
|
|
358
379
|
id: string;
|
|
@@ -365,7 +386,7 @@ export type SearchMatch = {
|
|
|
365
386
|
showOnCanvas: boolean;
|
|
366
387
|
}[];
|
|
367
388
|
};
|
|
368
|
-
export type UIAppState = Omit<AppState, "
|
|
389
|
+
export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
|
|
369
390
|
export type NormalizedZoomValue = number & {
|
|
370
391
|
_brand: "normalizedZoom";
|
|
371
392
|
};
|
|
@@ -413,11 +434,36 @@ export type OnUserFollowedPayload = {
|
|
|
413
434
|
userToFollow: UserToFollow;
|
|
414
435
|
action: "FOLLOW" | "UNFOLLOW";
|
|
415
436
|
};
|
|
437
|
+
export type OnExportProgress = {
|
|
438
|
+
type: "progress";
|
|
439
|
+
message?: React.ReactNode;
|
|
440
|
+
/** 0-1 range */
|
|
441
|
+
progress?: number;
|
|
442
|
+
};
|
|
416
443
|
export interface ExcalidrawProps {
|
|
417
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
|
+
*/
|
|
418
448
|
onIncrement?: (event: DurableIncrement | EphemeralIncrement) => void;
|
|
419
449
|
initialData?: (() => MaybePromise<ExcalidrawInitialDataState | null>) | MaybePromise<ExcalidrawInitialDataState | null>;
|
|
420
|
-
|
|
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;
|
|
421
467
|
isCollaborating?: boolean;
|
|
422
468
|
onPointerUpdate?: (payload: {
|
|
423
469
|
pointer: {
|
|
@@ -443,6 +489,7 @@ export interface ExcalidrawProps {
|
|
|
443
489
|
onDuplicate?: (nextElements: readonly ExcalidrawElement[],
|
|
444
490
|
/** excludes the duplicated elements */
|
|
445
491
|
prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
|
|
492
|
+
renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
446
493
|
renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
447
494
|
langCode?: Language["code"];
|
|
448
495
|
viewModeEnabled?: boolean;
|
|
@@ -473,6 +520,29 @@ export interface ExcalidrawProps {
|
|
|
473
520
|
aiEnabled?: boolean;
|
|
474
521
|
showDeprecatedFonts?: boolean;
|
|
475
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>;
|
|
476
546
|
}
|
|
477
547
|
export type SceneData = {
|
|
478
548
|
elements?: ImportedDataState["elements"];
|
|
@@ -500,6 +570,11 @@ export type UIOptions = Partial<{
|
|
|
500
570
|
tools: {
|
|
501
571
|
image: boolean;
|
|
502
572
|
};
|
|
573
|
+
/**
|
|
574
|
+
* Optionally control the editor form factor and desktop UI mode from the host app.
|
|
575
|
+
* If not provided, we will take care of it internally.
|
|
576
|
+
*/
|
|
577
|
+
getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
|
|
503
578
|
/** @deprecated does nothing. Will be removed in 0.15 */
|
|
504
579
|
welcomeScreen?: boolean;
|
|
505
580
|
}>;
|
|
@@ -520,6 +595,8 @@ export type AppProps = Merge<ExcalidrawProps, {
|
|
|
520
595
|
export type AppClassProperties = {
|
|
521
596
|
props: AppProps;
|
|
522
597
|
state: AppState;
|
|
598
|
+
api: App["api"];
|
|
599
|
+
sessionExportThemeOverride: App["sessionExportThemeOverride"];
|
|
523
600
|
interactiveCanvas: HTMLCanvasElement | null;
|
|
524
601
|
/** static canvas */
|
|
525
602
|
canvas: HTMLCanvasElement;
|
|
@@ -530,7 +607,7 @@ export type AppClassProperties = {
|
|
|
530
607
|
mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
|
|
531
608
|
}>;
|
|
532
609
|
files: BinaryFiles;
|
|
533
|
-
|
|
610
|
+
editorInterface: App["editorInterface"];
|
|
534
611
|
scene: App["scene"];
|
|
535
612
|
syncActionResult: App["syncActionResult"];
|
|
536
613
|
fonts: App["fonts"];
|
|
@@ -559,7 +636,12 @@ export type AppClassProperties = {
|
|
|
559
636
|
excalidrawContainerValue: App["excalidrawContainerValue"];
|
|
560
637
|
onPointerUpEmitter: App["onPointerUpEmitter"];
|
|
561
638
|
updateEditorAtom: App["updateEditorAtom"];
|
|
562
|
-
|
|
639
|
+
onPointerDownEmitter: App["onPointerDownEmitter"];
|
|
640
|
+
onEvent: App["onEvent"];
|
|
641
|
+
onStateChange: App["onStateChange"];
|
|
642
|
+
lastPointerMoveCoords: App["lastPointerMoveCoords"];
|
|
643
|
+
bindModeHandler: App["bindModeHandler"];
|
|
644
|
+
setAppState: App["setAppState"];
|
|
563
645
|
};
|
|
564
646
|
export type PointerDownState = Readonly<{
|
|
565
647
|
origin: Readonly<{
|
|
@@ -620,7 +702,18 @@ export type PointerDownState = Readonly<{
|
|
|
620
702
|
};
|
|
621
703
|
}>;
|
|
622
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
|
+
};
|
|
623
714
|
export interface ExcalidrawImperativeAPI {
|
|
715
|
+
/** Whether the editor has been unmounted and the API is no longer usable. */
|
|
716
|
+
isDestroyed: boolean;
|
|
624
717
|
updateScene: InstanceType<typeof App>["updateScene"];
|
|
625
718
|
applyDeltas: InstanceType<typeof App>["applyDeltas"];
|
|
626
719
|
mutateElement: InstanceType<typeof App>["mutateElement"];
|
|
@@ -645,6 +738,7 @@ export interface ExcalidrawImperativeAPI {
|
|
|
645
738
|
setCursor: InstanceType<typeof App>["setCursor"];
|
|
646
739
|
resetCursor: InstanceType<typeof App>["resetCursor"];
|
|
647
740
|
toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
|
|
741
|
+
getEditorInterface: () => EditorInterface;
|
|
648
742
|
/**
|
|
649
743
|
* Disables rendering of frames (including element clipping), but currently
|
|
650
744
|
* the frames are still interactive in edit mode. As such, this API should be
|
|
@@ -657,18 +751,9 @@ export interface ExcalidrawImperativeAPI {
|
|
|
657
751
|
onPointerUp: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: PointerEvent) => void) => UnsubscribeCallback;
|
|
658
752
|
onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
|
|
659
753
|
onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
|
|
754
|
+
onStateChange: InstanceType<typeof App>["onStateChange"];
|
|
755
|
+
onEvent: InstanceType<typeof App>["onEvent"];
|
|
660
756
|
}
|
|
661
|
-
export type Device = Readonly<{
|
|
662
|
-
viewport: {
|
|
663
|
-
isMobile: boolean;
|
|
664
|
-
isLandscape: boolean;
|
|
665
|
-
};
|
|
666
|
-
editor: {
|
|
667
|
-
isMobile: boolean;
|
|
668
|
-
canFitSidebar: boolean;
|
|
669
|
-
};
|
|
670
|
-
isTouchScreen: boolean;
|
|
671
|
-
}>;
|
|
672
757
|
export type FrameNameBounds = {
|
|
673
758
|
x: number;
|
|
674
759
|
y: number;
|
|
@@ -708,4 +793,3 @@ export type Offsets = Partial<{
|
|
|
708
793
|
bottom: number;
|
|
709
794
|
left: number;
|
|
710
795
|
}>;
|
|
711
|
-
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ExcalidrawElement, ExcalidrawTextElement } from "@excalidraw/element/types";
|
|
2
2
|
import type App from "../components/App";
|
|
3
3
|
type SubmitHandler = () => void;
|
|
4
|
-
export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, autoSelect, }: {
|
|
4
|
+
export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords, element, canvas, excalidrawContainer, app, autoSelect, initialCaretSceneCoords, }: {
|
|
5
5
|
id: ExcalidrawElement["id"];
|
|
6
6
|
/**
|
|
7
7
|
* textWysiwyg only deals with `originalText`
|
|
@@ -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,10 @@ 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
|
+
initialCaretSceneCoords?: {
|
|
24
|
+
x: number;
|
|
25
|
+
y: number;
|
|
26
|
+
} | null;
|
|
23
27
|
}) => SubmitHandler;
|
|
24
28
|
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
|
*
|
|
@@ -52,7 +57,7 @@ export declare function pointsEqual<Point extends GlobalPoint | LocalPoint>(a: P
|
|
|
52
57
|
* @param angle The radians to rotate the point by
|
|
53
58
|
* @returns The rotated point
|
|
54
59
|
*/
|
|
55
|
-
export declare function pointRotateRads<Point extends GlobalPoint | LocalPoint>(
|
|
60
|
+
export declare function pointRotateRads<Point extends GlobalPoint | LocalPoint>(point: Point, center: Point, angle: Radians): Point;
|
|
56
61
|
/**
|
|
57
62
|
* Rotate a point by [angle] degree.
|
|
58
63
|
*
|
|
@@ -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
|
*/
|