@excalidraw/element 0.18.0-b16b6f8fd → 0.18.0-b1c6bfc
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 +5964 -3082
- package/dist/dev/index.js.map +4 -4
- package/dist/prod/index.js +19 -18
- 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 +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 +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 -41
- package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
- package/dist/types/element/src/Scene.d.ts +11 -5
- 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 +8 -14
- 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 +16 -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 +6 -2
- 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 +5 -3
- package/dist/types/element/src/linearElementEditor.d.ts +23 -22
- 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 +10 -10
- package/dist/types/element/src/shape.d.ts +9 -8
- package/dist/types/element/src/store.d.ts +6 -1
- package/dist/types/element/src/textElement.d.ts +2 -2
- 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 +9 -4
- package/dist/types/element/src/visualdebug.d.ts +59 -0
- package/dist/types/element/src/zindex.d.ts +7 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +131 -168
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +94 -119
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +557 -902
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +112 -878
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +45 -58
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +151 -192
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +160 -0
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +37 -56
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +92 -117
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +46 -59
- package/dist/types/excalidraw/actions/actionExport.d.ts +173 -1403
- 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 +279 -366
- package/dist/types/excalidraw/actions/actionGroup.d.ts +97 -130
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +155 -206
- package/dist/types/excalidraw/actions/actionLink.d.ts +43 -56
- package/dist/types/excalidraw/actions/actionMenu.d.ts +36 -421
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -359
- package/dist/types/excalidraw/actions/actionProperties.d.ts +152 -2507
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +48 -65
- package/dist/types/excalidraw/actions/actionStyles.d.ts +45 -57
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +3 -3
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +173 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +45 -58
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +173 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +45 -58
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +34 -53
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +45 -58
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +45 -58
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +46 -59
- package/dist/types/excalidraw/actions/actionZindex.d.ts +2 -3
- package/dist/types/excalidraw/actions/index.d.ts +5 -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 +22 -14
- 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 +57 -19
- package/dist/types/excalidraw/components/Actions.d.ts +22 -5
- package/dist/types/excalidraw/components/App.d.ts +118 -76
- package/dist/types/excalidraw/components/AppStateObserver.d.ts +37 -0
- package/dist/types/excalidraw/components/Card.d.ts +1 -3
- package/dist/types/excalidraw/components/ColorPicker/ColorInput.d.ts +2 -4
- package/dist/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +0 -1
- package/dist/types/excalidraw/components/ColorPicker/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/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/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 +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/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 +2 -2
- 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 +49 -21
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +20 -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/data/blob.d.ts +329 -12
- 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 +171 -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 +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/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 +130 -36
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +7 -3
- package/dist/types/math/src/curve.d.ts +4 -1
- 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 +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 +9 -3
- 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 -6
- package/dist/types/excalidraw/index.d.ts +0 -47
- package/dist/types/excalidraw/polyfill.d.ts +0 -2
|
@@ -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 = {
|
|
@@ -155,12 +164,15 @@ export type ObservedElementsAppState = {
|
|
|
155
164
|
editingGroupId: AppState["editingGroupId"];
|
|
156
165
|
selectedElementIds: AppState["selectedElementIds"];
|
|
157
166
|
selectedGroupIds: AppState["selectedGroupIds"];
|
|
158
|
-
|
|
159
|
-
|
|
167
|
+
selectedLinearElement: {
|
|
168
|
+
elementId: LinearElementEditor["elementId"];
|
|
169
|
+
isEditing: boolean;
|
|
170
|
+
} | null;
|
|
160
171
|
croppingElementId: AppState["croppingElementId"];
|
|
161
172
|
lockedMultiSelections: AppState["lockedMultiSelections"];
|
|
162
173
|
activeLockedId: AppState["activeLockedId"];
|
|
163
174
|
};
|
|
175
|
+
export type BoxSelectionMode = "contain" | "overlap";
|
|
164
176
|
export interface AppState {
|
|
165
177
|
contextMenu: {
|
|
166
178
|
items: ContextMenuItems;
|
|
@@ -194,9 +206,22 @@ 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 box selection preference; defaults to "contain" when unset */
|
|
215
|
+
boxSelectionMode: BoxSelectionMode;
|
|
216
|
+
/** user arrow binding preference */
|
|
217
|
+
bindingPreference: "enabled" | "disabled";
|
|
218
|
+
/** user preference whether arrow snap to midpoints while binding */
|
|
219
|
+
isMidpointSnappingEnabled: boolean;
|
|
198
220
|
startBoundElement: NonDeleted<ExcalidrawBindableElement> | null;
|
|
199
|
-
|
|
221
|
+
suggestedBinding: {
|
|
222
|
+
element: NonDeleted<ExcalidrawBindableElement>;
|
|
223
|
+
midPoint?: GlobalPoint;
|
|
224
|
+
} | null;
|
|
200
225
|
frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
201
226
|
frameRendering: {
|
|
202
227
|
enabled: boolean;
|
|
@@ -209,7 +234,7 @@ export interface AppState {
|
|
|
209
234
|
/**
|
|
210
235
|
* set when a new text is created or when an existing text is being edited
|
|
211
236
|
*/
|
|
212
|
-
editingTextElement:
|
|
237
|
+
editingTextElement: ExcalidrawTextElement | null;
|
|
213
238
|
activeTool: {
|
|
214
239
|
/**
|
|
215
240
|
* indicates a previous tool we should revert back to if we deselect the
|
|
@@ -219,6 +244,10 @@ export interface AppState {
|
|
|
219
244
|
locked: boolean;
|
|
220
245
|
fromSelection: boolean;
|
|
221
246
|
} & ActiveTool;
|
|
247
|
+
preferredSelectionTool: {
|
|
248
|
+
type: "selection" | "lasso";
|
|
249
|
+
initialized: boolean;
|
|
250
|
+
};
|
|
222
251
|
penMode: boolean;
|
|
223
252
|
penDetected: boolean;
|
|
224
253
|
exportBackground: boolean;
|
|
@@ -249,8 +278,8 @@ export interface AppState {
|
|
|
249
278
|
isResizing: boolean;
|
|
250
279
|
isRotating: boolean;
|
|
251
280
|
zoom: Zoom;
|
|
252
|
-
openMenu: "canvas" |
|
|
253
|
-
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | null;
|
|
281
|
+
openMenu: "canvas" | null;
|
|
282
|
+
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
254
283
|
openSidebar: {
|
|
255
284
|
name: SidebarName;
|
|
256
285
|
tab?: SidebarTabName;
|
|
@@ -262,9 +291,15 @@ export interface AppState {
|
|
|
262
291
|
tab: "text-to-diagram" | "mermaid";
|
|
263
292
|
} | {
|
|
264
293
|
name: "commandPalette";
|
|
294
|
+
} | {
|
|
295
|
+
name: "settings";
|
|
265
296
|
} | {
|
|
266
297
|
name: "elementLinkSelector";
|
|
267
298
|
sourceElementId: ExcalidrawElement["id"];
|
|
299
|
+
} | {
|
|
300
|
+
name: "charts";
|
|
301
|
+
data: Spreadsheet;
|
|
302
|
+
rawText: string;
|
|
268
303
|
};
|
|
269
304
|
/**
|
|
270
305
|
* Reflects user preference for whether the default sidebar should be docked.
|
|
@@ -287,7 +322,7 @@ export interface AppState {
|
|
|
287
322
|
selectedElementsAreBeingDragged: boolean;
|
|
288
323
|
shouldCacheIgnoreZoom: boolean;
|
|
289
324
|
toast: {
|
|
290
|
-
message:
|
|
325
|
+
message: React.ReactNode;
|
|
291
326
|
closable?: boolean;
|
|
292
327
|
duration?: number;
|
|
293
328
|
} | null;
|
|
@@ -309,21 +344,13 @@ export interface AppState {
|
|
|
309
344
|
height: number;
|
|
310
345
|
offsetTop: number;
|
|
311
346
|
offsetLeft: number;
|
|
312
|
-
fileHandle:
|
|
347
|
+
fileHandle: FileSystemFileHandle | null;
|
|
313
348
|
collaborators: Map<SocketId, Collaborator>;
|
|
314
349
|
stats: {
|
|
315
350
|
open: boolean;
|
|
316
351
|
/** bitmap. Use `STATS_PANELS` bit values */
|
|
317
352
|
panels: number;
|
|
318
353
|
};
|
|
319
|
-
currentChartType: ChartType;
|
|
320
|
-
pasteDialog: {
|
|
321
|
-
shown: false;
|
|
322
|
-
data: null;
|
|
323
|
-
} | {
|
|
324
|
-
shown: true;
|
|
325
|
-
data: Spreadsheet;
|
|
326
|
-
};
|
|
327
354
|
showHyperlinkPopup: false | "info" | "editor";
|
|
328
355
|
selectedLinearElement: LinearElementEditor | null;
|
|
329
356
|
snapLines: readonly SnapLine[];
|
|
@@ -349,6 +376,7 @@ export interface AppState {
|
|
|
349
376
|
lockedMultiSelections: {
|
|
350
377
|
[groupId: string]: true;
|
|
351
378
|
};
|
|
379
|
+
bindMode: BindMode;
|
|
352
380
|
}
|
|
353
381
|
export type SearchMatch = {
|
|
354
382
|
id: string;
|
|
@@ -361,7 +389,7 @@ export type SearchMatch = {
|
|
|
361
389
|
showOnCanvas: boolean;
|
|
362
390
|
}[];
|
|
363
391
|
};
|
|
364
|
-
export type UIAppState = Omit<AppState, "
|
|
392
|
+
export type UIAppState = Omit<AppState, "startBoundElement" | "cursorButton" | "scrollX" | "scrollY">;
|
|
365
393
|
export type NormalizedZoomValue = number & {
|
|
366
394
|
_brand: "normalizedZoom";
|
|
367
395
|
};
|
|
@@ -409,11 +437,36 @@ export type OnUserFollowedPayload = {
|
|
|
409
437
|
userToFollow: UserToFollow;
|
|
410
438
|
action: "FOLLOW" | "UNFOLLOW";
|
|
411
439
|
};
|
|
440
|
+
export type OnExportProgress = {
|
|
441
|
+
type: "progress";
|
|
442
|
+
message?: React.ReactNode;
|
|
443
|
+
/** 0-1 range */
|
|
444
|
+
progress?: number;
|
|
445
|
+
};
|
|
412
446
|
export interface ExcalidrawProps {
|
|
413
447
|
onChange?: (elements: readonly OrderedExcalidrawElement[], appState: AppState, files: BinaryFiles) => void;
|
|
448
|
+
/**
|
|
449
|
+
* note: only subscribes if the props.onIncrement is defined on initial render
|
|
450
|
+
*/
|
|
414
451
|
onIncrement?: (event: DurableIncrement | EphemeralIncrement) => void;
|
|
415
452
|
initialData?: (() => MaybePromise<ExcalidrawInitialDataState | null>) | MaybePromise<ExcalidrawInitialDataState | null>;
|
|
416
|
-
|
|
453
|
+
/**
|
|
454
|
+
* Invoked as soon as the Excalidraw API is available
|
|
455
|
+
* NOTE editor is not yet mounted, and state is not yet initialized
|
|
456
|
+
*/
|
|
457
|
+
onExcalidrawAPI?: (api: ExcalidrawImperativeAPI | null) => void;
|
|
458
|
+
/**
|
|
459
|
+
* Invoked once the editor root is mounted.
|
|
460
|
+
*/
|
|
461
|
+
onMount?: (payload: ExcalidrawMountPayload) => void;
|
|
462
|
+
/**
|
|
463
|
+
* Invoked when the editor root is unmounted.
|
|
464
|
+
*/
|
|
465
|
+
onUnmount?: () => void;
|
|
466
|
+
/**
|
|
467
|
+
* Invoked once the initial scene is loaded.
|
|
468
|
+
*/
|
|
469
|
+
onInitialize?: (api: ExcalidrawImperativeAPI) => void;
|
|
417
470
|
isCollaborating?: boolean;
|
|
418
471
|
onPointerUpdate?: (payload: {
|
|
419
472
|
pointer: {
|
|
@@ -439,6 +492,7 @@ export interface ExcalidrawProps {
|
|
|
439
492
|
onDuplicate?: (nextElements: readonly ExcalidrawElement[],
|
|
440
493
|
/** excludes the duplicated elements */
|
|
441
494
|
prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
|
|
495
|
+
renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
442
496
|
renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
443
497
|
langCode?: Language["code"];
|
|
444
498
|
viewModeEnabled?: boolean;
|
|
@@ -469,6 +523,29 @@ export interface ExcalidrawProps {
|
|
|
469
523
|
aiEnabled?: boolean;
|
|
470
524
|
showDeprecatedFonts?: boolean;
|
|
471
525
|
renderScrollbars?: boolean;
|
|
526
|
+
/**
|
|
527
|
+
* Called before exporting to a file.
|
|
528
|
+
*
|
|
529
|
+
* Allows the host app to intercept and delay saving until async operations
|
|
530
|
+
* (e.g., images are loaded) complete.
|
|
531
|
+
*
|
|
532
|
+
* If Promise/AsyncGenerator is returned, a progress toast will be shown
|
|
533
|
+
* until the operation completes. Generator can yield progress updates.
|
|
534
|
+
*/
|
|
535
|
+
onExport?: (
|
|
536
|
+
/** type of export. Currently we only call for JSON exports or
|
|
537
|
+
* JSON-embedded PNG (which is also identified as `json` type here)*/
|
|
538
|
+
type: "json", data: {
|
|
539
|
+
elements: readonly ExcalidrawElement[];
|
|
540
|
+
appState: AppState;
|
|
541
|
+
files: BinaryFiles;
|
|
542
|
+
}, options: {
|
|
543
|
+
/** signal that gets aborted if user cancels the export (e.g. closes
|
|
544
|
+
* the native file picker dialog). In that case, you can either
|
|
545
|
+
* return immediately, or throw AbortError.
|
|
546
|
+
*/
|
|
547
|
+
signal: AbortSignal;
|
|
548
|
+
}) => MaybePromise<void> | AsyncGenerator<OnExportProgress, void>;
|
|
472
549
|
}
|
|
473
550
|
export type SceneData = {
|
|
474
551
|
elements?: ImportedDataState["elements"];
|
|
@@ -496,6 +573,11 @@ export type UIOptions = Partial<{
|
|
|
496
573
|
tools: {
|
|
497
574
|
image: boolean;
|
|
498
575
|
};
|
|
576
|
+
/**
|
|
577
|
+
* Optionally control the editor form factor and desktop UI mode from the host app.
|
|
578
|
+
* If not provided, we will take care of it internally.
|
|
579
|
+
*/
|
|
580
|
+
getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
|
|
499
581
|
/** @deprecated does nothing. Will be removed in 0.15 */
|
|
500
582
|
welcomeScreen?: boolean;
|
|
501
583
|
}>;
|
|
@@ -516,6 +598,8 @@ export type AppProps = Merge<ExcalidrawProps, {
|
|
|
516
598
|
export type AppClassProperties = {
|
|
517
599
|
props: AppProps;
|
|
518
600
|
state: AppState;
|
|
601
|
+
api: App["api"];
|
|
602
|
+
sessionExportThemeOverride: App["sessionExportThemeOverride"];
|
|
519
603
|
interactiveCanvas: HTMLCanvasElement | null;
|
|
520
604
|
/** static canvas */
|
|
521
605
|
canvas: HTMLCanvasElement;
|
|
@@ -526,7 +610,7 @@ export type AppClassProperties = {
|
|
|
526
610
|
mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
|
|
527
611
|
}>;
|
|
528
612
|
files: BinaryFiles;
|
|
529
|
-
|
|
613
|
+
editorInterface: App["editorInterface"];
|
|
530
614
|
scene: App["scene"];
|
|
531
615
|
syncActionResult: App["syncActionResult"];
|
|
532
616
|
fonts: App["fonts"];
|
|
@@ -555,6 +639,12 @@ export type AppClassProperties = {
|
|
|
555
639
|
excalidrawContainerValue: App["excalidrawContainerValue"];
|
|
556
640
|
onPointerUpEmitter: App["onPointerUpEmitter"];
|
|
557
641
|
updateEditorAtom: App["updateEditorAtom"];
|
|
642
|
+
onPointerDownEmitter: App["onPointerDownEmitter"];
|
|
643
|
+
onEvent: App["onEvent"];
|
|
644
|
+
onStateChange: App["onStateChange"];
|
|
645
|
+
lastPointerMoveCoords: App["lastPointerMoveCoords"];
|
|
646
|
+
bindModeHandler: App["bindModeHandler"];
|
|
647
|
+
setAppState: App["setAppState"];
|
|
558
648
|
};
|
|
559
649
|
export type PointerDownState = Readonly<{
|
|
560
650
|
origin: Readonly<{
|
|
@@ -602,6 +692,7 @@ export type PointerDownState = Readonly<{
|
|
|
602
692
|
x: number;
|
|
603
693
|
y: number;
|
|
604
694
|
};
|
|
695
|
+
blockDragging: boolean;
|
|
605
696
|
};
|
|
606
697
|
eventListeners: {
|
|
607
698
|
onMove: null | ReturnType<typeof throttleRAF>;
|
|
@@ -614,8 +705,20 @@ export type PointerDownState = Readonly<{
|
|
|
614
705
|
};
|
|
615
706
|
}>;
|
|
616
707
|
export type UnsubscribeCallback = () => void;
|
|
708
|
+
export type ExcalidrawMountPayload = {
|
|
709
|
+
excalidrawAPI: ExcalidrawImperativeAPI;
|
|
710
|
+
container: HTMLDivElement | null;
|
|
711
|
+
};
|
|
712
|
+
export type ExcalidrawImperativeAPIEventMap = {
|
|
713
|
+
"editor:mount": [payload: ExcalidrawMountPayload];
|
|
714
|
+
"editor:initialize": [api: ExcalidrawImperativeAPI];
|
|
715
|
+
"editor:unmount": [];
|
|
716
|
+
};
|
|
617
717
|
export interface ExcalidrawImperativeAPI {
|
|
718
|
+
/** Whether the editor has been unmounted and the API is no longer usable. */
|
|
719
|
+
isDestroyed: boolean;
|
|
618
720
|
updateScene: InstanceType<typeof App>["updateScene"];
|
|
721
|
+
applyDeltas: InstanceType<typeof App>["applyDeltas"];
|
|
619
722
|
mutateElement: InstanceType<typeof App>["mutateElement"];
|
|
620
723
|
updateLibrary: InstanceType<typeof Library>["updateLibrary"];
|
|
621
724
|
resetScene: InstanceType<typeof App>["resetScene"];
|
|
@@ -638,6 +741,7 @@ export interface ExcalidrawImperativeAPI {
|
|
|
638
741
|
setCursor: InstanceType<typeof App>["setCursor"];
|
|
639
742
|
resetCursor: InstanceType<typeof App>["resetCursor"];
|
|
640
743
|
toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
|
|
744
|
+
getEditorInterface: () => EditorInterface;
|
|
641
745
|
/**
|
|
642
746
|
* Disables rendering of frames (including element clipping), but currently
|
|
643
747
|
* the frames are still interactive in edit mode. As such, this API should be
|
|
@@ -650,18 +754,9 @@ export interface ExcalidrawImperativeAPI {
|
|
|
650
754
|
onPointerUp: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: PointerEvent) => void) => UnsubscribeCallback;
|
|
651
755
|
onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
|
|
652
756
|
onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
|
|
757
|
+
onStateChange: InstanceType<typeof App>["onStateChange"];
|
|
758
|
+
onEvent: InstanceType<typeof App>["onEvent"];
|
|
653
759
|
}
|
|
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
760
|
export type FrameNameBounds = {
|
|
666
761
|
x: number;
|
|
667
762
|
y: number;
|
|
@@ -701,4 +796,3 @@ export type Offsets = Partial<{
|
|
|
701
796
|
bottom: number;
|
|
702
797
|
left: number;
|
|
703
798
|
}>;
|
|
704
|
-
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 {};
|
|
@@ -12,7 +12,10 @@ export declare const bezierEquation: <Point extends GlobalPoint | LocalPoint>(c:
|
|
|
12
12
|
/**
|
|
13
13
|
* Computes the intersection between a cubic spline and a line segment.
|
|
14
14
|
*/
|
|
15
|
-
export declare function curveIntersectLineSegment<Point extends GlobalPoint | LocalPoint>(c: Curve<Point>, l: LineSegment<Point
|
|
15
|
+
export declare function curveIntersectLineSegment<Point extends GlobalPoint | LocalPoint>(c: Curve<Point>, l: LineSegment<Point>, opts?: {
|
|
16
|
+
tolerance?: number;
|
|
17
|
+
iterLimit?: number;
|
|
18
|
+
}): Point[];
|
|
16
19
|
/**
|
|
17
20
|
* Finds the closest point on the Bezier curve from another point
|
|
18
21
|
*
|
|
@@ -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
|
*
|
|
@@ -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/element",
|
|
3
|
-
"version": "0.18.0-
|
|
3
|
+
"version": "0.18.0-b1c6bfc",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/types/element/src/index.d.ts",
|
|
6
6
|
"main": "./dist/prod/index.js",
|
|
@@ -17,6 +17,12 @@
|
|
|
17
17
|
"development": "./dist/dev/index.js",
|
|
18
18
|
"production": "./dist/prod/index.js",
|
|
19
19
|
"default": "./dist/prod/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./visualdebug": {
|
|
22
|
+
"types": "./dist/types/element/src/visualdebug.d.ts",
|
|
23
|
+
"development": "./dist/dev/visualdebug.js",
|
|
24
|
+
"production": "./dist/prod/visualdebug.js",
|
|
25
|
+
"default": "./dist/prod/visualdebug.js"
|
|
20
26
|
}
|
|
21
27
|
},
|
|
22
28
|
"files": [
|
|
@@ -57,7 +63,7 @@
|
|
|
57
63
|
"build:esm": "rimraf dist && node ../../scripts/buildBase.js && yarn gen:types"
|
|
58
64
|
},
|
|
59
65
|
"dependencies": {
|
|
60
|
-
"@excalidraw/common": "0.18.0-
|
|
61
|
-
"@excalidraw/math": "0.18.0-
|
|
66
|
+
"@excalidraw/common": "0.18.0-b1c6bfc",
|
|
67
|
+
"@excalidraw/math": "0.18.0-b1c6bfc"
|
|
62
68
|
}
|
|
63
69
|
}
|