@excalidraw/math 0.18.0-d2463f87d → 0.18.0-d255747
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 +92 -65
- 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/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 +38 -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 +16 -8
- package/dist/types/element/src/align.d.ts +2 -1
- 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 +3 -1
- package/dist/types/element/src/dragElements.d.ts +3 -3
- package/dist/types/element/src/duplicate.d.ts +4 -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 +12 -7
- package/dist/types/element/src/groups.d.ts +1 -0
- 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 +25 -23
- 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 +8 -2
- 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 +5 -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/zindex.d.ts +7 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +167 -210
- package/dist/types/excalidraw/actions/actionAlign.d.ts +6 -7
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +94 -123
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +557 -914
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +123 -896
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +45 -60
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +151 -198
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +159 -0
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -4
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +53 -74
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +92 -121
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionExport.d.ts +173 -1414
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +10 -395
- package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionFrame.d.ts +265 -360
- package/dist/types/excalidraw/actions/actionGroup.d.ts +97 -134
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +162 -184
- package/dist/types/excalidraw/actions/actionLink.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionMenu.d.ts +48 -437
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -361
- package/dist/types/excalidraw/actions/actionProperties.d.ts +152 -2524
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +48 -67
- package/dist/types/excalidraw/actions/actionStyles.d.ts +45 -59
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +4 -4
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +172 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +47 -68
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +1 -1
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +58 -73
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +59 -74
- package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -9
- package/dist/types/excalidraw/actions/index.d.ts +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 +29 -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 +57 -19
- package/dist/types/excalidraw/components/Actions.d.ts +21 -8
- package/dist/types/excalidraw/components/App.d.ts +127 -75
- 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 +3 -0
- 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 +8 -4
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +1 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- 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 +327 -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 +170 -4
- package/dist/types/excalidraw/data/library.d.ts +24 -9
- package/dist/types/excalidraw/data/resave.d.ts +7 -2
- package/dist/types/excalidraw/data/restore.d.ts +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/renderer/staticScene.d.ts +4 -1
- package/dist/types/excalidraw/scene/Renderer.d.ts +427 -18
- 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 +134 -39
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +7 -3
- package/dist/types/fractional-indexing/src/index.d.ts +29 -0
- package/dist/types/math/src/constants.d.ts +0 -1
- 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 +2 -2
- package/dist/types/excalidraw/charts.d.ts +0 -27
- package/dist/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +0 -4
- package/dist/types/excalidraw/components/ExcalidrawLogo.d.ts +0 -16
- package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -9
- package/dist/types/excalidraw/components/footer/FooterCenter.d.ts +0 -8
- package/dist/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +0 -10
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +0 -58
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +0 -19
- package/dist/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +0 -85
- package/dist/types/excalidraw/data/reconcile.d.ts +0 -6
- package/dist/types/excalidraw/index.d.ts +0 -46
- 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,17 +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
|
-
editingLinearElement: AppState["editingLinearElement"];
|
|
133
134
|
selectionElement: AppState["selectionElement"];
|
|
134
135
|
selectedGroupIds: AppState["selectedGroupIds"];
|
|
135
136
|
selectedLinearElement: AppState["selectedLinearElement"];
|
|
136
137
|
multiElement: AppState["multiElement"];
|
|
138
|
+
newElement: AppState["newElement"];
|
|
137
139
|
isBindingEnabled: AppState["isBindingEnabled"];
|
|
138
|
-
|
|
140
|
+
isMidpointSnappingEnabled: AppState["isMidpointSnappingEnabled"];
|
|
141
|
+
suggestedBinding: AppState["suggestedBinding"];
|
|
139
142
|
isRotating: AppState["isRotating"];
|
|
140
143
|
elementsToHighlight: AppState["elementsToHighlight"];
|
|
141
144
|
collaborators: AppState["collaborators"];
|
|
@@ -146,6 +149,11 @@ export type InteractiveCanvasAppState = Readonly<_CommonCanvasAppState & {
|
|
|
146
149
|
croppingElementId: AppState["croppingElementId"];
|
|
147
150
|
searchMatches: AppState["searchMatches"];
|
|
148
151
|
activeLockedId: AppState["activeLockedId"];
|
|
152
|
+
hoveredElementIds: AppState["hoveredElementIds"];
|
|
153
|
+
frameRendering: AppState["frameRendering"];
|
|
154
|
+
shouldCacheIgnoreZoom: AppState["shouldCacheIgnoreZoom"];
|
|
155
|
+
exportScale: AppState["exportScale"];
|
|
156
|
+
currentItemArrowType: AppState["currentItemArrowType"];
|
|
149
157
|
}>;
|
|
150
158
|
export type ObservedAppState = ObservedStandaloneAppState & ObservedElementsAppState;
|
|
151
159
|
export type ObservedStandaloneAppState = {
|
|
@@ -156,12 +164,15 @@ export type ObservedElementsAppState = {
|
|
|
156
164
|
editingGroupId: AppState["editingGroupId"];
|
|
157
165
|
selectedElementIds: AppState["selectedElementIds"];
|
|
158
166
|
selectedGroupIds: AppState["selectedGroupIds"];
|
|
159
|
-
|
|
160
|
-
|
|
167
|
+
selectedLinearElement: {
|
|
168
|
+
elementId: LinearElementEditor["elementId"];
|
|
169
|
+
isEditing: boolean;
|
|
170
|
+
} | null;
|
|
161
171
|
croppingElementId: AppState["croppingElementId"];
|
|
162
172
|
lockedMultiSelections: AppState["lockedMultiSelections"];
|
|
163
173
|
activeLockedId: AppState["activeLockedId"];
|
|
164
174
|
};
|
|
175
|
+
export type BoxSelectionMode = "contain" | "overlap";
|
|
165
176
|
export interface AppState {
|
|
166
177
|
contextMenu: {
|
|
167
178
|
items: ContextMenuItems;
|
|
@@ -195,9 +206,25 @@ export interface AppState {
|
|
|
195
206
|
* - set on pointer down, updated during pointer move
|
|
196
207
|
*/
|
|
197
208
|
selectionElement: NonDeletedExcalidrawElement | null;
|
|
209
|
+
/**
|
|
210
|
+
* tracking current arrow binding editor state (takes into account
|
|
211
|
+
* `bindingPreference` and keyboard modifiers (ctrl/alt)
|
|
212
|
+
*/
|
|
198
213
|
isBindingEnabled: boolean;
|
|
199
|
-
|
|
200
|
-
|
|
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;
|
|
220
|
+
/**
|
|
221
|
+
* The bindable element the UI highlights for the user when an arrow is
|
|
222
|
+
* dragged or otherwise its endpoint being close to said element.
|
|
223
|
+
*/
|
|
224
|
+
suggestedBinding: {
|
|
225
|
+
element: NonDeleted<ExcalidrawBindableElement>;
|
|
226
|
+
midPoint?: GlobalPoint;
|
|
227
|
+
} | null;
|
|
201
228
|
frameToHighlight: NonDeleted<ExcalidrawFrameLikeElement> | null;
|
|
202
229
|
frameRendering: {
|
|
203
230
|
enabled: boolean;
|
|
@@ -210,8 +237,7 @@ export interface AppState {
|
|
|
210
237
|
/**
|
|
211
238
|
* set when a new text is created or when an existing text is being edited
|
|
212
239
|
*/
|
|
213
|
-
editingTextElement:
|
|
214
|
-
editingLinearElement: LinearElementEditor | null;
|
|
240
|
+
editingTextElement: ExcalidrawTextElement | null;
|
|
215
241
|
activeTool: {
|
|
216
242
|
/**
|
|
217
243
|
* indicates a previous tool we should revert back to if we deselect the
|
|
@@ -221,6 +247,10 @@ export interface AppState {
|
|
|
221
247
|
locked: boolean;
|
|
222
248
|
fromSelection: boolean;
|
|
223
249
|
} & ActiveTool;
|
|
250
|
+
preferredSelectionTool: {
|
|
251
|
+
type: "selection" | "lasso";
|
|
252
|
+
initialized: boolean;
|
|
253
|
+
};
|
|
224
254
|
penMode: boolean;
|
|
225
255
|
penDetected: boolean;
|
|
226
256
|
exportBackground: boolean;
|
|
@@ -251,8 +281,8 @@ export interface AppState {
|
|
|
251
281
|
isResizing: boolean;
|
|
252
282
|
isRotating: boolean;
|
|
253
283
|
zoom: Zoom;
|
|
254
|
-
openMenu: "canvas" |
|
|
255
|
-
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | null;
|
|
284
|
+
openMenu: "canvas" | null;
|
|
285
|
+
openPopup: "canvasBackground" | "elementBackground" | "elementStroke" | "fontFamily" | "compactTextProperties" | "compactStrokeStyles" | "compactOtherProperties" | "compactArrowProperties" | null;
|
|
256
286
|
openSidebar: {
|
|
257
287
|
name: SidebarName;
|
|
258
288
|
tab?: SidebarTabName;
|
|
@@ -264,9 +294,15 @@ export interface AppState {
|
|
|
264
294
|
tab: "text-to-diagram" | "mermaid";
|
|
265
295
|
} | {
|
|
266
296
|
name: "commandPalette";
|
|
297
|
+
} | {
|
|
298
|
+
name: "settings";
|
|
267
299
|
} | {
|
|
268
300
|
name: "elementLinkSelector";
|
|
269
301
|
sourceElementId: ExcalidrawElement["id"];
|
|
302
|
+
} | {
|
|
303
|
+
name: "charts";
|
|
304
|
+
data: Spreadsheet;
|
|
305
|
+
rawText: string;
|
|
270
306
|
};
|
|
271
307
|
/**
|
|
272
308
|
* Reflects user preference for whether the default sidebar should be docked.
|
|
@@ -289,7 +325,7 @@ export interface AppState {
|
|
|
289
325
|
selectedElementsAreBeingDragged: boolean;
|
|
290
326
|
shouldCacheIgnoreZoom: boolean;
|
|
291
327
|
toast: {
|
|
292
|
-
message:
|
|
328
|
+
message: React.ReactNode;
|
|
293
329
|
closable?: boolean;
|
|
294
330
|
duration?: number;
|
|
295
331
|
} | null;
|
|
@@ -311,21 +347,13 @@ export interface AppState {
|
|
|
311
347
|
height: number;
|
|
312
348
|
offsetTop: number;
|
|
313
349
|
offsetLeft: number;
|
|
314
|
-
fileHandle:
|
|
350
|
+
fileHandle: FileSystemFileHandle | null;
|
|
315
351
|
collaborators: Map<SocketId, Collaborator>;
|
|
316
352
|
stats: {
|
|
317
353
|
open: boolean;
|
|
318
354
|
/** bitmap. Use `STATS_PANELS` bit values */
|
|
319
355
|
panels: number;
|
|
320
356
|
};
|
|
321
|
-
currentChartType: ChartType;
|
|
322
|
-
pasteDialog: {
|
|
323
|
-
shown: false;
|
|
324
|
-
data: null;
|
|
325
|
-
} | {
|
|
326
|
-
shown: true;
|
|
327
|
-
data: Spreadsheet;
|
|
328
|
-
};
|
|
329
357
|
showHyperlinkPopup: false | "info" | "editor";
|
|
330
358
|
selectedLinearElement: LinearElementEditor | null;
|
|
331
359
|
snapLines: readonly SnapLine[];
|
|
@@ -351,6 +379,7 @@ export interface AppState {
|
|
|
351
379
|
lockedMultiSelections: {
|
|
352
380
|
[groupId: string]: true;
|
|
353
381
|
};
|
|
382
|
+
bindMode: BindMode;
|
|
354
383
|
}
|
|
355
384
|
export type SearchMatch = {
|
|
356
385
|
id: string;
|
|
@@ -363,7 +392,7 @@ export type SearchMatch = {
|
|
|
363
392
|
showOnCanvas: boolean;
|
|
364
393
|
}[];
|
|
365
394
|
};
|
|
366
|
-
export type UIAppState = Omit<AppState, "
|
|
395
|
+
export type UIAppState = Omit<AppState, "cursorButton" | "scrollX" | "scrollY">;
|
|
367
396
|
export type NormalizedZoomValue = number & {
|
|
368
397
|
_brand: "normalizedZoom";
|
|
369
398
|
};
|
|
@@ -411,11 +440,36 @@ export type OnUserFollowedPayload = {
|
|
|
411
440
|
userToFollow: UserToFollow;
|
|
412
441
|
action: "FOLLOW" | "UNFOLLOW";
|
|
413
442
|
};
|
|
443
|
+
export type OnExportProgress = {
|
|
444
|
+
type: "progress";
|
|
445
|
+
message?: React.ReactNode;
|
|
446
|
+
/** 0-1 range */
|
|
447
|
+
progress?: number;
|
|
448
|
+
};
|
|
414
449
|
export interface ExcalidrawProps {
|
|
415
450
|
onChange?: (elements: readonly OrderedExcalidrawElement[], appState: AppState, files: BinaryFiles) => void;
|
|
451
|
+
/**
|
|
452
|
+
* note: only subscribes if the props.onIncrement is defined on initial render
|
|
453
|
+
*/
|
|
416
454
|
onIncrement?: (event: DurableIncrement | EphemeralIncrement) => void;
|
|
417
455
|
initialData?: (() => MaybePromise<ExcalidrawInitialDataState | null>) | MaybePromise<ExcalidrawInitialDataState | null>;
|
|
418
|
-
|
|
456
|
+
/**
|
|
457
|
+
* Invoked as soon as the Excalidraw API is available
|
|
458
|
+
* NOTE editor is not yet mounted, and state is not yet initialized
|
|
459
|
+
*/
|
|
460
|
+
onExcalidrawAPI?: (api: ExcalidrawImperativeAPI | null) => void;
|
|
461
|
+
/**
|
|
462
|
+
* Invoked once the editor root is mounted.
|
|
463
|
+
*/
|
|
464
|
+
onMount?: (payload: ExcalidrawMountPayload) => void;
|
|
465
|
+
/**
|
|
466
|
+
* Invoked when the editor root is unmounted.
|
|
467
|
+
*/
|
|
468
|
+
onUnmount?: () => void;
|
|
469
|
+
/**
|
|
470
|
+
* Invoked once the initial scene is loaded.
|
|
471
|
+
*/
|
|
472
|
+
onInitialize?: (api: ExcalidrawImperativeAPI) => void;
|
|
419
473
|
isCollaborating?: boolean;
|
|
420
474
|
onPointerUpdate?: (payload: {
|
|
421
475
|
pointer: {
|
|
@@ -441,6 +495,7 @@ export interface ExcalidrawProps {
|
|
|
441
495
|
onDuplicate?: (nextElements: readonly ExcalidrawElement[],
|
|
442
496
|
/** excludes the duplicated elements */
|
|
443
497
|
prevElements: readonly ExcalidrawElement[]) => ExcalidrawElement[] | void;
|
|
498
|
+
renderTopLeftUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
444
499
|
renderTopRightUI?: (isMobile: boolean, appState: UIAppState) => JSX.Element | null;
|
|
445
500
|
langCode?: Language["code"];
|
|
446
501
|
viewModeEnabled?: boolean;
|
|
@@ -471,6 +526,29 @@ export interface ExcalidrawProps {
|
|
|
471
526
|
aiEnabled?: boolean;
|
|
472
527
|
showDeprecatedFonts?: boolean;
|
|
473
528
|
renderScrollbars?: boolean;
|
|
529
|
+
/**
|
|
530
|
+
* Called before exporting to a file.
|
|
531
|
+
*
|
|
532
|
+
* Allows the host app to intercept and delay saving until async operations
|
|
533
|
+
* (e.g., images are loaded) complete.
|
|
534
|
+
*
|
|
535
|
+
* If Promise/AsyncGenerator is returned, a progress toast will be shown
|
|
536
|
+
* until the operation completes. Generator can yield progress updates.
|
|
537
|
+
*/
|
|
538
|
+
onExport?: (
|
|
539
|
+
/** type of export. Currently we only call for JSON exports or
|
|
540
|
+
* JSON-embedded PNG (which is also identified as `json` type here)*/
|
|
541
|
+
type: "json", data: {
|
|
542
|
+
elements: readonly ExcalidrawElement[];
|
|
543
|
+
appState: AppState;
|
|
544
|
+
files: BinaryFiles;
|
|
545
|
+
}, options: {
|
|
546
|
+
/** signal that gets aborted if user cancels the export (e.g. closes
|
|
547
|
+
* the native file picker dialog). In that case, you can either
|
|
548
|
+
* return immediately, or throw AbortError.
|
|
549
|
+
*/
|
|
550
|
+
signal: AbortSignal;
|
|
551
|
+
}) => MaybePromise<void> | AsyncGenerator<OnExportProgress, void>;
|
|
474
552
|
}
|
|
475
553
|
export type SceneData = {
|
|
476
554
|
elements?: ImportedDataState["elements"];
|
|
@@ -498,6 +576,11 @@ export type UIOptions = Partial<{
|
|
|
498
576
|
tools: {
|
|
499
577
|
image: boolean;
|
|
500
578
|
};
|
|
579
|
+
/**
|
|
580
|
+
* Optionally control the editor form factor and desktop UI mode from the host app.
|
|
581
|
+
* If not provided, we will take care of it internally.
|
|
582
|
+
*/
|
|
583
|
+
getFormFactor?: (editorWidth: number, editorHeight: number) => EditorInterface["formFactor"];
|
|
501
584
|
/** @deprecated does nothing. Will be removed in 0.15 */
|
|
502
585
|
welcomeScreen?: boolean;
|
|
503
586
|
}>;
|
|
@@ -518,6 +601,8 @@ export type AppProps = Merge<ExcalidrawProps, {
|
|
|
518
601
|
export type AppClassProperties = {
|
|
519
602
|
props: AppProps;
|
|
520
603
|
state: AppState;
|
|
604
|
+
api: App["api"];
|
|
605
|
+
sessionExportThemeOverride: App["sessionExportThemeOverride"];
|
|
521
606
|
interactiveCanvas: HTMLCanvasElement | null;
|
|
522
607
|
/** static canvas */
|
|
523
608
|
canvas: HTMLCanvasElement;
|
|
@@ -528,7 +613,7 @@ export type AppClassProperties = {
|
|
|
528
613
|
mimeType: ValueOf<typeof IMAGE_MIME_TYPES>;
|
|
529
614
|
}>;
|
|
530
615
|
files: BinaryFiles;
|
|
531
|
-
|
|
616
|
+
editorInterface: App["editorInterface"];
|
|
532
617
|
scene: App["scene"];
|
|
533
618
|
syncActionResult: App["syncActionResult"];
|
|
534
619
|
fonts: App["fonts"];
|
|
@@ -557,6 +642,12 @@ export type AppClassProperties = {
|
|
|
557
642
|
excalidrawContainerValue: App["excalidrawContainerValue"];
|
|
558
643
|
onPointerUpEmitter: App["onPointerUpEmitter"];
|
|
559
644
|
updateEditorAtom: App["updateEditorAtom"];
|
|
645
|
+
onPointerDownEmitter: App["onPointerDownEmitter"];
|
|
646
|
+
onEvent: App["onEvent"];
|
|
647
|
+
onStateChange: App["onStateChange"];
|
|
648
|
+
lastPointerMoveCoords: App["lastPointerMoveCoords"];
|
|
649
|
+
bindModeHandler: App["bindModeHandler"];
|
|
650
|
+
setAppState: App["setAppState"];
|
|
560
651
|
};
|
|
561
652
|
export type PointerDownState = Readonly<{
|
|
562
653
|
origin: Readonly<{
|
|
@@ -604,6 +695,7 @@ export type PointerDownState = Readonly<{
|
|
|
604
695
|
x: number;
|
|
605
696
|
y: number;
|
|
606
697
|
};
|
|
698
|
+
blockDragging: boolean;
|
|
607
699
|
};
|
|
608
700
|
eventListeners: {
|
|
609
701
|
onMove: null | ReturnType<typeof throttleRAF>;
|
|
@@ -616,8 +708,20 @@ export type PointerDownState = Readonly<{
|
|
|
616
708
|
};
|
|
617
709
|
}>;
|
|
618
710
|
export type UnsubscribeCallback = () => void;
|
|
711
|
+
export type ExcalidrawMountPayload = {
|
|
712
|
+
excalidrawAPI: ExcalidrawImperativeAPI;
|
|
713
|
+
container: HTMLDivElement | null;
|
|
714
|
+
};
|
|
715
|
+
export type ExcalidrawImperativeAPIEventMap = {
|
|
716
|
+
"editor:mount": [payload: ExcalidrawMountPayload];
|
|
717
|
+
"editor:initialize": [api: ExcalidrawImperativeAPI];
|
|
718
|
+
"editor:unmount": [];
|
|
719
|
+
};
|
|
619
720
|
export interface ExcalidrawImperativeAPI {
|
|
721
|
+
/** Whether the editor has been unmounted and the API is no longer usable. */
|
|
722
|
+
isDestroyed: boolean;
|
|
620
723
|
updateScene: InstanceType<typeof App>["updateScene"];
|
|
724
|
+
applyDeltas: InstanceType<typeof App>["applyDeltas"];
|
|
621
725
|
mutateElement: InstanceType<typeof App>["mutateElement"];
|
|
622
726
|
updateLibrary: InstanceType<typeof Library>["updateLibrary"];
|
|
623
727
|
resetScene: InstanceType<typeof App>["resetScene"];
|
|
@@ -640,6 +744,7 @@ export interface ExcalidrawImperativeAPI {
|
|
|
640
744
|
setCursor: InstanceType<typeof App>["setCursor"];
|
|
641
745
|
resetCursor: InstanceType<typeof App>["resetCursor"];
|
|
642
746
|
toggleSidebar: InstanceType<typeof App>["toggleSidebar"];
|
|
747
|
+
getEditorInterface: () => EditorInterface;
|
|
643
748
|
/**
|
|
644
749
|
* Disables rendering of frames (including element clipping), but currently
|
|
645
750
|
* the frames are still interactive in edit mode. As such, this API should be
|
|
@@ -652,18 +757,9 @@ export interface ExcalidrawImperativeAPI {
|
|
|
652
757
|
onPointerUp: (callback: (activeTool: AppState["activeTool"], pointerDownState: PointerDownState, event: PointerEvent) => void) => UnsubscribeCallback;
|
|
653
758
|
onScrollChange: (callback: (scrollX: number, scrollY: number, zoom: Zoom) => void) => UnsubscribeCallback;
|
|
654
759
|
onUserFollow: (callback: (payload: OnUserFollowedPayload) => void) => UnsubscribeCallback;
|
|
760
|
+
onStateChange: InstanceType<typeof App>["onStateChange"];
|
|
761
|
+
onEvent: InstanceType<typeof App>["onEvent"];
|
|
655
762
|
}
|
|
656
|
-
export type Device = Readonly<{
|
|
657
|
-
viewport: {
|
|
658
|
-
isMobile: boolean;
|
|
659
|
-
isLandscape: boolean;
|
|
660
|
-
};
|
|
661
|
-
editor: {
|
|
662
|
-
isMobile: boolean;
|
|
663
|
-
canFitSidebar: boolean;
|
|
664
|
-
};
|
|
665
|
-
isTouchScreen: boolean;
|
|
666
|
-
}>;
|
|
667
763
|
export type FrameNameBounds = {
|
|
668
764
|
x: number;
|
|
669
765
|
y: number;
|
|
@@ -703,4 +799,3 @@ export type Offsets = Partial<{
|
|
|
703
799
|
bottom: number;
|
|
704
800
|
left: number;
|
|
705
801
|
}>;
|
|
706
|
-
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 {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare const BASE_62_DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
|
2
|
+
/**
|
|
3
|
+
* @param {string} key
|
|
4
|
+
* @param {string} digits
|
|
5
|
+
* @return {void}
|
|
6
|
+
*/
|
|
7
|
+
export declare function validateOrderKey(key: string, digits?: string): void;
|
|
8
|
+
/**
|
|
9
|
+
* @param {string | null | undefined} a
|
|
10
|
+
* @param {string | null | undefined} b
|
|
11
|
+
* @param {string=} digits
|
|
12
|
+
* @return {string}
|
|
13
|
+
*/
|
|
14
|
+
export declare function generateKeyBetween(a: string | null | undefined, b: string | null | undefined, digits?: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* same preconditions as generateKeysBetween.
|
|
17
|
+
* n >= 0.
|
|
18
|
+
* Returns an array of n distinct keys in sorted order.
|
|
19
|
+
* If a and b are both null, returns [a0, a1, ...]
|
|
20
|
+
* If one or the other is null, returns consecutive "integer"
|
|
21
|
+
* keys. Otherwise, returns relatively short keys between
|
|
22
|
+
* a and b.
|
|
23
|
+
* @param {string | null | undefined} a
|
|
24
|
+
* @param {string | null | undefined} b
|
|
25
|
+
* @param {number} n
|
|
26
|
+
* @param {string} digits
|
|
27
|
+
* @return {string[]}
|
|
28
|
+
*/
|
|
29
|
+
export declare function generateNKeysBetween(a: string | null | undefined, b: string | null | undefined, n: number, digits?: string): string[];
|
|
@@ -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/math",
|
|
3
|
-
"version": "0.18.0-
|
|
3
|
+
"version": "0.18.0-d255747",
|
|
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-d255747"
|
|
65
65
|
}
|
|
66
66
|
}
|