@excalidraw/math 0.18.0-c65b684e9 → 0.18.0-d1cff91
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev/index.js +60 -63
- package/dist/dev/index.js.map +3 -3
- package/dist/prod/index.js +1 -1
- package/dist/types/common/debug.d.ts +21 -0
- package/dist/types/common/src/bounds.d.ts +10 -0
- package/dist/types/common/src/colors.d.ts +59 -39
- package/dist/types/common/src/constants.d.ts +37 -26
- package/dist/types/common/src/editorInterface.d.ts +34 -0
- package/dist/types/common/src/font-metadata.d.ts +1 -3
- package/dist/types/common/src/index.d.ts +3 -0
- package/dist/types/common/src/keys.d.ts +1 -1
- package/dist/types/common/src/utility-types.d.ts +0 -1
- package/dist/types/common/src/utils.d.ts +52 -38
- package/dist/types/element/src/Scene.d.ts +11 -5
- 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/delta.d.ts +6 -4
- 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/positionElementsOnGrid.d.ts +2 -0
- package/dist/types/element/src/renderElement.d.ts +4 -7
- package/dist/types/element/src/resizeElements.d.ts +10 -10
- package/dist/types/element/src/resizeTest.d.ts +6 -5
- package/dist/types/element/src/selection.d.ts +3 -7
- package/dist/types/element/src/shape.d.ts +8 -7
- package/dist/types/element/src/store.d.ts +6 -1
- package/dist/types/element/src/textElement.d.ts +1 -1
- package/dist/types/element/src/textMeasurements.d.ts +1 -3
- package/dist/types/{excalidraw/data → element/src}/transform.d.ts +3 -3
- package/dist/types/element/src/transformHandles.d.ts +8 -27
- package/dist/types/element/src/typeChecks.d.ts +4 -7
- package/dist/types/element/src/types.d.ts +8 -12
- 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 +162 -202
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +85 -112
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +509 -866
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +119 -887
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +41 -55
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +136 -180
- 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 +51 -71
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +84 -111
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +57 -71
- package/dist/types/excalidraw/actions/actionExport.d.ts +181 -1141
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -394
- package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionFrame.d.ts +249 -340
- package/dist/types/excalidraw/actions/actionGroup.d.ts +88 -123
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +134 -186
- package/dist/types/excalidraw/actions/actionLink.d.ts +57 -71
- package/dist/types/excalidraw/actions/actionMenu.d.ts +46 -432
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
- package/dist/types/excalidraw/actions/actionProperties.d.ts +144 -2501
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +44 -62
- package/dist/types/excalidraw/actions/actionStyles.d.ts +41 -55
- 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 +57 -71
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +57 -71
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +45 -65
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +56 -70
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +57 -71
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +57 -71
- package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -9
- package/dist/types/excalidraw/actions/index.d.ts +4 -2
- package/dist/types/excalidraw/actions/register.d.ts +2 -2
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +4 -4
- package/dist/types/excalidraw/appState.d.ts +28 -21
- 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 +58 -19
- package/dist/types/excalidraw/components/Actions.d.ts +22 -5
- package/dist/types/excalidraw/components/App.d.ts +77 -68
- package/dist/types/excalidraw/components/Card.d.ts +1 -3
- package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +2 -0
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +2 -1
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +2 -1
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +0 -1
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +0 -1
- package/dist/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +1 -0
- package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +2 -2
- package/dist/types/excalidraw/components/DarkModeToggle.d.ts +1 -1
- package/dist/types/excalidraw/components/DefaultSidebar.d.ts +9 -13
- package/dist/types/excalidraw/components/ElementLinkDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/Ellipsify.d.ts +1 -2
- package/dist/types/excalidraw/components/ErrorDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +1 -2
- package/dist/types/excalidraw/components/EyeDropper.d.ts +0 -1
- package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/FontPicker.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +3 -1
- package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
- package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
- package/dist/types/excalidraw/components/InlineIcon.d.ts +3 -1
- package/dist/types/excalidraw/components/LayerUI.d.ts +2 -1
- package/dist/types/excalidraw/components/LibraryMenuControlButtons.d.ts +1 -1
- package/dist/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +1 -2
- package/dist/types/excalidraw/components/LibraryMenuSection.d.ts +1 -1
- package/dist/types/excalidraw/components/LibraryUnit.d.ts +2 -3
- package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
- package/dist/types/excalidraw/components/MobileMenu.d.ts +3 -5
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +10 -0
- package/dist/types/excalidraw/components/Modal.d.ts +0 -1
- package/dist/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +1 -1
- package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
- package/dist/types/excalidraw/components/Popover.d.ts +2 -1
- package/dist/types/excalidraw/components/PropertiesPopover.d.ts +2 -1
- package/dist/types/excalidraw/components/RadioGroup.d.ts +0 -1
- package/dist/types/excalidraw/components/RadioSelection.d.ts +4 -4
- package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +15 -21
- package/dist/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +1 -1
- package/dist/types/excalidraw/components/Sidebar/SidebarTab.d.ts +1 -2
- package/dist/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +1 -2
- package/dist/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +1 -2
- package/dist/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +1 -2
- package/dist/types/excalidraw/components/Spinner.d.ts +4 -4
- package/dist/types/excalidraw/components/Stats/CanvasGrid.d.ts +0 -1
- package/dist/types/excalidraw/components/Stats/Collapsible.d.ts +0 -1
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +0 -1
- package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
- package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
- package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +2 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +2 -3
- package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
- package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
- package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
- package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
- package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/TTDStreamFetch.d.ts +24 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
- package/dist/types/excalidraw/components/TextField.d.ts +1 -0
- package/dist/types/excalidraw/components/Toast.d.ts +3 -3
- package/dist/types/excalidraw/components/ToolPopover.d.ts +25 -0
- package/dist/types/excalidraw/components/Trans.d.ts +2 -2
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +6 -3
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +47 -35
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -5
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +0 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +2 -2
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +6 -6
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSub.d.ts +23 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubContent.d.ts +8 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuSubTrigger.d.ts +12 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +3 -4
- package/dist/types/excalidraw/components/dropdownMenu/common.d.ts +2 -2
- package/dist/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +2 -0
- package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +1 -1
- package/dist/types/excalidraw/components/icons.d.ts +32 -13
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +4 -3
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +19 -2
- package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
- package/dist/types/excalidraw/components/shapes.d.ts +202 -1
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +6 -6
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +15 -16
- package/dist/types/excalidraw/data/blob.d.ts +326 -10
- package/dist/types/excalidraw/data/encode.d.ts +4 -4
- package/dist/types/excalidraw/data/encryption.d.ts +5 -5
- package/dist/types/excalidraw/data/filesystem.d.ts +2 -2
- package/dist/types/excalidraw/data/index.d.ts +3 -3
- package/dist/types/excalidraw/data/json.d.ts +160 -2
- package/dist/types/excalidraw/data/library.d.ts +24 -9
- package/dist/types/excalidraw/data/reconcile.d.ts +1 -0
- package/dist/types/excalidraw/data/restore.d.ts +27 -7
- package/dist/types/excalidraw/data/types.d.ts +4 -1
- package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
- package/dist/types/excalidraw/errors.d.ts +14 -0
- package/dist/types/excalidraw/hooks/useLibraryItemSvg.d.ts +1 -1
- package/dist/types/excalidraw/hooks/useOutsideClick.d.ts +4 -3
- package/dist/types/excalidraw/hooks/useScrollPosition.d.ts +1 -2
- package/dist/types/excalidraw/hooks/useTextEditorFocus.d.ts +14 -0
- package/dist/types/excalidraw/i18n.d.ts +2 -2
- package/dist/types/excalidraw/index.d.ts +8 -7
- package/dist/types/excalidraw/renderer/animation.d.ts +12 -0
- package/dist/types/excalidraw/renderer/helpers.d.ts +6 -8
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +8 -14
- package/dist/types/excalidraw/scene/Renderer.d.ts +5 -2
- package/dist/types/excalidraw/scene/export.d.ts +2 -2
- package/dist/types/excalidraw/scene/scroll.d.ts +1 -6
- package/dist/types/excalidraw/scene/types.d.ts +22 -5
- package/dist/types/excalidraw/shortcut.d.ts +1 -0
- package/dist/types/excalidraw/snapping.d.ts +5 -5
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +1 -1
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +1 -1
- package/dist/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +1 -1
- package/dist/types/excalidraw/subset/woff2/woff2-loader.d.ts +2 -2
- package/dist/types/excalidraw/subset/woff2/woff2-wasm.d.ts +1 -1
- package/dist/types/excalidraw/types.d.ts +57 -31
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +2 -2
- package/dist/types/math/src/point.d.ts +6 -1
- package/dist/types/math/src/polygon.d.ts +2 -2
- package/dist/types/math/src/range.d.ts +1 -3
- package/dist/types/math/src/segment.d.ts +4 -3
- package/dist/types/math/src/types.d.ts +25 -1
- package/dist/types/utils/src/bbox.d.ts +1 -1
- package/dist/types/utils/src/export.d.ts +5 -5
- package/dist/types/utils/src/shape.d.ts +6 -6
- package/dist/types/utils/src/withinBounds.d.ts +2 -2
- package/package.json +2 -2
- package/dist/types/excalidraw/charts.d.ts +0 -27
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { UserIdleState } from "@excalidraw/common";
|
|
1
|
+
import type { UserIdleState, EditorInterface } from "@excalidraw/common";
|
|
2
2
|
import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "@excalidraw/element/types";
|
|
3
3
|
import type { MakeBrand } from "@excalidraw/common/utility-types";
|
|
4
|
-
import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId,
|
|
4
|
+
import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, PendingExcalidrawElements } from "../types";
|
|
5
5
|
import type { RoughCanvas } from "roughjs/bin/canvas";
|
|
6
6
|
import type { Drawable } from "roughjs/bin/core";
|
|
7
7
|
export type RenderableElementsMap = NonDeletedElementsMap & MakeBrand<"RenderableElementsMap">;
|
|
@@ -15,6 +15,7 @@ export type StaticCanvasRenderConfig = {
|
|
|
15
15
|
embedsValidationStatus: EmbedsValidationStatus;
|
|
16
16
|
elementsPendingErasure: ElementsPendingErasure;
|
|
17
17
|
pendingFlowchartNodes: PendingExcalidrawElements | null;
|
|
18
|
+
theme: AppState["theme"];
|
|
18
19
|
};
|
|
19
20
|
export type SVGRenderConfig = {
|
|
20
21
|
offsetX: number;
|
|
@@ -32,6 +33,7 @@ export type SVGRenderConfig = {
|
|
|
32
33
|
* @default true
|
|
33
34
|
*/
|
|
34
35
|
reuseImages: boolean;
|
|
36
|
+
theme: AppState["theme"];
|
|
35
37
|
};
|
|
36
38
|
export type InteractiveCanvasRenderConfig = {
|
|
37
39
|
remoteSelectedElementIds: Map<ExcalidrawElement["id"], SocketId[]>;
|
|
@@ -43,6 +45,10 @@ export type InteractiveCanvasRenderConfig = {
|
|
|
43
45
|
remotePointerUsernames: Map<SocketId, string>;
|
|
44
46
|
remotePointerButton: Map<SocketId, string | undefined>;
|
|
45
47
|
selectionColor: string;
|
|
48
|
+
lastViewportPosition: {
|
|
49
|
+
x: number;
|
|
50
|
+
y: number;
|
|
51
|
+
};
|
|
46
52
|
renderScrollbars?: boolean;
|
|
47
53
|
};
|
|
48
54
|
export type RenderInteractiveSceneCallback = {
|
|
@@ -60,7 +66,13 @@ export type StaticSceneRenderConfig = {
|
|
|
60
66
|
appState: StaticCanvasAppState;
|
|
61
67
|
renderConfig: StaticCanvasRenderConfig;
|
|
62
68
|
};
|
|
69
|
+
export type InteractiveSceneRenderAnimationState = {
|
|
70
|
+
bindingHighlight: {
|
|
71
|
+
runtime: number;
|
|
72
|
+
} | undefined;
|
|
73
|
+
};
|
|
63
74
|
export type InteractiveSceneRenderConfig = {
|
|
75
|
+
app: AppClassProperties;
|
|
64
76
|
canvas: HTMLCanvasElement | null;
|
|
65
77
|
elementsMap: RenderableElementsMap;
|
|
66
78
|
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
@@ -69,8 +81,10 @@ export type InteractiveSceneRenderConfig = {
|
|
|
69
81
|
scale: number;
|
|
70
82
|
appState: InteractiveCanvasAppState;
|
|
71
83
|
renderConfig: InteractiveCanvasRenderConfig;
|
|
72
|
-
|
|
84
|
+
editorInterface: EditorInterface;
|
|
73
85
|
callback: (data: RenderInteractiveSceneCallback) => void;
|
|
86
|
+
animationState?: InteractiveSceneRenderAnimationState;
|
|
87
|
+
deltaTime: number;
|
|
74
88
|
};
|
|
75
89
|
export type NewElementSceneRenderConfig = {
|
|
76
90
|
canvas: HTMLCanvasElement | null;
|
|
@@ -103,14 +117,17 @@ export type ScrollBars = {
|
|
|
103
117
|
deltaMultiplier: number;
|
|
104
118
|
} | null;
|
|
105
119
|
};
|
|
106
|
-
export type
|
|
120
|
+
export type SVGPathString = string & {
|
|
121
|
+
__brand: "SVGPathString";
|
|
122
|
+
};
|
|
123
|
+
export type ElementShape = Drawable | Drawable[] | Path2D | (Drawable | SVGPathString)[] | null;
|
|
107
124
|
export type ElementShapes = {
|
|
108
125
|
rectangle: Drawable;
|
|
109
126
|
ellipse: Drawable;
|
|
110
127
|
diamond: Drawable;
|
|
111
128
|
iframe: Drawable;
|
|
112
129
|
embeddable: Drawable;
|
|
113
|
-
freedraw: Drawable |
|
|
130
|
+
freedraw: (Drawable | SVGPathString)[];
|
|
114
131
|
arrow: Drawable[];
|
|
115
132
|
line: Drawable[];
|
|
116
133
|
text: null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getShortcutKey: (shortcut: string) => string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type GlobalPoint } from "@excalidraw/math";
|
|
2
2
|
import type { InclusiveRange } from "@excalidraw/math";
|
|
3
|
-
import type { Bounds } from "@excalidraw/
|
|
3
|
+
import type { Bounds } from "@excalidraw/common";
|
|
4
4
|
import type { MaybeTransformHandleType } from "@excalidraw/element";
|
|
5
5
|
import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
6
6
|
import type { AppClassProperties, AppState, KeyboardModifiersObject } from "./types";
|
|
@@ -70,9 +70,9 @@ export declare const isSnappingEnabled: ({ event, app, selectedElements, }: {
|
|
|
70
70
|
}) => boolean;
|
|
71
71
|
export declare const areRoughlyEqual: (a: number, b: number, precision?: number) => boolean;
|
|
72
72
|
export declare const getElementsCorners: (elements: ExcalidrawElement[], elementsMap: ElementsMap, { omitCenter, boundingBoxCorners, dragOffset, }?: {
|
|
73
|
-
omitCenter?: boolean
|
|
74
|
-
boundingBoxCorners?: boolean
|
|
75
|
-
dragOffset?: Vector2D
|
|
73
|
+
omitCenter?: boolean;
|
|
74
|
+
boundingBoxCorners?: boolean;
|
|
75
|
+
dragOffset?: Vector2D;
|
|
76
76
|
}) => GlobalPoint[];
|
|
77
77
|
export declare const getVisibleGaps: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => {
|
|
78
78
|
horizontalGaps: Gap[];
|
|
@@ -107,5 +107,5 @@ export declare const getSnapLinesAtPointer: (elements: readonly ExcalidrawElemen
|
|
|
107
107
|
};
|
|
108
108
|
snapLines: PointerSnapLine[];
|
|
109
109
|
};
|
|
110
|
-
export declare const isActiveToolNonLinearSnappable: (activeToolType: AppState["activeTool"]["type"]) =>
|
|
110
|
+
export declare const isActiveToolNonLinearSnappable: (activeToolType: AppState["activeTool"]["type"]) => activeToolType is "text" | "rectangle" | "diamond" | "ellipse" | "image" | "frame" | "magicframe";
|
|
111
111
|
export {};
|
|
@@ -38,7 +38,7 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
38
38
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
39
39
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
40
40
|
*/
|
|
41
|
-
declare function subset(hbSubsetWasm: any, heapu8: Uint8Array, font: ArrayBuffer, codePoints: ReadonlySet<number>): Uint8Array
|
|
41
|
+
declare function subset(hbSubsetWasm: any, heapu8: Uint8Array, font: ArrayBuffer, codePoints: ReadonlySet<number>): Uint8Array<ArrayBuffer>;
|
|
42
42
|
declare const _default: {
|
|
43
43
|
subset: typeof subset;
|
|
44
44
|
};
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* In the future consider separating common utils into a separate shared chunk.
|
|
8
8
|
*/
|
|
9
9
|
declare const load: () => Promise<{
|
|
10
|
-
subset: (fontBuffer: ArrayBuffer, codePoints: ReadonlySet<number>) => Uint8Array
|
|
10
|
+
subset: (fontBuffer: ArrayBuffer, codePoints: ReadonlySet<number>) => Uint8Array<ArrayBuffer>;
|
|
11
11
|
}>;
|
|
12
12
|
declare const _default: () => ReturnType<typeof load>;
|
|
13
13
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: Uint8Array
|
|
1
|
+
declare const _default: Uint8Array<ArrayBuffer>;
|
|
2
2
|
export default _default;
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* In the future consider separating common utils into a separate shared chunk.
|
|
8
8
|
*/
|
|
9
9
|
declare const load: () => Promise<{
|
|
10
|
-
compress: (buffer: ArrayBuffer) => Uint8Array
|
|
11
|
-
decompress: (buffer: ArrayBuffer) => Uint8Array
|
|
10
|
+
compress: (buffer: ArrayBuffer) => Uint8Array<ArrayBuffer>;
|
|
11
|
+
decompress: (buffer: ArrayBuffer) => Uint8Array<ArrayBuffer>;
|
|
12
12
|
}>;
|
|
13
13
|
declare const _default: () => ReturnType<typeof load>;
|
|
14
14
|
export default _default;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: Uint8Array
|
|
1
|
+
declare const _default: Uint8Array<ArrayBuffer>;
|
|
2
2
|
export default _default;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type { IMAGE_MIME_TYPES, UserIdleState, throttleRAF, MIME_TYPES } from "@excalidraw/common";
|
|
2
|
-
import type { SuggestedBinding } from "@excalidraw/element";
|
|
1
|
+
import type { IMAGE_MIME_TYPES, UserIdleState, throttleRAF, MIME_TYPES, EditorInterface } from "@excalidraw/common";
|
|
3
2
|
import type { LinearElementEditor } from "@excalidraw/element";
|
|
4
3
|
import type { MaybeTransformHandleType } from "@excalidraw/element";
|
|
5
|
-
import type { PointerType, ExcalidrawLinearElement, NonDeletedExcalidrawElement, NonDeleted, TextAlign, ExcalidrawElement, GroupId, ExcalidrawBindableElement, Arrowhead,
|
|
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";
|
|
@@ -18,6 +18,7 @@ import type { Language } from "./i18n";
|
|
|
18
18
|
import type { isOverScrollBars } from "./scene/scrollbars";
|
|
19
19
|
import type React from "react";
|
|
20
20
|
import type { JSX } from "react";
|
|
21
|
+
export type { App };
|
|
21
22
|
export type SocketId = string & {
|
|
22
23
|
_brand: "SocketId";
|
|
23
24
|
};
|
|
@@ -125,16 +126,20 @@ export type StaticCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
|
125
126
|
frameRendering: AppState["frameRendering"];
|
|
126
127
|
currentHoveredFontFamily: AppState["currentHoveredFontFamily"];
|
|
127
128
|
hoveredElementIds: AppState["hoveredElementIds"];
|
|
129
|
+
suggestedBinding: AppState["suggestedBinding"];
|
|
128
130
|
croppingElementId: AppState["croppingElementId"];
|
|
129
131
|
}>;
|
|
130
132
|
export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
133
|
+
activeTool: AppState["activeTool"];
|
|
131
134
|
activeEmbeddable: AppState["activeEmbeddable"];
|
|
132
135
|
selectionElement: AppState["selectionElement"];
|
|
133
136
|
selectedGroupIds: AppState["selectedGroupIds"];
|
|
134
137
|
selectedLinearElement: AppState["selectedLinearElement"];
|
|
135
138
|
multiElement: AppState["multiElement"];
|
|
139
|
+
newElement: AppState["newElement"];
|
|
136
140
|
isBindingEnabled: AppState["isBindingEnabled"];
|
|
137
|
-
|
|
141
|
+
isMidpointSnappingEnabled: AppState["isMidpointSnappingEnabled"];
|
|
142
|
+
suggestedBinding: AppState["suggestedBinding"];
|
|
138
143
|
isRotating: AppState["isRotating"];
|
|
139
144
|
elementsToHighlight: AppState["elementsToHighlight"];
|
|
140
145
|
collaborators: AppState["collaborators"];
|
|
@@ -145,6 +150,11 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
|
145
150
|
croppingElementId: AppState["croppingElementId"];
|
|
146
151
|
searchMatches: AppState["searchMatches"];
|
|
147
152
|
activeLockedId: AppState["activeLockedId"];
|
|
153
|
+
hoveredElementIds: AppState["hoveredElementIds"];
|
|
154
|
+
frameRendering: AppState["frameRendering"];
|
|
155
|
+
shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
|
|
156
|
+
exportScale: AppState["exportScale"];
|
|
157
|
+
currentItemArrowType: AppState["currentItemArrowType"];
|
|
148
158
|
}>;
|
|
149
159
|
export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
|
|
150
160
|
export type ObservedStandaloneAppState = {
|
|
@@ -155,8 +165,10 @@ export type ObservedElementsAppState = {
|
|
|
155
165
|
editingGroupId: AppState["editingGroupId"];
|
|
156
166
|
selectedElementIds: AppState["selectedElementIds"];
|
|
157
167
|
selectedGroupIds: AppState["selectedGroupIds"];
|
|
158
|
-
|
|
159
|
-
|
|
168
|
+
selectedLinearElement: {
|
|
169
|
+
elementId: LinearElementEditor["elementId"];
|
|
170
|
+
isEditing: boolean;
|
|
171
|
+
} | null;
|
|
160
172
|
croppingElementId: AppState["croppingElementId"];
|
|
161
173
|
lockedMultiSelections: AppState["lockedMultiSelections"];
|
|
162
174
|
activeLockedId: AppState["activeLockedId"];
|
|
@@ -194,9 +206,20 @@ export interface AppState {
|
|
|
194
206
|
* - set on pointer down, updated during pointer move
|
|
195
207
|
*/
|
|
196
208
|
selectionElement: NonDeletedExcalidrawElement | null;
|
|
209
|
+
/**
|
|
210
|
+
* tracking current arrow binding editor state (takes into account
|
|
211
|
+
* `bindingPreference` and keyboard modifiers (ctrl/alt)
|
|
212
|
+
*/
|
|
197
213
|
isBindingEnabled: boolean;
|
|
214
|
+
/** user arrow binding preference */
|
|
215
|
+
bindingPreference: "enabled" | "disabled";
|
|
216
|
+
/** user preference whether arrow snap to midpoints while binding */
|
|
217
|
+
isMidpointSnappingEnabled: boolean;
|
|
198
218
|
startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
|
|
199
|
-
|
|
219
|
+
suggestedBinding: {
|
|
220
|
+
element: NonDeleted<ExcalidrawBindableElement>;
|
|
221
|
+
midPoint?: GlobalPoint;
|
|
222
|
+
} | null;
|
|
200
223
|
frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
201
224
|
frameRendering: {
|
|
202
225
|
enabled: boolean;
|
|
@@ -219,6 +242,10 @@ export interface AppState {
|
|
|
219
242
|
locked: boolean;
|
|
220
243
|
fromSelection: boolean;
|
|
221
244
|
} & ActiveTool;
|
|
245
|
+
preferredSelectionTool: {
|
|
246
|
+
type: "selection" | "lasso";
|
|
247
|
+
initialized: boolean;
|
|
248
|
+
};
|
|
222
249
|
penMode: boolean;
|
|
223
250
|
penDetected: boolean;
|
|
224
251
|
exportBackground: boolean;
|
|
@@ -249,8 +276,8 @@ export interface AppState {
|
|
|
249
276
|
isResizing: boolean;
|
|
250
277
|
isRotating: boolean;
|
|
251
278
|
zoom: Zoom;
|
|
252
|
-
openMenu: "canvas" |
|
|
253
|
-
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | null;
|
|
279
|
+
openMenu: "canvas" | null;
|
|
280
|
+
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
254
281
|
openSidebar: {
|
|
255
282
|
name: SidebarName;
|
|
256
283
|
tab?: SidebarTabName;
|
|
@@ -262,9 +289,15 @@ export interface AppState {
|
|
|
262
289
|
tab: "text-to-diagram" | "mermaid";
|
|
263
290
|
} | {
|
|
264
291
|
name: "commandPalette";
|
|
292
|
+
} | {
|
|
293
|
+
name: "settings";
|
|
265
294
|
} | {
|
|
266
295
|
name: "elementLinkSelector";
|
|
267
296
|
sourceElementId: ExcalidrawElement["id"];
|
|
297
|
+
} | {
|
|
298
|
+
name: "charts";
|
|
299
|
+
data: Spreadsheet;
|
|
300
|
+
rawText: string;
|
|
268
301
|
};
|
|
269
302
|
/**
|
|
270
303
|
* Reflects user preference for whether the default sidebar should be docked.
|
|
@@ -316,14 +349,6 @@ export interface AppState {
|
|
|
316
349
|
/** bitmap. Use `STATS_PANELS` bit values */
|
|
317
350
|
panels: number;
|
|
318
351
|
};
|
|
319
|
-
currentChartType: ChartType;
|
|
320
|
-
pasteDialog: {
|
|
321
|
-
shown: false;
|
|
322
|
-
data: null;
|
|
323
|
-
} | {
|
|
324
|
-
shown: true;
|
|
325
|
-
data: Spreadsheet;
|
|
326
|
-
};
|
|
327
352
|
showHyperlinkPopup: false | "info" | "editor";
|
|
328
353
|
selectedLinearElement: LinearElementEditor | null;
|
|
329
354
|
snapLines: readonly SnapLine[];
|
|
@@ -349,6 +374,7 @@ export interface AppState {
|
|
|
349
374
|
lockedMultiSelections: {
|
|
350
375
|
[groupId: string]: true;
|
|
351
376
|
};
|
|
377
|
+
bindMode: BindMode;
|
|
352
378
|
}
|
|
353
379
|
export type SearchMatch = {
|
|
354
380
|
id: string;
|
|
@@ -361,7 +387,7 @@ export type SearchMatch = {
|
|
|
361
387
|
showOnCanvas: boolean;
|
|
362
388
|
}[];
|
|
363
389
|
};
|
|
364
|
-
export type UIAppState = Omit<AppState, "
|
|
390
|
+
export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
|
|
365
391
|
export type NormalizedZoomValue = number & {
|
|
366
392
|
_brand: "normalizedZoom";
|
|
367
393
|
};
|
|
@@ -439,6 +465,7 @@ export interface ExcalidrawProps {
|
|
|
439
465
|
onDuplicate?: (nextElements: readonly ExcalidrawElement[],
|
|
440
466
|
/** excludes the duplicated elements */
|
|
441
467
|
prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
|
|
468
|
+
renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
442
469
|
renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
443
470
|
langCode?: Language["code"];
|
|
444
471
|
viewModeEnabled?: boolean;
|
|
@@ -496,6 +523,11 @@ export type UIOptions = Partial<{
|
|
|
496
523
|
tools: {
|
|
497
524
|
image: boolean;
|
|
498
525
|
};
|
|
526
|
+
/**
|
|
527
|
+
* Optionally control the editor form factor and desktop UI mode from the host app.
|
|
528
|
+
* If not provided, we will take care of it internally.
|
|
529
|
+
*/
|
|
530
|
+
getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
|
|
499
531
|
/** @deprecated does nothing. Will be removed in 0.15 */
|
|
500
532
|
welcomeScreen?: boolean;
|
|
501
533
|
}>;
|
|
@@ -526,7 +558,7 @@ export type AppClassProperties = {
|
|
|
526
558
|
mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
|
|
527
559
|
}>;
|
|
528
560
|
files: BinaryFiles;
|
|
529
|
-
|
|
561
|
+
editorInterface: App["editorInterface"];
|
|
530
562
|
scene: App["scene"];
|
|
531
563
|
syncActionResult: App["syncActionResult"];
|
|
532
564
|
fonts: App["fonts"];
|
|
@@ -555,6 +587,9 @@ export type AppClassProperties = {
|
|
|
555
587
|
excalidrawContainerValue: App["excalidrawContainerValue"];
|
|
556
588
|
onPointerUpEmitter: App["onPointerUpEmitter"];
|
|
557
589
|
updateEditorAtom: App["updateEditorAtom"];
|
|
590
|
+
onPointerDownEmitter: App["onPointerDownEmitter"];
|
|
591
|
+
lastPointerMoveCoords: App["lastPointerMoveCoords"];
|
|
592
|
+
bindModeHandler: App["bindModeHandler"];
|
|
558
593
|
};
|
|
559
594
|
export type PointerDownState = Readonly<{
|
|
560
595
|
origin: Readonly<{
|
|
@@ -602,6 +637,7 @@ export type PointerDownState = Readonly<{
|
|
|
602
637
|
x: number;
|
|
603
638
|
y: number;
|
|
604
639
|
};
|
|
640
|
+
blockDragging: boolean;
|
|
605
641
|
};
|
|
606
642
|
eventListeners: {
|
|
607
643
|
onMove: null | ReturnType<typeof throttleRAF>;
|
|
@@ -616,6 +652,7 @@ export type PointerDownState = Readonly<{
|
|
|
616
652
|
export type UnsubscribeCallback = () => void;
|
|
617
653
|
export interface ExcalidrawImperativeAPI {
|
|
618
654
|
updateScene: InstanceType<typeof App>["updateScene"];
|
|
655
|
+
applyDeltas: InstanceType<typeof App>["applyDeltas"];
|
|
619
656
|
mutateElement: InstanceType<typeof App>["mutateElement"];
|
|
620
657
|
updateLibrary: InstanceType<typeof Library>["updateLibrary"];
|
|
621
658
|
resetScene: InstanceType<typeof App>["resetScene"];
|
|
@@ -638,6 +675,7 @@ export interface ExcalidrawImperativeAPI {
|
|
|
638
675
|
setCursor: InstanceType<typeof App>["setCursor"];
|
|
639
676
|
resetCursor: InstanceType<typeof App>["resetCursor"];
|
|
640
677
|
toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
|
|
678
|
+
getEditorInterface: () => EditorInterface;
|
|
641
679
|
/**
|
|
642
680
|
* Disables rendering of frames (including element clipping), but currently
|
|
643
681
|
* the frames are still interactive in edit mode. As such, this API should be
|
|
@@ -651,17 +689,6 @@ export interface ExcalidrawImperativeAPI {
|
|
|
651
689
|
onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
|
|
652
690
|
onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
|
|
653
691
|
}
|
|
654
|
-
export type Device = Readonly<{
|
|
655
|
-
viewport: {
|
|
656
|
-
isMobile: boolean;
|
|
657
|
-
isLandscape: boolean;
|
|
658
|
-
};
|
|
659
|
-
editor: {
|
|
660
|
-
isMobile: boolean;
|
|
661
|
-
canFitSidebar: boolean;
|
|
662
|
-
};
|
|
663
|
-
isTouchScreen: boolean;
|
|
664
|
-
}>;
|
|
665
692
|
export type FrameNameBounds = {
|
|
666
693
|
x: number;
|
|
667
694
|
y: number;
|
|
@@ -701,4 +728,3 @@ export type Offsets = Partial<{
|
|
|
701
728
|
bottom: number;
|
|
702
729
|
left: number;
|
|
703
730
|
}>;
|
|
704
|
-
export {};
|
|
@@ -9,7 +9,7 @@ export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords,
|
|
|
9
9
|
* Note: `text`, which can be wrapped and therefore different from `originalText`,
|
|
10
10
|
* is derived from `originalText`
|
|
11
11
|
*/
|
|
12
|
-
onChange?: (
|
|
12
|
+
onChange?: (nextOriginalText: string) => void;
|
|
13
13
|
onSubmit: (data: {
|
|
14
14
|
viaKeyboard: boolean;
|
|
15
15
|
nextOriginalText: string;
|
|
@@ -19,6 +19,6 @@ export declare const textWysiwyg: ({ id, onChange, onSubmit, getViewportCoords,
|
|
|
19
19
|
canvas: HTMLCanvasElement;
|
|
20
20
|
excalidrawContainer: HTMLDivElement | null;
|
|
21
21
|
app: App;
|
|
22
|
-
autoSelect?: boolean
|
|
22
|
+
autoSelect?: boolean;
|
|
23
23
|
}) => SubmitHandler;
|
|
24
24
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector } from "./types";
|
|
1
|
+
import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector, GlobalCoord, LocalCoord } from "./types";
|
|
2
2
|
/**
|
|
3
3
|
* Create a properly typed Point instance from the X and Y coordinates.
|
|
4
4
|
*
|
|
@@ -7,6 +7,11 @@ import type { LocalPoint, GlobalPoint, Radians, Degrees, Vector } from "./types"
|
|
|
7
7
|
* @returns The branded and created point
|
|
8
8
|
*/
|
|
9
9
|
export declare function pointFrom<Point extends GlobalPoint | LocalPoint>(x: number, y: number): Point;
|
|
10
|
+
export declare function pointFrom<Coord extends GlobalCoord | LocalCoord>(coords: Coord): Coord extends GlobalCoord ? GlobalPoint : LocalPoint;
|
|
11
|
+
export declare function pointFrom<Point extends GlobalPoint | LocalPoint>(coords: {
|
|
12
|
+
x: number;
|
|
13
|
+
y: number;
|
|
14
|
+
}): Point;
|
|
10
15
|
/**
|
|
11
16
|
* Converts and remaps an array containing a pair of numbers to Point.
|
|
12
17
|
*
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GlobalPoint, LocalPoint, Polygon } from "./types";
|
|
2
2
|
export declare function polygon<Point extends GlobalPoint | LocalPoint>(...points: Point[]): Polygon<Point>;
|
|
3
3
|
export declare function polygonFromPoints<Point extends GlobalPoint | LocalPoint>(points: Point[]): Polygon<Point>;
|
|
4
|
-
export declare const polygonIncludesPoint: <Point extends
|
|
4
|
+
export declare const polygonIncludesPoint: <Point extends LocalPoint | GlobalPoint>(point: Point, polygon: Polygon<Point>) => boolean;
|
|
5
5
|
export declare const polygonIncludesPointNonZero: <Point extends [number, number]>(point: Point, polygon: Point[]) => boolean;
|
|
6
|
-
export declare const pointOnPolygon: <Point extends
|
|
6
|
+
export declare const pointOnPolygon: <Point extends LocalPoint | GlobalPoint>(p: Point, poly: Polygon<Point>, threshold?: number) => boolean;
|
|
@@ -13,9 +13,7 @@ export declare function rangeInclusive(start: number, end: number): InclusiveRan
|
|
|
13
13
|
* @param pair The number pair to convert to an inclusive range
|
|
14
14
|
* @returns The new inclusive range
|
|
15
15
|
*/
|
|
16
|
-
export declare function rangeInclusiveFromPair(pair: [start: number, end: number]):
|
|
17
|
-
_brand: "excalimath_degree";
|
|
18
|
-
};
|
|
16
|
+
export declare function rangeInclusiveFromPair(pair: [start: number, end: number]): InclusiveRange;
|
|
19
17
|
/**
|
|
20
18
|
* Given two ranges, return if the two ranges overlap with each other e.g.
|
|
21
19
|
* [1, 3] overlaps with [2, 4] while [1, 3] does not overlap with [4, 5].
|
|
@@ -21,14 +21,14 @@ export declare const isLineSegment: <Point extends GlobalPoint | LocalPoint>(seg
|
|
|
21
21
|
* @param origin
|
|
22
22
|
* @returns
|
|
23
23
|
*/
|
|
24
|
-
export declare const lineSegmentRotate: <Point extends
|
|
24
|
+
export declare const lineSegmentRotate: <Point extends LocalPoint | GlobalPoint>(l: LineSegment<Point>, angle: Radians, origin?: Point) => LineSegment<Point>;
|
|
25
25
|
/**
|
|
26
26
|
* Calculates the point two line segments with a definite start and end point
|
|
27
27
|
* intersect at.
|
|
28
28
|
*/
|
|
29
29
|
export declare const segmentsIntersectAt: <Point extends GlobalPoint | LocalPoint>(a: Readonly<LineSegment<Point>>, b: Readonly<LineSegment<Point>>) => Point | null;
|
|
30
|
-
export declare const pointOnLineSegment: <Point extends
|
|
31
|
-
export declare const distanceToLineSegment: <Point extends
|
|
30
|
+
export declare const pointOnLineSegment: <Point extends LocalPoint | GlobalPoint>(point: Point, line: LineSegment<Point>, threshold?: number) => boolean;
|
|
31
|
+
export declare const distanceToLineSegment: <Point extends LocalPoint | GlobalPoint>(point: Point, line: LineSegment<Point>) => number;
|
|
32
32
|
/**
|
|
33
33
|
* Returns the intersection point of a segment and a line
|
|
34
34
|
*
|
|
@@ -37,3 +37,4 @@ export declare const distanceToLineSegment: <Point extends GlobalPoint | LocalPo
|
|
|
37
37
|
* @returns
|
|
38
38
|
*/
|
|
39
39
|
export declare function lineSegmentIntersectionPoints<Point extends GlobalPoint | LocalPoint>(l: LineSegment<Point>, s: LineSegment<Point>, threshold?: number): Point | null;
|
|
40
|
+
export declare function lineSegmentsDistance<Point extends GlobalPoint | LocalPoint>(s1: LineSegment<Point>, s2: LineSegment<Point>): number;
|
|
@@ -19,12 +19,24 @@ export type InclusiveRange = [number, number] & {
|
|
|
19
19
|
_brand: "excalimath_degree";
|
|
20
20
|
};
|
|
21
21
|
/**
|
|
22
|
-
* Represents a 2D position in world
|
|
22
|
+
* Represents a 2D position in world/canvas/scene space. A
|
|
23
23
|
* global coordinate.
|
|
24
24
|
*/
|
|
25
25
|
export type GlobalPoint = [x: number, y: number] & {
|
|
26
26
|
_brand: "excalimath__globalpoint";
|
|
27
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Represents a 2D position in world/canvas/scene space. A
|
|
30
|
+
* global coordinate.
|
|
31
|
+
*
|
|
32
|
+
* TODO remove this once we migrate the codebase to use Point tuples everywhere
|
|
33
|
+
*/
|
|
34
|
+
export type GlobalCoord = {
|
|
35
|
+
x: number;
|
|
36
|
+
y: number;
|
|
37
|
+
} & {
|
|
38
|
+
_brand: "excalimath__globalcoord";
|
|
39
|
+
};
|
|
28
40
|
/**
|
|
29
41
|
* Represents a 2D position in whatever local space it's
|
|
30
42
|
* needed. A local coordinate.
|
|
@@ -32,6 +44,18 @@ export type GlobalPoint = [x: number, y: number] & {
|
|
|
32
44
|
export type LocalPoint = [x: number, y: number] & {
|
|
33
45
|
_brand: "excalimath__localpoint";
|
|
34
46
|
};
|
|
47
|
+
/**
|
|
48
|
+
* Represents a 2D position in whatever local space it's needed.
|
|
49
|
+
* A local coordinate.
|
|
50
|
+
*
|
|
51
|
+
* TODO remove this once we migrate the codebase to use Point tuples everywhere
|
|
52
|
+
*/
|
|
53
|
+
export type LocalCoord = {
|
|
54
|
+
x: number;
|
|
55
|
+
y: number;
|
|
56
|
+
} & {
|
|
57
|
+
_brand: "excalimath__localcoord";
|
|
58
|
+
};
|
|
35
59
|
/**
|
|
36
60
|
* A line is an infinitely long object with no width, depth, or curvature.
|
|
37
61
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type GlobalPoint, type LocalPoint } from "@excalidraw/math";
|
|
2
|
-
import type { Bounds } from "@excalidraw/
|
|
2
|
+
import type { Bounds } from "@excalidraw/common";
|
|
3
3
|
export type LineSegment<P extends LocalPoint | GlobalPoint> = [P, P];
|
|
4
4
|
export declare function getBBox<P extends LocalPoint | GlobalPoint>(line: LineSegment<P>): Bounds;
|
|
5
5
|
export declare function doBBoxesIntersect(a: Bounds, b: Bounds): boolean;
|
|
@@ -15,7 +15,7 @@ type ExportOpts = {
|
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
export declare const exportToCanvas: ({ elements, appState, files, maxWidthOrHeight, getDimensions, exportPadding, exportingFrame, }: ExportOpts & {
|
|
18
|
-
exportPadding?: number
|
|
18
|
+
exportPadding?: number;
|
|
19
19
|
}) => Promise<HTMLCanvasElement>;
|
|
20
20
|
export declare const exportToBlob: (opts: ExportOpts & {
|
|
21
21
|
mimeType?: string;
|
|
@@ -23,10 +23,10 @@ export declare const exportToBlob: (opts: ExportOpts & {
|
|
|
23
23
|
exportPadding?: number;
|
|
24
24
|
}) => Promise<Blob>;
|
|
25
25
|
export declare const exportToSvg: ({ elements, appState, files, exportPadding, renderEmbeddables, exportingFrame, skipInliningFonts, reuseImages, }: Omit<ExportOpts, "getDimensions"> & {
|
|
26
|
-
exportPadding?: number
|
|
27
|
-
renderEmbeddables?: boolean
|
|
28
|
-
skipInliningFonts?: true
|
|
29
|
-
reuseImages?: boolean
|
|
26
|
+
exportPadding?: number;
|
|
27
|
+
renderEmbeddables?: boolean;
|
|
28
|
+
skipInliningFonts?: true;
|
|
29
|
+
reuseImages?: boolean;
|
|
30
30
|
}) => Promise<SVGSVGElement>;
|
|
31
31
|
export declare const exportToClipboard: (opts: ExportOpts & {
|
|
32
32
|
mimeType?: string;
|
|
@@ -46,13 +46,13 @@ export declare const getClosedCurveShape: <Point extends GlobalPoint | LocalPoin
|
|
|
46
46
|
* @param gap Optional value to inflate the shape before testing
|
|
47
47
|
* @returns An array of intersections
|
|
48
48
|
*/
|
|
49
|
-
export declare const segmentIntersectRectangleElement: <Point extends
|
|
50
|
-
export declare const pointOnEllipse: <Point extends
|
|
51
|
-
export declare const pointInEllipse: <Point extends
|
|
52
|
-
export declare const ellipseAxes: <Point extends
|
|
49
|
+
export declare const segmentIntersectRectangleElement: <Point extends LocalPoint | GlobalPoint>(element: ExcalidrawBindableElement, segment: LineSegment<Point>, gap?: number) => Point[];
|
|
50
|
+
export declare const pointOnEllipse: <Point extends LocalPoint | GlobalPoint>(point: Point, ellipse: Ellipse<Point>, threshold?: number) => boolean;
|
|
51
|
+
export declare const pointInEllipse: <Point extends LocalPoint | GlobalPoint>(p: Point, ellipse: Ellipse<Point>) => boolean;
|
|
52
|
+
export declare const ellipseAxes: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => {
|
|
53
53
|
majorAxis: number;
|
|
54
54
|
minorAxis: number;
|
|
55
55
|
};
|
|
56
|
-
export declare const ellipseFocusToCenter: <Point extends
|
|
57
|
-
export declare const ellipseExtremes: <Point extends
|
|
56
|
+
export declare const ellipseFocusToCenter: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => number;
|
|
57
|
+
export declare const ellipseExtremes: <Point extends LocalPoint | GlobalPoint>(ellipse: Ellipse<Point>) => import("@excalidraw/math").Vector[];
|
|
58
58
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Bounds } from "@excalidraw/common";
|
|
2
2
|
import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "@excalidraw/element/types";
|
|
3
3
|
type Element = NonDeletedExcalidrawElement;
|
|
4
4
|
type Elements = readonly NonDeletedExcalidrawElement[];
|
|
@@ -8,7 +8,7 @@ export declare const elementsOverlappingBBox: ({ elements, bounds, type, errorMa
|
|
|
8
8
|
elements: Elements;
|
|
9
9
|
bounds: Bounds | ExcalidrawElement;
|
|
10
10
|
/** safety offset. Defaults to 0. */
|
|
11
|
-
errorMargin?: number
|
|
11
|
+
errorMargin?: number;
|
|
12
12
|
/**
|
|
13
13
|
* - overlap: elements overlapping or inside bounds
|
|
14
14
|
* - contain: elements inside bounds or bounds inside elements
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@excalidraw/math",
|
|
3
|
-
"version": "0.18.0-
|
|
3
|
+
"version": "0.18.0-d1cff91",
|
|
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-d1cff91"
|
|
65
65
|
}
|
|
66
66
|
}
|
|
@@ -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 {};
|