@excalidraw/math 0.18.0-4e0441e → 0.18.0-4e758db
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 +313 -116
- package/dist/dev/index.js.map +4 -4
- 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 +81 -39
- package/dist/types/common/src/constants.d.ts +75 -34
- 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 +5 -1
- package/dist/types/common/src/points.d.ts +1 -1
- package/dist/types/common/src/random.d.ts +7 -0
- package/dist/types/common/src/utility-types.d.ts +0 -1
- package/dist/types/common/src/utils.d.ts +45 -77
- package/dist/types/common/src/versionedSnapshotStore.d.ts +17 -0
- package/dist/types/element/src/Scene.d.ts +12 -8
- package/dist/types/element/src/align.d.ts +2 -2
- package/dist/types/element/src/arrowEndpointText.d.ts +49 -0
- package/dist/types/element/src/arrowheads.d.ts +3 -0
- package/dist/types/element/src/arrows/focus.d.ts +30 -0
- package/dist/types/element/src/arrows/helpers.d.ts +5 -0
- package/dist/types/element/src/binding.d.ts +79 -51
- package/dist/types/element/src/bounds.d.ts +25 -18
- package/dist/types/element/src/bucketFill.d.ts +110 -0
- package/dist/types/element/src/collision.d.ts +7 -2
- package/dist/types/element/src/comparisons.d.ts +10 -7
- package/dist/types/element/src/convertToShape.d.ts +23 -0
- package/dist/types/element/src/delta.d.ts +23 -1
- package/dist/types/element/src/distribute.d.ts +3 -2
- package/dist/types/element/src/dragElements.d.ts +30 -3
- package/dist/types/element/src/duplicate.d.ts +7 -6
- package/dist/types/element/src/elbowArrow.d.ts +2 -0
- package/dist/types/element/src/embeddable.d.ts +2 -2
- package/dist/types/element/src/flowchart.d.ts +11 -7
- package/dist/types/element/src/fractionalIndex.d.ts +4 -4
- package/dist/types/element/src/frame.d.ts +16 -11
- package/dist/types/element/src/groups.d.ts +9 -9
- 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 +9 -4
- package/dist/types/element/src/linearElementEditor.d.ts +48 -30
- package/dist/types/element/src/mutateElement.d.ts +6 -2
- package/dist/types/element/src/newElement.d.ts +44 -8
- package/dist/types/element/src/renderElement.d.ts +1 -10
- package/dist/types/element/src/resizeElements.d.ts +12 -12
- package/dist/types/element/src/resizeTest.d.ts +6 -5
- package/dist/types/element/src/selection.d.ts +14 -14
- package/dist/types/element/src/shape.d.ts +21 -8
- package/dist/types/element/src/sizeHelpers.d.ts +6 -0
- package/dist/types/element/src/sortElements.d.ts +10 -0
- package/dist/types/element/src/stickyNote.d.ts +183 -0
- package/dist/types/element/src/textElement.d.ts +14 -10
- 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 +27 -8
- package/dist/types/element/src/transformHandles.d.ts +8 -27
- package/dist/types/element/src/typeChecks.d.ts +30 -31
- package/dist/types/element/src/types.d.ts +55 -20
- package/dist/types/element/src/utils.d.ts +15 -6
- package/dist/types/element/src/zindex.d.ts +7 -1
- package/dist/types/excalidraw/actions/actionAddToLibrary.d.ts +206 -219
- package/dist/types/excalidraw/actions/actionAlign.d.ts +12 -13
- package/dist/types/excalidraw/actions/actionBoundText.d.ts +122 -131
- package/dist/types/excalidraw/actions/actionCanvas.d.ts +446 -1594
- package/dist/types/excalidraw/actions/actionClipboard.d.ts +149 -919
- package/dist/types/excalidraw/actions/actionCropEditor.d.ts +59 -64
- package/dist/types/excalidraw/actions/actionDeleteSelected.d.ts +192 -208
- package/dist/types/excalidraw/actions/actionDeselect.d.ts +170 -0
- package/dist/types/excalidraw/actions/actionDistribute.d.ts +4 -6
- package/dist/types/excalidraw/actions/actionDuplicateSelection.d.ts +3 -4
- package/dist/types/excalidraw/actions/actionElementLink.d.ts +66 -77
- package/dist/types/excalidraw/actions/actionElementLock.d.ts +121 -130
- package/dist/types/excalidraw/actions/actionExport.d.ts +200 -1449
- package/dist/types/excalidraw/actions/actionFinalize.d.ts +11 -404
- package/dist/types/excalidraw/actions/actionFlip.d.ts +2 -3
- package/dist/types/excalidraw/actions/actionFrame.d.ts +318 -509
- package/dist/types/excalidraw/actions/actionGroup.d.ts +132 -149
- package/dist/types/excalidraw/actions/actionLinearEditor.d.ts +205 -196
- package/dist/types/excalidraw/actions/actionLink.d.ts +73 -78
- package/dist/types/excalidraw/actions/actionMenu.d.ts +60 -71
- package/dist/types/excalidraw/actions/actionNavigate.d.ts +18 -369
- package/dist/types/excalidraw/actions/actionProperties.d.ts +213 -2610
- package/dist/types/excalidraw/actions/actionSelectAll.d.ts +66 -75
- package/dist/types/excalidraw/actions/actionStyles.d.ts +60 -64
- package/dist/types/excalidraw/actions/actionTextAutoResize.d.ts +4 -4
- package/dist/types/excalidraw/actions/actionToggleArrowBinding.d.ts +186 -0
- package/dist/types/excalidraw/actions/actionToggleGridMode.d.ts +74 -80
- package/dist/types/excalidraw/actions/actionToggleMidpointSnapping.d.ts +186 -0
- package/dist/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +73 -78
- package/dist/types/excalidraw/actions/actionToggleSearchMenu.d.ts +62 -74
- package/dist/types/excalidraw/actions/actionToggleShapeSwitch.d.ts +2 -2
- package/dist/types/excalidraw/actions/actionToggleStats.d.ts +72 -77
- package/dist/types/excalidraw/actions/actionToggleViewMode.d.ts +73 -78
- package/dist/types/excalidraw/actions/actionToggleZenMode.d.ts +73 -78
- package/dist/types/excalidraw/actions/actionZindex.d.ts +8 -9
- package/dist/types/excalidraw/actions/colorTargets.d.ts +39 -0
- package/dist/types/excalidraw/actions/index.d.ts +4 -2
- package/dist/types/excalidraw/actions/manager.d.ts +1 -0
- package/dist/types/excalidraw/actions/register.d.ts +2 -2
- package/dist/types/excalidraw/actions/shortcuts.d.ts +1 -1
- package/dist/types/excalidraw/actions/types.d.ts +11 -7
- package/dist/types/excalidraw/{animated-trail.d.ts → animatedTrail.d.ts} +4 -3
- package/dist/types/excalidraw/appState.d.ts +50 -25
- package/dist/types/excalidraw/charts/charts.bar.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.constants.d.ts +48 -0
- package/dist/types/excalidraw/charts/charts.helpers.d.ts +32 -0
- package/dist/types/excalidraw/charts/charts.line.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.parse.d.ts +10 -0
- package/dist/types/excalidraw/charts/charts.radar.d.ts +2 -0
- package/dist/types/excalidraw/charts/charts.types.d.ts +18 -0
- package/dist/types/excalidraw/charts/index.d.ts +7 -0
- package/dist/types/excalidraw/clipboard.d.ts +13 -38
- package/dist/types/excalidraw/components/Actions.d.ts +22 -14
- package/dist/types/excalidraw/components/ActiveConfirmDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/App.arrowText.d.ts +104 -0
- package/dist/types/excalidraw/components/App.bucketFill.d.ts +48 -0
- package/dist/types/excalidraw/components/App.cursor.d.ts +38 -0
- package/dist/types/excalidraw/components/App.d.ts +552 -125
- package/dist/types/excalidraw/components/App.drawshape.d.ts +55 -0
- package/dist/types/excalidraw/components/App.flowchart.d.ts +21 -0
- package/dist/types/excalidraw/components/App.toolDrag.d.ts +63 -0
- package/dist/types/excalidraw/components/App.viewport.d.ts +73 -0
- package/dist/types/excalidraw/components/App.wheel.d.ts +33 -0
- 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 +9 -5
- package/dist/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/Picker.d.ts +3 -1
- package/dist/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +9 -2
- package/dist/types/excalidraw/components/ColorPicker/ShadeList.d.ts +4 -2
- package/dist/types/excalidraw/components/ColorPicker/TopPicks.d.ts +8 -1
- package/dist/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +1 -2
- package/dist/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +2 -2
- package/dist/types/excalidraw/components/ColorPicker/topPicksDnD.d.ts +31 -0
- package/dist/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +1 -2
- package/dist/types/excalidraw/components/CommandPalette/types.d.ts +2 -4
- package/dist/types/excalidraw/components/ConvertElementTypePopup.d.ts +4 -4
- package/dist/types/excalidraw/components/CursorHint.d.ts +46 -0
- 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 +1 -2
- package/dist/types/excalidraw/components/FilledButton.d.ts +2 -1
- package/dist/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +0 -1
- package/dist/types/excalidraw/components/HelpDialog.d.ts +1 -1
- package/dist/types/excalidraw/components/HintViewer.d.ts +4 -3
- package/dist/types/excalidraw/components/IconButton.d.ts +48 -0
- package/dist/types/excalidraw/components/IconPicker.d.ts +14 -9
- package/dist/types/excalidraw/components/InlineIcon.d.ts +2 -2
- package/dist/types/excalidraw/components/Island.d.ts +7 -0
- package/dist/types/excalidraw/components/LaserPointerButton.d.ts +2 -4
- package/dist/types/excalidraw/components/LayerUI.d.ts +5 -2
- package/dist/types/excalidraw/components/LibraryMenu.d.ts +1 -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/LibraryUnit.d.ts +2 -3
- package/dist/types/excalidraw/components/LoadingMessage.d.ts +0 -1
- package/dist/types/excalidraw/components/LockButton.d.ts +3 -4
- package/dist/types/excalidraw/components/MagicButton.d.ts +0 -2
- package/dist/types/excalidraw/components/MobileMenu.d.ts +4 -4
- package/dist/types/excalidraw/components/MobileToolbar.d.ts +9 -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/OverwriteConfirm/OverwriteConfirmState.d.ts +1 -1
- package/dist/types/excalidraw/components/PasteChartDialog.d.ts +4 -5
- package/dist/types/excalidraw/components/PenModeButton.d.ts +2 -5
- package/dist/types/excalidraw/components/Popover.d.ts +1 -3
- package/dist/types/excalidraw/components/PropertiesPopover.d.ts +1 -1
- package/dist/types/excalidraw/components/{ButtonIcon.d.ts → RadioButton.d.ts} +2 -5
- 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/SVGLayer.d.ts +1 -1
- package/dist/types/excalidraw/components/ScrollableList.d.ts +0 -1
- package/dist/types/excalidraw/components/SearchMenu.d.ts +1 -1
- package/dist/types/excalidraw/components/Sidebar/Sidebar.d.ts +16 -22
- 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/Angle.d.ts +2 -2
- 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/Dimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/DragInput.d.ts +2 -3
- package/dist/types/excalidraw/components/Stats/MultiAngle.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiDimension.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/MultiPosition.d.ts +2 -2
- package/dist/types/excalidraw/components/Stats/Position.d.ts +3 -3
- package/dist/types/excalidraw/components/Stats/index.d.ts +7 -8
- package/dist/types/excalidraw/components/Stats/utils.d.ts +1 -1
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatHistoryMenu.d.ts +15 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatInterface.d.ts +23 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/ChatMessage.d.ts +14 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/TTDChatPanel.d.ts +27 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/index.d.ts +3 -0
- package/dist/types/excalidraw/components/TTDDialog/Chat/useChatAgent.d.ts +8 -0
- package/dist/types/excalidraw/components/TTDDialog/CodeMirrorEditor.d.ts +11 -0
- package/dist/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +3 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDContext.d.ts +13 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +12 -29
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +3 -3
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +5 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +13 -9
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +1 -2
- package/dist/types/excalidraw/components/TTDDialog/TTDPreviewPanel.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/TTDWelcomeMessage.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/TextToDiagram.d.ts +9 -0
- package/dist/types/excalidraw/components/TTDDialog/common.d.ts +16 -16
- package/dist/types/excalidraw/components/TTDDialog/hooks/useChatManagement.d.ts +13 -0
- package/dist/types/excalidraw/components/TTDDialog/hooks/useMermaidRenderer.d.ts +14 -0
- package/dist/types/excalidraw/components/TTDDialog/hooks/useTextGeneration.d.ts +7 -0
- package/dist/types/excalidraw/components/TTDDialog/mermaid-lang-lite.d.ts +2 -0
- package/dist/types/excalidraw/components/TTDDialog/types.d.ts +95 -0
- package/dist/types/excalidraw/components/TTDDialog/useTTDChatStorage.d.ts +22 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/chat.d.ts +10 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidAutoFix.d.ts +1 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidError.d.ts +10 -0
- package/dist/types/excalidraw/components/TTDDialog/utils/mermaidValidation.d.ts +1 -0
- package/dist/types/excalidraw/components/Toast.d.ts +11 -7
- package/dist/types/excalidraw/components/ToolPopover.d.ts +3 -6
- package/dist/types/excalidraw/components/Toolbar.d.ts +11 -0
- package/dist/types/excalidraw/components/Tools.d.ts +151 -0
- package/dist/types/excalidraw/components/Trans.d.ts +2 -2
- package/dist/types/excalidraw/components/UserList.d.ts +3 -2
- package/dist/types/excalidraw/components/ViewportStatusFrame/ViewportStatusFrame.d.ts +11 -0
- package/dist/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +10 -4
- package/dist/types/excalidraw/components/canvases/NewElementCanvas.d.ts +3 -0
- package/dist/types/excalidraw/components/canvases/StaticCanvas.d.ts +1 -1
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +48 -38
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +7 -6
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +3 -3
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +13 -22
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemCheckbox.d.ts +5 -0
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +5 -4
- package/dist/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +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/footer/Footer.d.ts +3 -1
- package/dist/types/excalidraw/components/hoc/withInternalFallback.d.ts +1 -1
- package/dist/types/excalidraw/components/hyperlink/helpers.d.ts +3 -3
- package/dist/types/excalidraw/components/icons.d.ts +51 -22
- package/dist/types/excalidraw/components/main-menu/DefaultItems.d.ts +25 -3
- package/dist/types/excalidraw/components/main-menu/MainMenu.d.ts +39 -35
- package/dist/types/excalidraw/components/positionElementBesideCursor.d.ts +26 -0
- package/dist/types/excalidraw/components/shapeActionPredicates.d.ts +39 -0
- package/dist/types/excalidraw/data/blob.d.ts +354 -7
- package/dist/types/excalidraw/data/encode.d.ts +4 -4
- package/dist/types/excalidraw/data/encryption.d.ts +5 -5
- package/dist/types/excalidraw/data/filesystem.d.ts +5 -7
- package/dist/types/excalidraw/data/index.d.ts +8 -9
- package/dist/types/excalidraw/data/json.d.ts +183 -3
- package/dist/types/excalidraw/data/library.d.ts +25 -10
- package/dist/types/excalidraw/data/resave.d.ts +7 -2
- package/dist/types/excalidraw/data/restore.d.ts +25 -10
- package/dist/types/excalidraw/drawShapeTrail.d.ts +16 -0
- package/dist/types/excalidraw/editor-jotai.d.ts +11 -11
- package/dist/types/excalidraw/eraser/index.d.ts +2 -3
- package/dist/types/excalidraw/errors.d.ts +14 -0
- package/dist/types/excalidraw/fonts/Fonts.d.ts +3 -2
- package/dist/types/excalidraw/hooks/useAppStateValue.d.ts +29 -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 +5 -5
- package/dist/types/excalidraw/i18n.d.ts +2 -2
- package/dist/types/excalidraw/{laser-trails.d.ts → laserTrails.d.ts} +5 -7
- package/dist/types/excalidraw/lasso/index.d.ts +2 -3
- package/dist/types/excalidraw/lasso/utils.d.ts +2 -0
- package/dist/types/excalidraw/renderer/animation.d.ts +16 -0
- package/dist/types/excalidraw/renderer/helpers.d.ts +31 -8
- package/dist/types/excalidraw/renderer/interactiveScene.d.ts +7 -15
- package/dist/types/excalidraw/scene/Renderer.d.ts +477 -18
- package/dist/types/excalidraw/scene/export.d.ts +4 -4
- package/dist/types/excalidraw/scene/index.d.ts +2 -2
- package/dist/types/excalidraw/scene/types.d.ts +27 -8
- package/dist/types/excalidraw/snapping.d.ts +12 -12
- 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 +566 -55
- package/dist/types/excalidraw/viewport.d.ts +280 -0
- package/dist/types/excalidraw/wysiwyg/textWysiwyg.d.ts +8 -5
- package/dist/types/fractional-indexing/src/index.d.ts +29 -0
- package/dist/types/laser-pointer/src/index.d.ts +2 -0
- package/dist/types/laser-pointer/src/math.d.ts +16 -0
- package/dist/types/laser-pointer/src/simplify.d.ts +2 -0
- package/dist/types/laser-pointer/src/state.d.ts +36 -0
- package/dist/types/math/src/constants.d.ts +0 -1
- package/dist/types/math/src/curve.d.ts +23 -13
- package/dist/types/math/src/index.d.ts +1 -0
- package/dist/types/math/src/pca.d.ts +79 -0
- package/dist/types/math/src/point.d.ts +8 -2
- package/dist/types/math/src/polygon.d.ts +26 -2
- package/dist/types/math/src/range.d.ts +1 -3
- package/dist/types/math/src/segment.d.ts +9 -3
- package/dist/types/math/src/types.d.ts +25 -1
- package/dist/types/utils/src/export.d.ts +9 -8
- package/dist/types/utils/src/index.d.ts +1 -2
- package/dist/types/utils/src/shape.d.ts +8 -8
- package/package.json +2 -2
- package/dist/types/excalidraw/actions/actionEmbeddable.d.ts +0 -190
- package/dist/types/excalidraw/animation-frame-handler.d.ts +0 -16
- 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/FollowMode/FollowMode.d.ts +0 -10
- package/dist/types/excalidraw/components/HandButton.d.ts +0 -10
- package/dist/types/excalidraw/components/InitializeApp.d.ts +0 -10
- package/dist/types/excalidraw/components/MobileToolBar.d.ts +0 -11
- package/dist/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +0 -8
- package/dist/types/excalidraw/components/ToolButton.d.ts +0 -49
- 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/shapes.d.ts +0 -190
- 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/cursor.d.ts +0 -5
- package/dist/types/excalidraw/data/reconcile.d.ts +0 -7
- package/dist/types/excalidraw/index.d.ts +0 -47
- package/dist/types/excalidraw/polyfill.d.ts +0 -2
- package/dist/types/excalidraw/scene/scroll.d.ts +0 -23
- package/dist/types/excalidraw/scene/zoom.d.ts +0 -12
- package/dist/types/utils/src/bbox.d.ts +0 -9
- package/dist/types/utils/src/withinBounds.d.ts +0 -19
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import type { Scene } from "./Scene";
|
|
2
|
+
import type { VerticalResizeAnchor } from "./sizeHelpers";
|
|
3
|
+
import type { TransformHandleDirection } from "./transformHandles";
|
|
4
|
+
import type { ElementsMap, ExcalidrawElement, ExcalidrawStickyNoteElement, ExcalidrawTextElement, NonDeletedExcalidrawElement } from "./types";
|
|
5
|
+
export type StickyNoteRenderPoint = {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
};
|
|
9
|
+
export type StickyNotePathCommand = {
|
|
10
|
+
type: "move";
|
|
11
|
+
point: StickyNoteRenderPoint;
|
|
12
|
+
} | {
|
|
13
|
+
type: "line";
|
|
14
|
+
point: StickyNoteRenderPoint;
|
|
15
|
+
} | {
|
|
16
|
+
type: "quadratic";
|
|
17
|
+
control: StickyNoteRenderPoint;
|
|
18
|
+
point: StickyNoteRenderPoint;
|
|
19
|
+
};
|
|
20
|
+
export declare const normalizeStickyNoteStrokeColor: (strokeColor: string | null | undefined) => string;
|
|
21
|
+
export declare const normalizeStickyNoteBackgroundColor: (backgroundColor: string | null | undefined) => string;
|
|
22
|
+
/**
|
|
23
|
+
* The update that applies a picked color to an element under the sticky
|
|
24
|
+
* note policy: a note is always filled and its label — the visible text,
|
|
25
|
+
* which the note's own `strokeColor` seeds — never goes transparent. Every
|
|
26
|
+
* color surface (actions, both eyedroppers, paste styles, bind) routes
|
|
27
|
+
* through this instead of re-deriving the rule.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* The element a color pick on `element` lands on. A note's label has no fill
|
|
31
|
+
* of its own, so a background pick on the label — the styles panel while
|
|
32
|
+
* editing it — goes to the note; everything else colors itself.
|
|
33
|
+
*/
|
|
34
|
+
export declare const getColorTargetElement: (element: ExcalidrawElement, property: "strokeColor" | "backgroundColor", elementsMap: ElementsMap) => ExcalidrawElement;
|
|
35
|
+
export declare const getColorUpdate: (element: ExcalidrawElement, property: "strokeColor" | "backgroundColor", color: string, elementsMap: ElementsMap) => {
|
|
36
|
+
strokeColor: string;
|
|
37
|
+
} | {
|
|
38
|
+
backgroundColor: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* A note's ink is one color: the container's `strokeColor` — the seed for a
|
|
42
|
+
* new label and what the creation-date footer paints with — and its label's.
|
|
43
|
+
* Run after a property write to copy the side that changed onto the other;
|
|
44
|
+
* when both changed, or neither (data that drifted), the label wins: it is
|
|
45
|
+
* the text the user styled. A transparent label always takes the note's
|
|
46
|
+
* color. Returns the same array when nothing needs to change.
|
|
47
|
+
*/
|
|
48
|
+
export declare const syncStickyNoteInk: <T extends ExcalidrawElement>(elements: readonly T[], prevElementsMap: ElementsMap) => readonly T[];
|
|
49
|
+
export declare const getStickyNoteCornerRadius: (element: ExcalidrawStickyNoteElement) => number;
|
|
50
|
+
export declare const getStickyNoteRenderPoints: (element: ExcalidrawStickyNoteElement, { offsetX, offsetY, seedOffset, }?: {
|
|
51
|
+
offsetX?: number;
|
|
52
|
+
offsetY?: number;
|
|
53
|
+
seedOffset?: number;
|
|
54
|
+
}) => StickyNoteRenderPoint[];
|
|
55
|
+
export declare const getStickyNotePathCommands: (element: ExcalidrawStickyNoteElement, { shadow }?: {
|
|
56
|
+
shadow?: boolean;
|
|
57
|
+
}) => StickyNotePathCommand[];
|
|
58
|
+
export declare const normalizeStickyNoteFontSize: (fontSize: number) => number;
|
|
59
|
+
/** whether the text element is the label of a sticky note */
|
|
60
|
+
export declare const isStickyNoteBoundText: (textElement: ExcalidrawTextElement, elementsMap: ElementsMap) => boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The font size the user picked: the ceiling the auto-fit shrinks from for a
|
|
63
|
+
* sticky note label, plain `fontSize` for any other text.
|
|
64
|
+
*
|
|
65
|
+
* Container-aware on purpose — generic binding repair (duplication, history)
|
|
66
|
+
* rewrites `containerId` without touching the ceiling, so a numeric
|
|
67
|
+
* `baseFontSize` alone does not prove the text is still sticky-bound.
|
|
68
|
+
*/
|
|
69
|
+
export declare const getBaseFontSize: (textElement: ExcalidrawTextElement, elementsMap: ElementsMap) => number;
|
|
70
|
+
/** the update that applies a user-picked font size (see `getBaseFontSize`) */
|
|
71
|
+
export declare const getBaseFontSizeUpdate: (textElement: ExcalidrawTextElement, fontSize: number, elementsMap: ElementsMap) => {
|
|
72
|
+
fontSize: number;
|
|
73
|
+
} | {
|
|
74
|
+
baseFontSize: number;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* The creation-date label: absolute, so painting needs no clock and exports
|
|
78
|
+
* don't go stale, and short ("7 Sep") while the year is the current one.
|
|
79
|
+
* `null` when the note has no usable timestamp (files restored without one).
|
|
80
|
+
* Fixed English in the viewer's local time zone — the element package has no
|
|
81
|
+
* locale, and the footer is chosen by width bucket rather than measured.
|
|
82
|
+
*/
|
|
83
|
+
export declare const getStickyNoteDateLabel: (created: ExcalidrawStickyNoteElement["created"], { short, now }?: {
|
|
84
|
+
short?: boolean;
|
|
85
|
+
now?: number;
|
|
86
|
+
}) => string | null;
|
|
87
|
+
/**
|
|
88
|
+
* What the footer paints and where, in note-local coordinates — shared by the
|
|
89
|
+
* canvas and SVG renderers, which take the font and opacity from
|
|
90
|
+
* `STICKY_NOTE_FOOTER`. `null` for the 0×0 creation draft and anything under
|
|
91
|
+
* the data floor, where the band would overlap the top padding.
|
|
92
|
+
*/
|
|
93
|
+
export declare const getStickyNoteFooter: (element: Pick<ExcalidrawStickyNoteElement, "created" | "width" | "height">, now?: number) => {
|
|
94
|
+
text: string;
|
|
95
|
+
x: number;
|
|
96
|
+
y: number;
|
|
97
|
+
} | null;
|
|
98
|
+
/**
|
|
99
|
+
* The smallest note the UI lets a user create or resize to: one line at the
|
|
100
|
+
* label's font ceiling plus padding (and, vertically, the footer), never below
|
|
101
|
+
* `STICKY_NOTE_MIN_SIZE`. Without the font term a fresh note would grow on
|
|
102
|
+
* the very first keystroke. Data-level passes (restore, action post-passes)
|
|
103
|
+
* only enforce the constant floor — the layout grows a note as needed.
|
|
104
|
+
*/
|
|
105
|
+
export declare const getStickyNoteMinSize: ({ fontSize, fontFamily, }: Pick<ExcalidrawTextElement, "fontSize" | "fontFamily">) => {
|
|
106
|
+
width: number;
|
|
107
|
+
height: number;
|
|
108
|
+
};
|
|
109
|
+
export type StickyNoteLayoutAnchor = VerticalResizeAnchor;
|
|
110
|
+
export type StickyNoteLayoutOpts = {
|
|
111
|
+
/** unwrapped text to lay out; defaults to the label's `originalText` */
|
|
112
|
+
originalText?: string;
|
|
113
|
+
/**
|
|
114
|
+
* absolute base-height intent — the gesture-start value to preserve, or the
|
|
115
|
+
* height a resize asked for. Omitted = keep the note's live `baseHeight`
|
|
116
|
+
* (typing, style changes, restore).
|
|
117
|
+
*/
|
|
118
|
+
baseHeight?: number;
|
|
119
|
+
/**
|
|
120
|
+
* absolute font-ceiling intent (a proportional resize passes
|
|
121
|
+
* `gesture-start ceiling × scale`). Omitted = keep the label's live ceiling.
|
|
122
|
+
* Never a multiplier on the live value — that compounds across pointer-moves.
|
|
123
|
+
*/
|
|
124
|
+
baseFontSize?: number;
|
|
125
|
+
/** the edge that stays put when the content correction changes the height */
|
|
126
|
+
anchor?: StickyNoteLayoutAnchor;
|
|
127
|
+
};
|
|
128
|
+
export type StickyNoteLayout = {
|
|
129
|
+
container: Pick<ExcalidrawStickyNoteElement, "x" | "y" | "width" | "height" | "baseHeight">;
|
|
130
|
+
text: Pick<ExcalidrawTextElement, "text" | "fontSize" | "baseFontSize" | "width" | "height" | "x" | "y" | "angle"> | null;
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* The single source of truth for a sticky note's geometry: wraps the label at
|
|
134
|
+
* the note's width, fits the font under the ceiling, grows the note past
|
|
135
|
+
* `baseHeight` only when the text still overflows at the minimum size, and
|
|
136
|
+
* positions the label inside. Pure — returns the updates for both elements.
|
|
137
|
+
*/
|
|
138
|
+
export declare const getStickyNoteLayout: (container: ExcalidrawStickyNoteElement, textElement: ExcalidrawTextElement | null, opts?: StickyNoteLayoutOpts) => StickyNoteLayout;
|
|
139
|
+
/**
|
|
140
|
+
* Resize intents for a sticky note — the §3.3 matrix of the plan. Every value
|
|
141
|
+
* is absolute and derived from the gesture-start snapshot on each pointer-move,
|
|
142
|
+
* so releasing Shift (or Alt) mid-gesture restores the original base height
|
|
143
|
+
* and ceiling instead of keeping values a previous move scaled.
|
|
144
|
+
*
|
|
145
|
+
* - width-only gestures (free E/W, Stats W) preserve the base height
|
|
146
|
+
* - height-changing gestures use the requested height as the new base
|
|
147
|
+
* - proportional gestures (Shift on any handle, aspect-locked multi-select,
|
|
148
|
+
* Stats group) additionally scale the font ceiling with the note
|
|
149
|
+
* - flips preserve everything
|
|
150
|
+
* - the content correction anchors at the edge the gesture holds still
|
|
151
|
+
*/
|
|
152
|
+
export declare const getStickyNoteResizeIntent: (
|
|
153
|
+
/** the note with the requested geometry already applied */
|
|
154
|
+
container: ExcalidrawStickyNoteElement, originalElementsMap: ElementsMap, handleDirection: TransformHandleDirection, { proportional, fromCenter, flip, }: {
|
|
155
|
+
proportional: boolean;
|
|
156
|
+
fromCenter: boolean;
|
|
157
|
+
flip?: boolean;
|
|
158
|
+
}) => Pick<StickyNoteLayoutOpts, "baseHeight" | "baseFontSize" | "anchor">;
|
|
159
|
+
/**
|
|
160
|
+
* Applies `getStickyNoteLayout` to a live scene, then runs the bound-arrow
|
|
161
|
+
* pass unless the caller already owns one (`bindings: false`) or needs to
|
|
162
|
+
* forward its context (`bindings: { simultaneouslyUpdated }` — arrows resized
|
|
163
|
+
* in the same gesture must not be moved by the pass, `updateBoundElements`
|
|
164
|
+
* skips them only when told).
|
|
165
|
+
*/
|
|
166
|
+
export declare const updateStickyNoteLayout: (container: ExcalidrawStickyNoteElement, scene: Scene, { text, bindings, ...layoutOpts }?: StickyNoteLayoutOpts & {
|
|
167
|
+
/** the label to lay out when it is an uncommitted clone (font actions clone before install) */
|
|
168
|
+
text?: ExcalidrawTextElement | null;
|
|
169
|
+
bindings?: {
|
|
170
|
+
simultaneouslyUpdated?: readonly NonDeletedExcalidrawElement[];
|
|
171
|
+
} | false;
|
|
172
|
+
}) => StickyNoteLayout;
|
|
173
|
+
/**
|
|
174
|
+
* Applies `getStickyNoteLayout` inside an immutable elements array (property
|
|
175
|
+
* actions, paste styles, restore): the notes among `affectedIds` — or the
|
|
176
|
+
* notes whose labels are — get both halves merged into their clones. Elements
|
|
177
|
+
* that need no change keep their identity and version; when `prevElementsMap`
|
|
178
|
+
* is given, notes whose layout inputs did not change skip the fit entirely.
|
|
179
|
+
* Bound arrows are the caller's job once the result is installed.
|
|
180
|
+
*/
|
|
181
|
+
export declare const relayoutStickyNotes: <T extends ExcalidrawElement>(elements: readonly T[], affectedIds: ReadonlySet<ExcalidrawElement["id"]>, opts?: {
|
|
182
|
+
prevElementsMap?: ElementsMap;
|
|
183
|
+
}) => readonly T[];
|
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import { type Radians } from "@excalidraw/math";
|
|
2
|
-
import type { AppState } from "@excalidraw/excalidraw/types";
|
|
3
2
|
import type { ExtractSetType } from "@excalidraw/common/utility-types";
|
|
4
3
|
import type { Scene } from "./Scene";
|
|
5
4
|
import type { MaybeTransformHandleType } from "./transformHandles";
|
|
6
|
-
import type { ElementsMap, ExcalidrawElement, ExcalidrawElementType, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer,
|
|
5
|
+
import type { ElementsMap, ExcalidrawElement, ExcalidrawElementType, ExcalidrawTextContainer, ExcalidrawTextElement, ExcalidrawTextElementWithContainer, NonDeleted } from "./types";
|
|
7
6
|
export declare const redrawTextBoundingBox: (textElement: ExcalidrawTextElement, container: ExcalidrawElement | null, scene: Scene) => void;
|
|
8
|
-
export declare const handleBindTextResize: (container:
|
|
7
|
+
export declare const handleBindTextResize: (container: ExcalidrawElement, scene: Scene, transformHandleType: MaybeTransformHandleType, shouldMaintainAspectRatio?: boolean, shouldResizeFromCenter?: boolean, flipByY?: boolean) => void;
|
|
9
8
|
export declare const computeBoundTextPosition: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElementWithContainer, elementsMap: ElementsMap) => {
|
|
10
9
|
x: number;
|
|
11
10
|
y: number;
|
|
12
11
|
};
|
|
13
12
|
export declare const getBoundTextElementId: (container: ExcalidrawElement | null) => string | null;
|
|
14
|
-
export declare const getBoundTextElement: (element: ExcalidrawElement | null, elementsMap: ElementsMap) => ExcalidrawTextElementWithContainer | null;
|
|
15
|
-
export declare const getContainerElement: (element:
|
|
16
|
-
|
|
13
|
+
export declare const getBoundTextElement: (element: ExcalidrawElement | null, elementsMap: ElementsMap) => NonDeleted<ExcalidrawTextElementWithContainer> | null;
|
|
14
|
+
export declare const getContainerElement: <T extends ExcalidrawTextElement, R extends ExcalidrawTextContainer>(element: T | null, elementsMap: ElementsMap) => R | null;
|
|
15
|
+
/**
|
|
16
|
+
* The point a text bound to this container centers on — and, for arrows, the
|
|
17
|
+
* point the text tool snaps a new label to.
|
|
18
|
+
*/
|
|
19
|
+
export declare const getContainerCenter: (container: ExcalidrawElement, elementsMap: ElementsMap) => {
|
|
17
20
|
x: number;
|
|
18
21
|
y: number;
|
|
19
22
|
};
|
|
20
|
-
export declare const getContainerCoords: (container:
|
|
23
|
+
export declare const getContainerCoords: (container: ExcalidrawElement) => {
|
|
21
24
|
x: number;
|
|
22
25
|
y: number;
|
|
23
26
|
};
|
|
@@ -26,15 +29,16 @@ export declare const getBoundTextElementPosition: (container: ExcalidrawElement,
|
|
|
26
29
|
x: number;
|
|
27
30
|
y: number;
|
|
28
31
|
} | undefined;
|
|
29
|
-
export declare const shouldAllowVerticalAlign: (selectedElements:
|
|
30
|
-
export declare const suppportsHorizontalAlign: (selectedElements:
|
|
32
|
+
export declare const shouldAllowVerticalAlign: (selectedElements: readonly ExcalidrawElement[], elementsMap: ElementsMap) => boolean;
|
|
33
|
+
export declare const suppportsHorizontalAlign: (selectedElements: readonly ExcalidrawElement[], elementsMap: ElementsMap) => boolean;
|
|
31
34
|
declare const VALID_CONTAINER_TYPES: Set<string>;
|
|
32
35
|
export declare const isValidTextContainer: (element: {
|
|
33
36
|
type: ExcalidrawElementType;
|
|
34
|
-
}) =>
|
|
37
|
+
}) => element is ExcalidrawTextContainer;
|
|
35
38
|
export declare const computeContainerDimensionForBoundText: (dimension: number, containerType: ExtractSetType<typeof VALID_CONTAINER_TYPES>) => number;
|
|
36
39
|
export declare const getBoundTextMaxWidth: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElement | null) => number;
|
|
37
40
|
export declare const getBoundTextMaxHeight: (container: ExcalidrawElement, boundTextElement: ExcalidrawTextElementWithContainer) => number;
|
|
38
41
|
/** retrieves text from text elements and concatenates to a single string */
|
|
39
42
|
export declare const getTextFromElements: (elements: readonly ExcalidrawElement[], separator?: string) => string;
|
|
43
|
+
export declare const DEFAULT_BOUND_TEXT_LABEL_POSITION = 0.5;
|
|
40
44
|
export {};
|
|
@@ -11,9 +11,7 @@ export declare const normalizeText: (text: string) => string;
|
|
|
11
11
|
* To get unitless line-height (if unknown) we can calculate it by dividing
|
|
12
12
|
* height-per-line by fontSize.
|
|
13
13
|
*/
|
|
14
|
-
export declare const detectLineHeight: (textElement: ExcalidrawTextElement) =>
|
|
15
|
-
_brand: "unitlessLineHeight";
|
|
16
|
-
};
|
|
14
|
+
export declare const detectLineHeight: (textElement: ExcalidrawTextElement) => ExcalidrawTextElement["lineHeight"];
|
|
17
15
|
/**
|
|
18
16
|
* We calculate the line height from the font size and the unitless line height,
|
|
19
17
|
* aligning with the W3C spec.
|
|
@@ -5,9 +5,35 @@ import type { FontString } from "./types";
|
|
|
5
5
|
export declare const containsCJK: (text: string) => boolean;
|
|
6
6
|
/**
|
|
7
7
|
* Breaks the line into the tokens based on the found line break opporutnities.
|
|
8
|
+
*
|
|
9
|
+
* Note: tokenization normalizes to NFC first so decomposed graphemes are treated as
|
|
10
|
+
* their composed variants for wrapping. Any code that needs exact source offsets should
|
|
11
|
+
* keep in mind that this assumes the input text is already NFC-normalized.
|
|
8
12
|
*/
|
|
9
13
|
export declare const parseTokens: (line: string) => string[];
|
|
10
14
|
/**
|
|
11
15
|
* Wraps the original text into the lines based on the given width.
|
|
16
|
+
*
|
|
17
|
+
* This is a convenience adapter over `getWrappedTextLines()` for call sites
|
|
18
|
+
* that only need the rendered wrapped string and not the source offsets.
|
|
12
19
|
*/
|
|
13
20
|
export declare const wrapText: (text: string, font: FontString, maxWidth: number) => string;
|
|
21
|
+
/**
|
|
22
|
+
* A single rendered visual line produced from the original text.
|
|
23
|
+
*
|
|
24
|
+
* `start` and `end` are end-exclusive code-unit offsets into the original text, and do
|
|
25
|
+
* not include synthetic soft line breaks inserted by this module. If trailing whitespace
|
|
26
|
+
* was trimmed away at a wrap boundary, `end` points to the last rendered character.
|
|
27
|
+
*/
|
|
28
|
+
export type WrappedTextLine = {
|
|
29
|
+
text: string;
|
|
30
|
+
start: number;
|
|
31
|
+
end: number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Returns the rendered visual lines together with their source offsets.
|
|
35
|
+
*
|
|
36
|
+
* This is the source-of-truth wrapping pipeline for callers that need more than the
|
|
37
|
+
* final wrapped string, for example caret placement or future editor/rich-text mapping.
|
|
38
|
+
*/
|
|
39
|
+
export declare const getWrappedTextLines: (text: string, font: FontString, maxWidth: number) => WrappedTextLine[];
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import type { ElementConstructorOpts } from "@excalidraw/element";
|
|
2
|
-
import type { ExcalidrawBindableElement, ExcalidrawElement, ExcalidrawFrameElement, ExcalidrawFreeDrawElement, ExcalidrawGenericElement, ExcalidrawIframeLikeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawMagicFrameElement, ExcalidrawSelectionElement, ExcalidrawTextElement, FileId, FontFamilyValues, TextAlign, VerticalAlign } from "@excalidraw/element/types";
|
|
3
1
|
import type { MarkOptional } from "@excalidraw/common/utility-types";
|
|
2
|
+
import { type ElementConstructorOpts } from "./newElement";
|
|
3
|
+
import type { ExcalidrawBindableElement, ExcalidrawElement, ExcalidrawFrameElement, ExcalidrawFreeDrawElement, ExcalidrawGenericElement, ExcalidrawIframeLikeElement, ExcalidrawImageElement, ExcalidrawLinearElement, ExcalidrawMagicFrameElement, ExcalidrawSelectionElement, ExcalidrawTextElement, FileId, FontFamilyValues, NonDeletedExcalidrawElement, Ordered, TextAlign, VerticalAlign, ExcalidrawStickyNoteElement } from "./types";
|
|
4
|
+
/**
|
|
5
|
+
* Options for elements generated from a skeleton fragment (bound labels and
|
|
6
|
+
* binding endpoints). Such elements are always constructed fresh, hence they
|
|
7
|
+
* never carry a creation time of their own.
|
|
8
|
+
*/
|
|
9
|
+
type FragmentConstructorOpts = MarkOptional<Omit<ElementConstructorOpts, "created">, "x" | "y">;
|
|
4
10
|
export type ValidLinearElement = {
|
|
5
11
|
type: "arrow" | "line";
|
|
6
12
|
x: number;
|
|
@@ -11,7 +17,7 @@ export type ValidLinearElement = {
|
|
|
11
17
|
fontFamily?: FontFamilyValues;
|
|
12
18
|
textAlign?: TextAlign;
|
|
13
19
|
verticalAlign?: VerticalAlign;
|
|
14
|
-
} &
|
|
20
|
+
} & FragmentConstructorOpts;
|
|
15
21
|
end?: (({
|
|
16
22
|
type: Exclude<ExcalidrawBindableElement["type"], "image" | "text" | "frame" | "magicframe" | "embeddable" | "iframe">;
|
|
17
23
|
id?: ExcalidrawGenericElement["id"];
|
|
@@ -25,7 +31,7 @@ export type ValidLinearElement = {
|
|
|
25
31
|
type?: "text";
|
|
26
32
|
id: ExcalidrawTextElement["id"];
|
|
27
33
|
text: string;
|
|
28
|
-
}) & Partial<ExcalidrawTextElement
|
|
34
|
+
}) & Partial<Omit<ExcalidrawTextElement, "created">>)) & FragmentConstructorOpts;
|
|
29
35
|
start?: (({
|
|
30
36
|
type: Exclude<ExcalidrawBindableElement["type"], "image" | "text" | "frame" | "magicframe" | "embeddable" | "iframe">;
|
|
31
37
|
id?: ExcalidrawGenericElement["id"];
|
|
@@ -39,7 +45,7 @@ export type ValidLinearElement = {
|
|
|
39
45
|
type?: "text";
|
|
40
46
|
id: ExcalidrawTextElement["id"];
|
|
41
47
|
text: string;
|
|
42
|
-
}) & Partial<ExcalidrawTextElement
|
|
48
|
+
}) & Partial<Omit<ExcalidrawTextElement, "created">>)) & FragmentConstructorOpts;
|
|
43
49
|
} & Partial<ExcalidrawLinearElement>;
|
|
44
50
|
export type ValidContainer = {
|
|
45
51
|
type: Exclude<ExcalidrawGenericElement["type"], "selection">;
|
|
@@ -50,13 +56,25 @@ export type ValidContainer = {
|
|
|
50
56
|
fontFamily?: FontFamilyValues;
|
|
51
57
|
textAlign?: TextAlign;
|
|
52
58
|
verticalAlign?: VerticalAlign;
|
|
53
|
-
} &
|
|
59
|
+
} & FragmentConstructorOpts;
|
|
54
60
|
} & ElementConstructorOpts;
|
|
61
|
+
/**
|
|
62
|
+
* A sticky note: an always-filled note whose label auto-fits. `label.fontSize`
|
|
63
|
+
* is the font ceiling the fit shrinks from; the note grows past its height
|
|
64
|
+
* (kept as `baseHeight`) only once the label hits the minimum font size.
|
|
65
|
+
*/
|
|
66
|
+
export type ValidStickyNote = {
|
|
67
|
+
type: "stickynote";
|
|
68
|
+
id?: ExcalidrawStickyNoteElement["id"];
|
|
69
|
+
label?: Extract<ValidContainer, {
|
|
70
|
+
label?: unknown;
|
|
71
|
+
}>["label"];
|
|
72
|
+
} & ElementConstructorOpts & Partial<Pick<ExcalidrawStickyNoteElement, "baseHeight">>;
|
|
55
73
|
export type ExcalidrawElementSkeleton = Extract<Exclude<ExcalidrawElement, ExcalidrawSelectionElement>, ExcalidrawIframeLikeElement | ExcalidrawFreeDrawElement> | ({
|
|
56
74
|
type: Extract<ExcalidrawLinearElement["type"], "line">;
|
|
57
75
|
x: number;
|
|
58
76
|
y: number;
|
|
59
|
-
} & Partial<ExcalidrawLinearElement>) | ValidContainer | ValidLinearElement | ({
|
|
77
|
+
} & Partial<ExcalidrawLinearElement>) | ValidContainer | ValidStickyNote | ValidLinearElement | ({
|
|
60
78
|
type: "text";
|
|
61
79
|
text: string;
|
|
62
80
|
x: number;
|
|
@@ -78,4 +96,5 @@ export type ExcalidrawElementSkeleton = Extract<Exclude<ExcalidrawElement, Excal
|
|
|
78
96
|
} & Partial<ExcalidrawMagicFrameElement>);
|
|
79
97
|
export declare const convertToExcalidrawElements: (elementsSkeleton: ExcalidrawElementSkeleton[] | null, opts?: {
|
|
80
98
|
regenerateIds: boolean;
|
|
81
|
-
}) =>
|
|
99
|
+
}) => Ordered<NonDeletedExcalidrawElement>[];
|
|
100
|
+
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { type EditorInterface } from "@excalidraw/common";
|
|
1
2
|
import type { Radians } from "@excalidraw/math";
|
|
2
|
-
import type {
|
|
3
|
-
import type { Bounds } from "
|
|
3
|
+
import type { InteractiveCanvasAppState, Zoom } from "@excalidraw/excalidraw/types";
|
|
4
|
+
import type { Bounds } from "@excalidraw/common";
|
|
4
5
|
import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement, PointerType } from "./types";
|
|
5
6
|
export type TransformHandleDirection = "n" | "s" | "w" | "e" | "nw" | "ne" | "sw" | "se";
|
|
6
7
|
export type TransformHandleType = TransformHandleDirection | "rotation";
|
|
@@ -28,28 +29,8 @@ export declare const OMIT_SIDES_FOR_FRAME: {
|
|
|
28
29
|
w: boolean;
|
|
29
30
|
rotation: boolean;
|
|
30
31
|
};
|
|
31
|
-
export declare const canResizeFromSides: (
|
|
32
|
-
export declare const
|
|
33
|
-
export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [number, number, number, number, number, number], angle: Radians, zoom: Zoom, pointerType: PointerType, omitSides?: {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
w?: boolean | undefined;
|
|
37
|
-
e?: boolean | undefined;
|
|
38
|
-
nw?: boolean | undefined;
|
|
39
|
-
ne?: boolean | undefined;
|
|
40
|
-
sw?: boolean | undefined;
|
|
41
|
-
se?: boolean | undefined;
|
|
42
|
-
rotation?: boolean | undefined;
|
|
43
|
-
}, margin?: number, spacing?: number) => TransformHandles;
|
|
44
|
-
export declare const getTransformHandles: (element: ExcalidrawElement, zoom: Zoom, elementsMap: ElementsMap, pointerType?: PointerType, omitSides?: {
|
|
45
|
-
s?: boolean | undefined;
|
|
46
|
-
n?: boolean | undefined;
|
|
47
|
-
w?: boolean | undefined;
|
|
48
|
-
e?: boolean | undefined;
|
|
49
|
-
nw?: boolean | undefined;
|
|
50
|
-
ne?: boolean | undefined;
|
|
51
|
-
sw?: boolean | undefined;
|
|
52
|
-
se?: boolean | undefined;
|
|
53
|
-
rotation?: boolean | undefined;
|
|
54
|
-
}) => TransformHandles;
|
|
55
|
-
export declare const hasBoundingBox: (elements: readonly NonDeletedExcalidrawElement[], appState: InteractiveCanvasAppState) => boolean;
|
|
32
|
+
export declare const canResizeFromSides: (editorInterface: EditorInterface) => boolean;
|
|
33
|
+
export declare const getOmitSidesForEditorInterface: (editorInterface: EditorInterface) => {};
|
|
34
|
+
export declare const getTransformHandlesFromCoords: ([x1, y1, x2, y2, cx, cy]: [number, number, number, number, number, number], angle: Radians, zoom: Zoom, pointerType: PointerType, omitSides?: { [T in TransformHandleType]?: boolean; }, margin?: number, spacing?: number) => TransformHandles;
|
|
35
|
+
export declare const getTransformHandles: (element: ExcalidrawElement, zoom: Zoom, elementsMap: ElementsMap, pointerType?: PointerType, omitSides?: { [T in TransformHandleType]?: boolean; }) => TransformHandles;
|
|
36
|
+
export declare const hasBoundingBox: (elements: readonly NonDeletedExcalidrawElement[], appState: InteractiveCanvasAppState, editorInterface: EditorInterface) => boolean;
|
|
@@ -1,50 +1,48 @@
|
|
|
1
1
|
import type { ElementOrToolType } from "@excalidraw/excalidraw/types";
|
|
2
2
|
import type { MarkNonNullable } from "@excalidraw/common/utility-types";
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
export declare const
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const
|
|
11
|
-
export declare const isFrameElement: (element:
|
|
12
|
-
export declare const isMagicFrameElement: (element:
|
|
13
|
-
export declare const isFrameLikeElement: (element:
|
|
14
|
-
export declare const isFreeDrawElement: (element?:
|
|
3
|
+
import type { ExcalidrawElement, ExcalidrawTextElement, ExcalidrawEmbeddableElement, ExcalidrawLinearElement, ExcalidrawBindableElement, ExcalidrawFreeDrawElement, InitializedExcalidrawImageElement, ExcalidrawImageElement, ExcalidrawTextElementWithContainer, ExcalidrawTextContainer, ExcalidrawFrameElement, RoundnessType, ExcalidrawFrameLikeElement, ExcalidrawElementType, ExcalidrawIframeElement, ExcalidrawIframeLikeElement, ExcalidrawMagicFrameElement, ExcalidrawArrowElement, ExcalidrawElbowArrowElement, ExcalidrawLineElement, ExcalidrawFlowchartNodeElement, ExcalidrawLinearElementSubType, ExcalidrawStickyNoteElement } from "./types";
|
|
4
|
+
export declare const isInitializedImageElement: <T extends ExcalidrawElement>(element: T | null) => element is T & InitializedExcalidrawImageElement;
|
|
5
|
+
export declare const isImageElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawImageElement;
|
|
6
|
+
export declare const isEmbeddableElement: <T extends ExcalidrawElement>(element: T | null | undefined) => element is T & ExcalidrawEmbeddableElement;
|
|
7
|
+
export declare const isIframeElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawIframeElement;
|
|
8
|
+
export declare const isIframeLikeElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawIframeLikeElement;
|
|
9
|
+
export declare const isTextElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawTextElement;
|
|
10
|
+
export declare const isStickyNoteElement: <T extends ExcalidrawElement>(element: T | null | undefined) => element is T & ExcalidrawStickyNoteElement;
|
|
11
|
+
export declare const isFrameElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawFrameElement;
|
|
12
|
+
export declare const isMagicFrameElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawMagicFrameElement;
|
|
13
|
+
export declare const isFrameLikeElement: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawFrameLikeElement;
|
|
14
|
+
export declare const isFreeDrawElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawFreeDrawElement;
|
|
15
15
|
export declare const isFreeDrawElementType: (elementType: ExcalidrawElementType) => boolean;
|
|
16
|
-
export declare const isLinearElement: (element?:
|
|
17
|
-
export declare const isLineElement: (element?:
|
|
18
|
-
export declare const isArrowElement: (element?:
|
|
19
|
-
export declare const isElbowArrow: (element?:
|
|
16
|
+
export declare const isLinearElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawLinearElement;
|
|
17
|
+
export declare const isLineElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawLineElement;
|
|
18
|
+
export declare const isArrowElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawArrowElement;
|
|
19
|
+
export declare const isElbowArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawElbowArrowElement;
|
|
20
20
|
/**
|
|
21
21
|
* sharp or curved arrow, but not elbow
|
|
22
22
|
*/
|
|
23
|
-
export declare const isSimpleArrow: (element?:
|
|
24
|
-
export declare const isSharpArrow: (element?:
|
|
25
|
-
export declare const isCurvedArrow: (element?:
|
|
23
|
+
export declare const isSimpleArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
|
|
24
|
+
export declare const isSharpArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
|
|
25
|
+
export declare const isCurvedArrow: <T extends ExcalidrawElement>(element?: T) => element is T & ExcalidrawArrowElement;
|
|
26
26
|
export declare const isLinearElementType: (elementType: ElementOrToolType) => boolean;
|
|
27
|
-
export declare const isBindingElement: (element?:
|
|
27
|
+
export declare const isBindingElement: <T extends ExcalidrawElement>(element?: T | null, includeLocked?: boolean) => element is T & ExcalidrawArrowElement;
|
|
28
28
|
export declare const isBindingElementType: (elementType: ElementOrToolType) => boolean;
|
|
29
|
-
export declare const isBindableElement: (element:
|
|
30
|
-
export declare const isRectanguloidElement: (element?:
|
|
31
|
-
export declare const isRectangularElement: (element?:
|
|
32
|
-
export declare const isTextBindableContainer: (element:
|
|
29
|
+
export declare const isBindableElement: <T extends ExcalidrawElement>(element: T | null | undefined, includeLocked?: boolean) => element is T & ExcalidrawBindableElement;
|
|
30
|
+
export declare const isRectanguloidElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawBindableElement;
|
|
31
|
+
export declare const isRectangularElement: <T extends ExcalidrawElement>(element?: T | null) => element is T & ExcalidrawBindableElement;
|
|
32
|
+
export declare const isTextBindableContainer: <T extends ExcalidrawElement>(element: T | null, includeLocked?: boolean) => element is T & ExcalidrawTextContainer;
|
|
33
33
|
export declare const isExcalidrawElement: (element: any) => element is ExcalidrawElement;
|
|
34
|
-
export declare const isFlowchartNodeElement: (element:
|
|
35
|
-
export declare const hasBoundTextElement: (element:
|
|
36
|
-
export declare const isBoundToContainer: (element:
|
|
34
|
+
export declare const isFlowchartNodeElement: <T extends ExcalidrawElement>(element: T) => element is T & ExcalidrawFlowchartNodeElement;
|
|
35
|
+
export declare const hasBoundTextElement: <T extends ExcalidrawElement>(element: T | null) => element is T & MarkNonNullable<ExcalidrawBindableElement, "boundElements">;
|
|
36
|
+
export declare const isBoundToContainer: <T extends ExcalidrawElement>(element: T | null) => element is T & ExcalidrawTextElementWithContainer;
|
|
37
37
|
export declare const isArrowBoundToElement: (element: ExcalidrawArrowElement) => boolean;
|
|
38
|
-
export declare const isUsingAdaptiveRadius: (type: string) =>
|
|
39
|
-
export declare const isUsingProportionalRadius: (type: string) =>
|
|
38
|
+
export declare const isUsingAdaptiveRadius: (type: string) => type is "rectangle" | "embeddable" | "iframe" | "image";
|
|
39
|
+
export declare const isUsingProportionalRadius: (type: string) => type is "line" | "arrow" | "stickynote" | "diamond";
|
|
40
40
|
export declare const canApplyRoundnessTypeToElement: (roundnessType: RoundnessType, element: ExcalidrawElement) => boolean;
|
|
41
41
|
export declare const getDefaultRoundnessTypeForElement: (element: ExcalidrawElement) => {
|
|
42
42
|
type: 2;
|
|
43
43
|
} | {
|
|
44
44
|
type: 3;
|
|
45
45
|
} | null;
|
|
46
|
-
export declare const isFixedPointBinding: (binding: PointBinding | FixedPointBinding) => binding is FixedPointBinding;
|
|
47
|
-
export declare const isBounds: (box: unknown) => box is Bounds;
|
|
48
46
|
export declare const getLinearElementSubType: (element: ExcalidrawLinearElement) => ExcalidrawLinearElementSubType;
|
|
49
47
|
/**
|
|
50
48
|
* Checks if current element points meet all the conditions for polygon=true
|
|
@@ -55,3 +53,4 @@ export declare const getLinearElementSubType: (element: ExcalidrawLinearElement)
|
|
|
55
53
|
*/
|
|
56
54
|
export declare const isValidPolygon: (points: ExcalidrawLineElement["points"]) => boolean;
|
|
57
55
|
export declare const canBecomePolygon: (points: ExcalidrawLineElement["points"]) => boolean;
|
|
56
|
+
export declare const isEligibleFrameChildType: (type: ElementOrToolType) => boolean;
|