@zsviczian/excalidraw 0.17.1-obsidian-42 → 0.17.1-obsidian-44
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/excalidraw.development.js +6747 -0
- package/dist/excalidraw.production.min.js +2 -0
- package/dist/excalidraw.production.min.js.LICENSE.txt +55 -0
- package/dist/styles.development.css +6708 -0
- package/dist/styles.production.css +65 -0
- package/package.json +1 -1
- package/types/excalidraw/actions/actionAddToLibrary.d.ts +575 -0
- package/types/excalidraw/actions/actionAlign.d.ts +108 -0
- package/types/excalidraw/actions/actionBoundText.d.ts +420 -0
- package/types/excalidraw/actions/actionCanvas.d.ts +2802 -0
- package/types/excalidraw/actions/actionClipboard.d.ts +1436 -0
- package/types/excalidraw/actions/actionDeleteSelected.d.ts +609 -0
- package/types/excalidraw/actions/actionDistribute.d.ts +34 -0
- package/types/excalidraw/actions/actionDuplicateSelection.d.ts +21 -0
- package/types/excalidraw/actions/actionElementLock.d.ts +408 -0
- package/types/excalidraw/actions/actionExport.d.ts +1794 -0
- package/types/excalidraw/actions/actionFinalize.d.ts +389 -0
- package/types/excalidraw/actions/actionFlip.d.ts +34 -0
- package/types/excalidraw/actions/actionFrame.d.ts +815 -0
- package/types/excalidraw/actions/actionGroup.d.ts +418 -0
- package/types/excalidraw/actions/actionHistory.d.ts +7 -0
- package/types/excalidraw/actions/actionLinearEditor.d.ts +205 -0
- package/types/excalidraw/actions/actionLink.d.ts +205 -0
- package/types/excalidraw/actions/actionMenu.d.ts +598 -0
- package/types/excalidraw/actions/actionNavigate.d.ts +394 -0
- package/types/excalidraw/actions/actionProperties.d.ts +3006 -0
- package/types/excalidraw/actions/actionSelectAll.d.ts +204 -0
- package/types/excalidraw/actions/actionStyles.d.ts +218 -0
- package/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
- package/types/excalidraw/actions/actionToggleGridMode.d.ts +207 -0
- package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +205 -0
- package/types/excalidraw/actions/actionToggleStats.d.ts +205 -0
- package/types/excalidraw/actions/actionToggleViewMode.d.ts +206 -0
- package/types/excalidraw/actions/actionToggleZenMode.d.ts +206 -0
- package/types/excalidraw/actions/actionZindex.d.ts +74 -0
- package/types/excalidraw/actions/index.d.ts +25 -0
- package/types/excalidraw/actions/manager.d.ts +21 -0
- package/types/excalidraw/actions/register.d.ts +5 -0
- package/types/excalidraw/actions/shortcuts.d.ts +4 -0
- package/types/excalidraw/actions/types.d.ts +47 -0
- package/types/excalidraw/align.d.ts +6 -0
- package/types/excalidraw/analytics.d.ts +1 -0
- package/types/excalidraw/animated-trail.d.ts +33 -0
- package/types/excalidraw/animation-frame-handler.d.ts +16 -0
- package/types/excalidraw/appState.d.ts +89 -0
- package/types/excalidraw/binaryheap.d.ts +12 -0
- package/types/excalidraw/change.d.ts +191 -0
- package/types/excalidraw/charts.d.ts +27 -0
- package/types/excalidraw/clients.d.ts +14 -0
- package/types/excalidraw/clipboard.d.ts +44 -0
- package/types/excalidraw/colors.d.ts +61 -0
- package/types/excalidraw/components/Actions.d.ts +34 -0
- package/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -0
- package/types/excalidraw/components/App.d.ts +527 -0
- package/types/excalidraw/components/Avatar.d.ts +11 -0
- package/types/excalidraw/components/BraveMeasureTextError.d.ts +2 -0
- package/types/excalidraw/components/Button.d.ts +17 -0
- package/types/excalidraw/components/ButtonIcon.d.ts +14 -0
- package/types/excalidraw/components/ButtonIconCycle.d.ts +10 -0
- package/types/excalidraw/components/ButtonIconSelect.d.ts +19 -0
- package/types/excalidraw/components/ButtonSelect.d.ts +9 -0
- package/types/excalidraw/components/ButtonSeparator.d.ts +1 -0
- package/types/excalidraw/components/Card.d.ts +6 -0
- package/types/excalidraw/components/CheckboxItem.d.ts +8 -0
- package/types/excalidraw/components/ColorPicker/ColorInput.d.ts +9 -0
- package/types/excalidraw/components/ColorPicker/ColorPicker.d.ts +19 -0
- package/types/excalidraw/components/ColorPicker/CustomColorList.d.ts +8 -0
- package/types/excalidraw/components/ColorPicker/HotkeyLabel.d.ts +8 -0
- package/types/excalidraw/components/ColorPicker/Picker.d.ts +18 -0
- package/types/excalidraw/components/ColorPicker/PickerColorList.d.ts +10 -0
- package/types/excalidraw/components/ColorPicker/PickerHeading.d.ts +5 -0
- package/types/excalidraw/components/ColorPicker/ShadeList.d.ts +8 -0
- package/types/excalidraw/components/ColorPicker/TopPicks.d.ts +9 -0
- package/types/excalidraw/components/ColorPicker/colorPickerUtils.d.ts +21 -0
- package/types/excalidraw/components/ColorPicker/keyboardNavHandlers.d.ts +20 -0
- package/types/excalidraw/components/CommandPalette/CommandPalette.d.ts +18 -0
- package/types/excalidraw/components/CommandPalette/defaultCommandPaletteItems.d.ts +2 -0
- package/types/excalidraw/components/CommandPalette/types.d.ts +25 -0
- package/types/excalidraw/components/ConfirmDialog.d.ts +10 -0
- package/types/excalidraw/components/ContextMenu.d.ts +16 -0
- package/types/excalidraw/components/DarkModeToggle.d.ts +7 -0
- package/types/excalidraw/components/DefaultSidebar.d.ts +29 -0
- package/types/excalidraw/components/DiagramToCodePlugin/DiagramToCodePlugin.d.ts +4 -0
- package/types/excalidraw/components/Dialog.d.ts +13 -0
- package/types/excalidraw/components/DialogActionButton.d.ts +10 -0
- package/types/excalidraw/components/ErrorDialog.d.ts +5 -0
- package/types/excalidraw/components/ExcalidrawLogo.d.ts +15 -0
- package/types/excalidraw/components/EyeDropper.d.ts +27 -0
- package/types/excalidraw/components/FilledButton.d.ts +18 -0
- package/types/excalidraw/components/FixedSideContainer.d.ts +9 -0
- package/types/excalidraw/components/FollowMode/FollowMode.d.ts +10 -0
- package/types/excalidraw/components/FontPicker/FontPicker.d.ts +21 -0
- package/types/excalidraw/components/FontPicker/FontPickerList.d.ts +25 -0
- package/types/excalidraw/components/FontPicker/FontPickerTrigger.d.ts +6 -0
- package/types/excalidraw/components/FontPicker/keyboardNavHandlers.d.ts +13 -0
- package/types/excalidraw/components/HandButton.d.ts +10 -0
- package/types/excalidraw/components/HelpButton.d.ts +7 -0
- package/types/excalidraw/components/HelpDialog.d.ts +4 -0
- package/types/excalidraw/components/HintViewer.d.ts +10 -0
- package/types/excalidraw/components/IconPicker.d.ts +14 -0
- package/types/excalidraw/components/ImageExportDialog.d.ts +14 -0
- package/types/excalidraw/components/InitializeApp.d.ts +10 -0
- package/types/excalidraw/components/InlineIcon.d.ts +3 -0
- package/types/excalidraw/components/Island.d.ts +10 -0
- package/types/excalidraw/components/JSONExportDialog.d.ts +15 -0
- package/types/excalidraw/components/LaserPointerButton.d.ts +10 -0
- package/types/excalidraw/components/LayerUI.d.ts +30 -0
- package/types/excalidraw/components/LibraryMenu.d.ts +24 -0
- package/types/excalidraw/components/LibraryMenuBrowseButton.d.ts +7 -0
- package/types/excalidraw/components/LibraryMenuControlButtons.d.ts +9 -0
- package/types/excalidraw/components/LibraryMenuHeaderContent.d.ts +17 -0
- package/types/excalidraw/components/LibraryMenuItems.d.ts +14 -0
- package/types/excalidraw/components/LibraryMenuSection.d.ts +23 -0
- package/types/excalidraw/components/LibraryUnit.d.ts +14 -0
- package/types/excalidraw/components/LoadingMessage.d.ts +5 -0
- package/types/excalidraw/components/LockButton.d.ts +10 -0
- package/types/excalidraw/components/MagicButton.d.ts +9 -0
- package/types/excalidraw/components/MagicSettings.d.ts +8 -0
- package/types/excalidraw/components/MobileMenu.d.ts +24 -0
- package/types/excalidraw/components/Modal.d.ts +14 -0
- package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
- package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
- package/types/excalidraw/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
- package/types/excalidraw/components/Paragraph.d.ts +4 -0
- package/types/excalidraw/components/PasteChartDialog.d.ts +8 -0
- package/types/excalidraw/components/PenModeButton.d.ts +12 -0
- package/types/excalidraw/components/Popover.d.ts +15 -0
- package/types/excalidraw/components/ProjectName.d.ts +10 -0
- package/types/excalidraw/components/PropertiesPopover.d.ts +15 -0
- package/types/excalidraw/components/PublishLibrary.d.ts +16 -0
- package/types/excalidraw/components/QuickSearch.d.ts +9 -0
- package/types/excalidraw/components/RadioGroup.d.ts +13 -0
- package/types/excalidraw/components/SVGLayer.d.ts +7 -0
- package/types/excalidraw/components/ScrollableList.d.ts +8 -0
- package/types/excalidraw/components/Section.d.ts +6 -0
- package/types/excalidraw/components/ShareableLinkDialog.d.ts +7 -0
- package/types/excalidraw/components/Sidebar/Sidebar.d.ts +76 -0
- package/types/excalidraw/components/Sidebar/SidebarHeader.d.ts +7 -0
- package/types/excalidraw/components/Sidebar/SidebarTab.d.ts +8 -0
- package/types/excalidraw/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
- package/types/excalidraw/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
- package/types/excalidraw/components/Sidebar/SidebarTabs.d.ts +6 -0
- package/types/excalidraw/components/Sidebar/SidebarTrigger.d.ts +6 -0
- package/types/excalidraw/components/Sidebar/common.d.ts +33 -0
- package/types/excalidraw/components/Spinner.d.ts +8 -0
- package/types/excalidraw/components/Stack.d.ts +16 -0
- package/types/excalidraw/components/Stats/Angle.d.ts +11 -0
- package/types/excalidraw/components/Stats/CanvasGrid.d.ts +10 -0
- package/types/excalidraw/components/Stats/CanvasGridSize.d.ts +10 -0
- package/types/excalidraw/components/Stats/Collapsible.d.ts +8 -0
- package/types/excalidraw/components/Stats/Dimension.d.ts +11 -0
- package/types/excalidraw/components/Stats/DragInput.d.ts +34 -0
- package/types/excalidraw/components/Stats/FontSize.d.ts +11 -0
- package/types/excalidraw/components/Stats/MultiAngle.d.ts +11 -0
- package/types/excalidraw/components/Stats/MultiDimension.d.ts +14 -0
- package/types/excalidraw/components/Stats/MultiFontSize.d.ts +12 -0
- package/types/excalidraw/components/Stats/MultiPosition.d.ts +14 -0
- package/types/excalidraw/components/Stats/Position.d.ts +12 -0
- package/types/excalidraw/components/Stats/index.d.ts +35 -0
- package/types/excalidraw/components/Stats/utils.d.ts +26 -0
- package/types/excalidraw/components/Stats.d.ts +11 -0
- package/types/excalidraw/components/Switch.d.ts +9 -0
- package/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +14 -0
- package/types/excalidraw/components/TTDDialog/TTDDialog.d.ts +29 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogInput.d.ts +9 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogOutput.d.ts +7 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogPanel.d.ts +17 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogPanels.d.ts +4 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogSubmitShortcut.d.ts +1 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogTab.d.ts +7 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogTabTrigger.d.ts +8 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogTabTriggers.d.ts +6 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogTabs.d.ts +11 -0
- package/types/excalidraw/components/TTDDialog/TTDDialogTrigger.d.ts +8 -0
- package/types/excalidraw/components/TTDDialog/common.d.ts +32 -0
- package/types/excalidraw/components/TextField.d.ts +19 -0
- package/types/excalidraw/components/Toast.d.ts +9 -0
- package/types/excalidraw/components/ToolButton.d.ts +49 -0
- package/types/excalidraw/components/Tooltip.d.ts +18 -0
- package/types/excalidraw/components/Trans.d.ts +9 -0
- package/types/excalidraw/components/UserList.d.ts +18 -0
- package/types/excalidraw/components/canvases/InteractiveCanvas.d.ts +29 -0
- package/types/excalidraw/components/canvases/NewElementCanvas.d.ts +14 -0
- package/types/excalidraw/components/canvases/StaticCanvas.d.ts +19 -0
- package/types/excalidraw/components/canvases/index.d.ts +3 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenu.d.ts +86 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuItem.d.ts +45 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContent.d.ts +7 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuItemContentRadio.d.ts +17 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuItemCustom.d.ts +7 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuItemLink.d.ts +15 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
- package/types/excalidraw/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -0
- package/types/excalidraw/components/dropdownMenu/common.d.ts +6 -0
- package/types/excalidraw/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
- package/types/excalidraw/components/footer/Footer.d.ts +12 -0
- package/types/excalidraw/components/footer/FooterCenter.d.ts +8 -0
- package/types/excalidraw/components/hoc/withInternalFallback.d.ts +4 -0
- package/types/excalidraw/components/hyperlink/Hyperlink.d.ts +18 -0
- package/types/excalidraw/components/hyperlink/helpers.d.ts +7 -0
- package/types/excalidraw/components/icons.d.ts +211 -0
- package/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -0
- package/types/excalidraw/components/main-menu/DefaultItems.d.ts +58 -0
- package/types/excalidraw/components/main-menu/MainMenu.d.ts +80 -0
- package/types/excalidraw/components/welcome-screen/WelcomeScreen.Center.d.ts +59 -0
- package/types/excalidraw/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
- package/types/excalidraw/components/welcome-screen/WelcomeScreen.d.ts +86 -0
- package/types/excalidraw/constants.d.ts +314 -0
- package/types/excalidraw/context/tunnels.d.ts +20 -0
- package/types/excalidraw/context/ui-appState.d.ts +4 -0
- package/types/excalidraw/cursor.d.ts +6 -0
- package/types/excalidraw/data/EditorLocalStorage.d.ts +8 -0
- package/types/excalidraw/data/ai/types.d.ts +242 -0
- package/types/excalidraw/data/blob.d.ts +49 -0
- package/types/excalidraw/data/encode.d.ts +53 -0
- package/types/excalidraw/data/encryption.d.ts +9 -0
- package/types/excalidraw/data/filesystem.d.ts +20 -0
- package/types/excalidraw/data/image.d.ts +15 -0
- package/types/excalidraw/data/index.d.ts +22 -0
- package/types/excalidraw/data/json.d.ts +16 -0
- package/types/excalidraw/data/library.d.ts +106 -0
- package/types/excalidraw/data/magic.d.ts +23 -0
- package/types/excalidraw/data/reconcile.d.ts +6 -0
- package/types/excalidraw/data/resave.d.ts +5 -0
- package/types/excalidraw/data/restore.d.ts +21 -0
- package/types/excalidraw/data/transform.d.ts +81 -0
- package/types/excalidraw/data/types.d.ts +45 -0
- package/types/excalidraw/data/url.d.ts +8 -0
- package/types/excalidraw/deburr.d.ts +1 -0
- package/types/excalidraw/dist/excalidraw.development.d.ts +2 -0
- package/types/excalidraw/dist/excalidraw.production.min.d.ts +1 -0
- package/types/excalidraw/distribute.d.ts +6 -0
- package/types/excalidraw/element/ElementCanvasButtons.d.ts +7 -0
- package/types/excalidraw/element/binding.d.ts +97 -0
- package/types/excalidraw/element/bounds.d.ts +74 -0
- package/types/excalidraw/element/collision.d.ts +16 -0
- package/types/excalidraw/element/containerCache.d.ts +11 -0
- package/types/excalidraw/element/dragElements.d.ts +32 -0
- package/types/excalidraw/element/embeddable.d.ts +211 -0
- package/types/excalidraw/element/flowchart.d.ts +25 -0
- package/types/excalidraw/element/heading.d.ts +11 -0
- package/types/excalidraw/element/image.d.ts +32 -0
- package/types/excalidraw/element/index.d.ts +26 -0
- package/types/excalidraw/element/linearElementEditor.d.ts +344 -0
- package/types/excalidraw/element/mutateElement.d.ts +11 -0
- package/types/excalidraw/element/newElement.d.ts +106 -0
- package/types/excalidraw/element/resizeElements.d.ts +17 -0
- package/types/excalidraw/element/resizeTest.d.ts +14 -0
- package/types/excalidraw/element/routing.d.ts +10 -0
- package/types/excalidraw/element/showSelectedShapeActions.d.ts +3 -0
- package/types/excalidraw/element/sizeHelpers.d.ts +40 -0
- package/types/excalidraw/element/sortElements.d.ts +2 -0
- package/types/excalidraw/element/textElement.d.ts +70 -0
- package/types/excalidraw/element/textWysiwyg.d.ts +22 -0
- package/types/excalidraw/element/transformHandles.d.ts +54 -0
- package/types/excalidraw/element/typeChecks.d.ts +42 -0
- package/types/excalidraw/element/types.d.ts +253 -0
- package/types/excalidraw/emitter.d.ts +16 -0
- package/types/excalidraw/entry.d.ts +1 -0
- package/types/excalidraw/env.d.cts +1 -0
- package/types/excalidraw/env.d.ts +1 -0
- package/types/excalidraw/errors.d.ts +16 -0
- package/types/excalidraw/fonts/ExcalidrawFont.d.ts +21 -0
- package/types/excalidraw/fonts/index.d.ts +83 -0
- package/types/excalidraw/fonts/metadata.d.ts +35 -0
- package/types/excalidraw/fractionalIndex.d.ts +48 -0
- package/types/excalidraw/frame.d.ts +63 -0
- package/types/excalidraw/ga.d.ts +63 -0
- package/types/excalidraw/gadirections.d.ts +8 -0
- package/types/excalidraw/galines.d.ts +22 -0
- package/types/excalidraw/gapoints.d.ts +7 -0
- package/types/excalidraw/gatransforms.d.ts +10 -0
- package/types/excalidraw/gesture.d.ts +6 -0
- package/types/excalidraw/groups.d.ts +33 -0
- package/types/excalidraw/history.d.ts +40 -0
- package/types/excalidraw/hooks/useCallbackRefState.d.ts +1 -0
- package/types/excalidraw/hooks/useCopiedIndicator.d.ts +5 -0
- package/types/excalidraw/hooks/useCreatePortalContainer.d.ts +7 -0
- package/types/excalidraw/hooks/useEmitter.d.ts +2 -0
- package/types/excalidraw/hooks/useLibraryItemSvg.d.ts +11 -0
- package/types/excalidraw/hooks/useOutsideClick.d.ts +19 -0
- package/types/excalidraw/hooks/useScrollPosition.d.ts +1 -0
- package/types/excalidraw/hooks/useStable.d.ts +1 -0
- package/types/excalidraw/hooks/useStableCallback.d.ts +4 -0
- package/types/excalidraw/hooks/useTransition.d.ts +2 -0
- package/types/excalidraw/i18n.d.ts +24 -0
- package/types/excalidraw/index-node.d.ts +1 -0
- package/types/excalidraw/index.d.ts +61 -0
- package/types/excalidraw/jotai.d.ts +34 -0
- package/types/excalidraw/keys.d.ts +82 -0
- package/types/excalidraw/laser-trails.d.ts +20 -0
- package/types/excalidraw/main.d.ts +2 -0
- package/types/excalidraw/math.d.ts +79 -0
- package/types/excalidraw/mermaid.d.ts +2 -0
- package/types/excalidraw/obsidianUtils.d.ts +17 -0
- package/types/excalidraw/points.d.ts +7 -0
- package/types/excalidraw/polyfill.d.ts +2 -0
- package/types/excalidraw/publicPath.d.ts +1 -0
- package/types/excalidraw/queue.d.ts +9 -0
- package/types/excalidraw/random.d.ts +4 -0
- package/types/excalidraw/reactUtils.d.ts +14 -0
- package/types/excalidraw/renderer/easingFunctions.d.ts +6 -0
- package/types/excalidraw/renderer/helpers.d.ts +13 -0
- package/types/excalidraw/renderer/interactiveScene.d.ts +20 -0
- package/types/excalidraw/renderer/renderElement.d.ts +27 -0
- package/types/excalidraw/renderer/renderNewElementScene.d.ts +7 -0
- package/types/excalidraw/renderer/renderSnaps.d.ts +2 -0
- package/types/excalidraw/renderer/roundRect.d.ts +11 -0
- package/types/excalidraw/renderer/staticScene.d.ts +11 -0
- package/types/excalidraw/renderer/staticSvgScene.d.ts +5 -0
- package/types/excalidraw/scene/Fonts.d.ts +19 -0
- package/types/excalidraw/scene/Renderer.d.ts +28 -0
- package/types/excalidraw/scene/Scene.d.ts +78 -0
- package/types/excalidraw/scene/Shape.d.ts +17 -0
- package/types/excalidraw/scene/ShapeCache.d.ts +25 -0
- package/types/excalidraw/scene/comparisons.d.ts +11 -0
- package/types/excalidraw/scene/export.d.ts +29 -0
- package/types/excalidraw/scene/index.d.ts +4 -0
- package/types/excalidraw/scene/normalize.d.ts +4 -0
- package/types/excalidraw/scene/scroll.d.ts +17 -0
- package/types/excalidraw/scene/scrollbars.d.ts +12 -0
- package/types/excalidraw/scene/selection.d.ts +32 -0
- package/types/excalidraw/scene/types.d.ts +112 -0
- package/types/excalidraw/scene/zoom.d.ts +12 -0
- package/types/excalidraw/shapes.d.ts +70 -0
- package/types/excalidraw/snapping.d.ts +109 -0
- package/types/excalidraw/store.d.ts +129 -0
- package/types/excalidraw/types.d.ts +700 -0
- package/types/excalidraw/utility-types.d.ts +31 -0
- package/types/excalidraw/utils.d.ts +243 -0
- package/types/excalidraw/visualdebug.d.ts +34 -0
- package/types/excalidraw/webpack.dev.config.d.ts +81 -0
- package/types/excalidraw/webpack.prod.config.d.ts +97 -0
- package/types/excalidraw/zindex.d.ts +6 -0
- package/types/utils/bbox.d.ts +11 -0
- package/types/utils/collision.d.ts +4 -0
- package/types/utils/export.d.ts +44 -0
- package/types/utils/geometry/geometry.d.ts +89 -0
- package/types/utils/geometry/shape.d.ts +56 -0
- package/types/utils/index.d.ts +4 -0
- package/types/utils/withinBounds.d.ts +19 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { NullableGridSize, Point, Zoom } from "./types";
|
|
2
|
+
import type { ExcalidrawElement, ExcalidrawLinearElement, NonDeleted } from "./element/types";
|
|
3
|
+
import type { Bounds } from "./element/bounds";
|
|
4
|
+
export declare const rotate: (x: number, y: number, cx: number, cy: number, angle: number) => [number, number];
|
|
5
|
+
export declare const rotatePoint: (point: readonly [number, number], center: readonly [number, number], angle: number) => [number, number];
|
|
6
|
+
export declare const adjustXYWithRotation: (sides: {
|
|
7
|
+
n?: boolean;
|
|
8
|
+
e?: boolean;
|
|
9
|
+
s?: boolean;
|
|
10
|
+
w?: boolean;
|
|
11
|
+
}, x: number, y: number, angle: number, deltaX1: number, deltaY1: number, deltaX2: number, deltaY2: number) => [number, number];
|
|
12
|
+
export declare const getPointOnAPath: (point: readonly [number, number], path: Point[]) => {
|
|
13
|
+
x: number;
|
|
14
|
+
y: number;
|
|
15
|
+
segment: number;
|
|
16
|
+
} | null;
|
|
17
|
+
export declare const distance2d: (x1: number, y1: number, x2: number, y2: number) => number;
|
|
18
|
+
export declare const distanceSq2d: (p1: readonly [number, number], p2: readonly [number, number]) => number;
|
|
19
|
+
export declare const centerPoint: (a: readonly [number, number], b: readonly [number, number]) => readonly [number, number];
|
|
20
|
+
export declare const isPathALoop: (points: ExcalidrawLinearElement["points"], zoomValue?: Zoom["value"]) => boolean;
|
|
21
|
+
export declare const isPointInPolygon: (points: Point[], x: number, y: number) => boolean;
|
|
22
|
+
export declare const isPointWithinBounds: (p: readonly [number, number], q: readonly [number, number], r: readonly [number, number]) => boolean;
|
|
23
|
+
export declare const getGridPoint: (x: number, y: number, gridSize: NullableGridSize) => [number, number];
|
|
24
|
+
export declare const getCornerRadius: (x: number, element: ExcalidrawElement) => number;
|
|
25
|
+
export declare const getControlPointsForBezierCurve: (element: NonDeleted<ExcalidrawLinearElement>, endPoint: readonly [number, number]) => [number, number][] | null;
|
|
26
|
+
export declare const getBezierXY: (p0: readonly [number, number], p1: readonly [number, number], p2: readonly [number, number], p3: readonly [number, number], t: number) => number[];
|
|
27
|
+
export declare const getPointsInBezierCurve: (element: NonDeleted<ExcalidrawLinearElement>, endPoint: readonly [number, number]) => [number, number][];
|
|
28
|
+
export declare const getBezierCurveArcLengths: (element: NonDeleted<ExcalidrawLinearElement>, endPoint: readonly [number, number]) => number[];
|
|
29
|
+
export declare const getBezierCurveLength: (element: NonDeleted<ExcalidrawLinearElement>, endPoint: readonly [number, number]) => number;
|
|
30
|
+
export declare const mapIntervalToBezierT: (element: NonDeleted<ExcalidrawLinearElement>, endPoint: readonly [number, number], interval: number) => number;
|
|
31
|
+
export declare const arePointsEqual: (p1: readonly [number, number], p2: readonly [number, number]) => boolean;
|
|
32
|
+
export declare const isRightAngle: (angle: number) => boolean;
|
|
33
|
+
export declare const radianToDegree: (r: number) => number;
|
|
34
|
+
export declare const degreeToRadian: (d: number) => number;
|
|
35
|
+
export declare const rangesOverlap: ([a0, a1]: [number, number], [b0, b1]: [number, number]) => boolean;
|
|
36
|
+
export declare const rangeIntersection: (rangeA: [number, number], rangeB: [number, number]) => [number, number] | null;
|
|
37
|
+
export declare const isValueInRange: (value: number, min: number, max: number) => boolean;
|
|
38
|
+
export declare const translatePoint: (p: readonly [number, number], v: import("../utils/geometry/shape").Point) => readonly [number, number];
|
|
39
|
+
export declare const scaleVector: (v: import("../utils/geometry/shape").Point, scalar: number) => import("../utils/geometry/shape").Point;
|
|
40
|
+
export declare const pointToVector: (p: readonly [number, number], origin?: readonly [number, number]) => import("../utils/geometry/shape").Point;
|
|
41
|
+
export declare const scalePointFromOrigin: (p: readonly [number, number], mid: readonly [number, number], multiplier: number) => readonly [number, number];
|
|
42
|
+
export declare const PointInTriangle: (pt: readonly [number, number], v1: readonly [number, number], v2: readonly [number, number], v3: readonly [number, number]) => boolean;
|
|
43
|
+
export declare const magnitudeSq: (vector: import("../utils/geometry/shape").Point) => number;
|
|
44
|
+
export declare const magnitude: (vector: import("../utils/geometry/shape").Point) => number;
|
|
45
|
+
export declare const normalize: (vector: import("../utils/geometry/shape").Point) => import("../utils/geometry/shape").Point;
|
|
46
|
+
export declare const addVectors: (vec1: readonly [number, number], vec2: readonly [number, number]) => import("../utils/geometry/shape").Point;
|
|
47
|
+
export declare const subtractVectors: (vec1: readonly [number, number], vec2: readonly [number, number]) => import("../utils/geometry/shape").Point;
|
|
48
|
+
export declare const pointInsideBounds: (p: readonly [number, number], bounds: Bounds) => boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Get the axis-aligned bounding box for a given element
|
|
51
|
+
*/
|
|
52
|
+
export declare const aabbForElement: (element: Readonly<ExcalidrawElement>, offset?: [number, number, number, number]) => Bounds;
|
|
53
|
+
type PolarCoords = [number, number];
|
|
54
|
+
/**
|
|
55
|
+
* Return the polar coordinates for the given carthesian point represented by
|
|
56
|
+
* (x, y) for the center point 0,0 where the first number returned is the radius,
|
|
57
|
+
* the second is the angle in radians.
|
|
58
|
+
*/
|
|
59
|
+
export declare const carthesian2Polar: ([x, y]: readonly [number, number]) => PolarCoords;
|
|
60
|
+
/**
|
|
61
|
+
* Angles are in radians and centered on 0, 0. Zero radians on a 1 radius circle
|
|
62
|
+
* corresponds to (1, 0) carthesian coordinates (point), i.e. to the "right".
|
|
63
|
+
*/
|
|
64
|
+
type SymmetricArc = {
|
|
65
|
+
radius: number;
|
|
66
|
+
startAngle: number;
|
|
67
|
+
endAngle: number;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Determines if a carthesian point lies on a symmetric arc, i.e. an arc which
|
|
71
|
+
* is part of a circle contour centered on 0, 0.
|
|
72
|
+
*/
|
|
73
|
+
export declare const isPointOnSymmetricArc: ({ radius: arcRadius, startAngle, endAngle }: SymmetricArc, point: readonly [number, number]) => boolean;
|
|
74
|
+
export declare const getCenterForBounds: (bounds: Bounds) => readonly [number, number];
|
|
75
|
+
export declare const getCenterForElement: (element: ExcalidrawElement) => readonly [number, number];
|
|
76
|
+
export declare const aabbsOverlapping: (a: Bounds, b: Bounds) => boolean;
|
|
77
|
+
export declare const clamp: (value: number, min: number, max: number) => number;
|
|
78
|
+
export declare const round: (value: number, precision: number) => number;
|
|
79
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FontMetadata } from "./fonts/metadata";
|
|
2
|
+
export declare let hostPlugin: any;
|
|
3
|
+
export declare function destroyObsidianUtils(): void;
|
|
4
|
+
export declare function initializeObsidianUtils(obsidianPlugin: any): void;
|
|
5
|
+
export declare function getAreaLimit(): any;
|
|
6
|
+
export declare function getWidthHeightLimit(): any;
|
|
7
|
+
export declare function allowDoubleTapEraser(): any;
|
|
8
|
+
export declare function isExcaliBrainView(): any;
|
|
9
|
+
export declare function getExcalidrawContentEl(): HTMLElement;
|
|
10
|
+
export declare function hideFreedrawPenmodeCursor(): boolean;
|
|
11
|
+
export declare function getOpenAIDefaultVisionModel(): any;
|
|
12
|
+
export declare function registerLocalFont(fontMetrics: FontMetadata & {
|
|
13
|
+
name: string;
|
|
14
|
+
}, uri: string): void;
|
|
15
|
+
export declare function getFontFamilies(): string[];
|
|
16
|
+
export declare function registerFontsInCSS(): Promise<void>;
|
|
17
|
+
export declare function getCSSFontDefinition(fontFamily: number): Promise<string>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Point } from "./types";
|
|
2
|
+
export declare const getSizeFromPoints: (points: readonly Point[]) => {
|
|
3
|
+
width: number;
|
|
4
|
+
height: number;
|
|
5
|
+
};
|
|
6
|
+
/** @arg dimension, 0 for rescaling only x, 1 for y */
|
|
7
|
+
export declare const rescalePoints: (dimension: 0 | 1, newSize: number, points: readonly Point[], normalize: boolean) => Point[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MaybePromise } from "./utility-types";
|
|
2
|
+
type Job<T, TArgs extends unknown[]> = (...args: TArgs) => MaybePromise<T>;
|
|
3
|
+
export declare class Queue {
|
|
4
|
+
private jobs;
|
|
5
|
+
private running;
|
|
6
|
+
private tick;
|
|
7
|
+
push<TValue, TArgs extends unknown[]>(jobFactory: Job<TValue, TArgs>, ...args: TArgs): Promise<TValue>;
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param func handler taking at most single parameter (event).
|
|
3
|
+
*/
|
|
4
|
+
export declare const withBatchedUpdates: <TFunction extends ((event: any) => void) | (() => void)>(func: Parameters<TFunction>["length"] extends 0 | 1 ? TFunction : never) => TFunction;
|
|
5
|
+
/**
|
|
6
|
+
* barches React state updates and throttles the calls to a single call per
|
|
7
|
+
* animation frame
|
|
8
|
+
*/
|
|
9
|
+
export declare const withBatchedUpdatesThrottled: <TFunction extends ((event: any) => void) | (() => void)>(func: Parameters<TFunction>["length"] extends 0 | 1 ? TFunction : never) => {
|
|
10
|
+
(...args: Parameters<TFunction>): void;
|
|
11
|
+
flush(): void;
|
|
12
|
+
cancel(): void;
|
|
13
|
+
};
|
|
14
|
+
export declare const isRenderThrottlingEnabled: () => boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StaticCanvasAppState, AppState } from "../types";
|
|
2
|
+
import type { StaticCanvasRenderConfig } from "../scene/types";
|
|
3
|
+
export declare const fillCircle: (context: CanvasRenderingContext2D, cx: number, cy: number, radius: number, stroke?: boolean) => void;
|
|
4
|
+
export declare const getNormalizedCanvasDimensions: (canvas: HTMLCanvasElement, scale: number) => [number, number];
|
|
5
|
+
export declare const bootstrapCanvas: ({ canvas, scale, normalizedWidth, normalizedHeight, theme, isExporting, viewBackgroundColor, }: {
|
|
6
|
+
canvas: HTMLCanvasElement;
|
|
7
|
+
scale: number;
|
|
8
|
+
normalizedWidth: number;
|
|
9
|
+
normalizedHeight: number;
|
|
10
|
+
theme?: import("../element/types").Theme | undefined;
|
|
11
|
+
isExporting?: boolean | undefined;
|
|
12
|
+
viewBackgroundColor?: string | null | undefined;
|
|
13
|
+
}) => CanvasRenderingContext2D;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { InteractiveSceneRenderConfig, RenderableElementsMap } from "../scene/types";
|
|
2
|
+
/** throttled to animation framerate */
|
|
3
|
+
export declare const renderInteractiveSceneThrottled: {
|
|
4
|
+
(config: InteractiveSceneRenderConfig): void;
|
|
5
|
+
flush(): void;
|
|
6
|
+
cancel(): void;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Interactive scene is the ui-canvas where we render bounding boxes, selections
|
|
10
|
+
* and other ui stuff.
|
|
11
|
+
*/
|
|
12
|
+
export declare const renderInteractiveScene: <U extends ({ canvas, elementsMap, visibleElements, selectedElements, allElementsMap, scale, appState, renderConfig, device, }: InteractiveSceneRenderConfig) => {
|
|
13
|
+
atLeastOneVisibleElement: boolean;
|
|
14
|
+
elementsMap: RenderableElementsMap;
|
|
15
|
+
scrollBars?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
scrollBars: import("../scene/types").ScrollBars | undefined;
|
|
18
|
+
atLeastOneVisibleElement: boolean;
|
|
19
|
+
elementsMap: RenderableElementsMap;
|
|
20
|
+
}, T extends boolean = false>(renderConfig: InteractiveSceneRenderConfig, throttle?: T | undefined) => T extends true ? void : ReturnType<U>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ExcalidrawElement, ExcalidrawTextElement, NonDeletedExcalidrawElement, ExcalidrawFreeDrawElement, ExcalidrawFrameLikeElement, NonDeletedSceneElementsMap } from "../element/types";
|
|
2
|
+
import type { RoughCanvas } from "roughjs/bin/canvas";
|
|
3
|
+
import type { StaticCanvasRenderConfig, RenderableElementsMap, InteractiveCanvasRenderConfig } from "../scene/types";
|
|
4
|
+
import type { AppState, StaticCanvasAppState, InteractiveCanvasAppState, ElementsPendingErasure, PendingExcalidrawElements } from "../types";
|
|
5
|
+
export declare const IMAGE_INVERT_FILTER = "invert(100%) hue-rotate(180deg) saturate(1.25)";
|
|
6
|
+
export declare const getRenderOpacity: (element: ExcalidrawElement, containingFrame: ExcalidrawFrameLikeElement | null, elementsPendingErasure: ElementsPendingErasure, pendingNodes: Readonly<PendingExcalidrawElements> | null) => number;
|
|
7
|
+
export interface ExcalidrawElementWithCanvas {
|
|
8
|
+
element: ExcalidrawElement | ExcalidrawTextElement;
|
|
9
|
+
canvas: HTMLCanvasElement;
|
|
10
|
+
theme: AppState["theme"];
|
|
11
|
+
scale: number;
|
|
12
|
+
angle: number;
|
|
13
|
+
zoomValue: AppState["zoom"]["value"];
|
|
14
|
+
canvasOffsetX: number;
|
|
15
|
+
canvasOffsetY: number;
|
|
16
|
+
boundTextElementVersion: number | null;
|
|
17
|
+
containingFrameOpacity: number;
|
|
18
|
+
boundTextCanvas: HTMLCanvasElement;
|
|
19
|
+
}
|
|
20
|
+
export declare const DEFAULT_LINK_SIZE = 14;
|
|
21
|
+
export declare const elementWithCanvasCache: WeakMap<ExcalidrawElement, ExcalidrawElementWithCanvas>;
|
|
22
|
+
export declare const renderSelectionElement: (element: NonDeletedExcalidrawElement, context: CanvasRenderingContext2D, appState: InteractiveCanvasAppState, selectionColor: InteractiveCanvasRenderConfig["selectionColor"]) => void;
|
|
23
|
+
export declare const renderElement: (element: NonDeletedExcalidrawElement, elementsMap: RenderableElementsMap, allElementsMap: NonDeletedSceneElementsMap, rc: RoughCanvas, context: CanvasRenderingContext2D, renderConfig: StaticCanvasRenderConfig, appState: StaticCanvasAppState) => void;
|
|
24
|
+
export declare const pathsCache: WeakMap<ExcalidrawFreeDrawElement, Path2D>;
|
|
25
|
+
export declare function generateFreeDrawShape(element: ExcalidrawFreeDrawElement): Path2D;
|
|
26
|
+
export declare function getFreeDrawPath2D(element: ExcalidrawFreeDrawElement): Path2D | undefined;
|
|
27
|
+
export declare function getFreeDrawSvgPath(element: ExcalidrawFreeDrawElement): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NewElementSceneRenderConfig } from "../scene/types";
|
|
2
|
+
export declare const renderNewElementSceneThrottled: {
|
|
3
|
+
(config: NewElementSceneRenderConfig): void;
|
|
4
|
+
flush(): void;
|
|
5
|
+
cancel(): void;
|
|
6
|
+
};
|
|
7
|
+
export declare const renderNewElementScene: (renderConfig: NewElementSceneRenderConfig, throttle?: boolean) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* https://stackoverflow.com/a/3368118
|
|
3
|
+
* Draws a rounded rectangle using the current state of the canvas.
|
|
4
|
+
* @param {CanvasRenderingContext2D} context
|
|
5
|
+
* @param {Number} x The top left x coordinate
|
|
6
|
+
* @param {Number} y The top left y coordinate
|
|
7
|
+
* @param {Number} width The width of the rectangle
|
|
8
|
+
* @param {Number} height The height of the rectangle
|
|
9
|
+
* @param {Number} radius The corner radius
|
|
10
|
+
*/
|
|
11
|
+
export declare const roundRect: (context: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number, strokeColor?: string) => void;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StaticSceneRenderConfig } from "../scene/types";
|
|
2
|
+
/** throttled to animation framerate */
|
|
3
|
+
export declare const renderStaticSceneThrottled: {
|
|
4
|
+
(config: StaticSceneRenderConfig): void;
|
|
5
|
+
flush(): void;
|
|
6
|
+
cancel(): void;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Static scene is the non-ui canvas where we render elements.
|
|
10
|
+
*/
|
|
11
|
+
export declare const renderStaticScene: (renderConfig: StaticSceneRenderConfig, throttle?: boolean) => void;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RoughSVG } from "roughjs/bin/svg";
|
|
2
|
+
import type { NonDeletedExcalidrawElement } from "../element/types";
|
|
3
|
+
import type { RenderableElementsMap, SVGRenderConfig } from "../scene/types";
|
|
4
|
+
import type { BinaryFiles } from "../types";
|
|
5
|
+
export declare const renderSceneToSvg: (elements: readonly NonDeletedExcalidrawElement[], elementsMap: RenderableElementsMap, rsvg: RoughSVG, svgRoot: SVGElement, files: BinaryFiles, renderConfig: SVGRenderConfig) => void;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ExcalidrawElement } from "../element/types";
|
|
2
|
+
import type Scene from "./Scene";
|
|
3
|
+
export declare class Fonts {
|
|
4
|
+
private scene;
|
|
5
|
+
constructor({ scene }: {
|
|
6
|
+
scene: Scene;
|
|
7
|
+
});
|
|
8
|
+
private static loadedFontFaces;
|
|
9
|
+
/**
|
|
10
|
+
* if we load a (new) font, it's likely that text elements using it have
|
|
11
|
+
* already been rendered using a fallback font. Thus, we want invalidate
|
|
12
|
+
* their shapes and rerender. See #637.
|
|
13
|
+
*
|
|
14
|
+
* Invalidates text elements and rerenders scene, provided that at least one
|
|
15
|
+
* of the supplied fontFaces has not already been processed.
|
|
16
|
+
*/
|
|
17
|
+
onFontsLoaded: (fontFaces: readonly FontFace[]) => false | undefined;
|
|
18
|
+
loadFontsForElements: (elements: readonly ExcalidrawElement[]) => Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { ExcalidrawElement, NonDeletedExcalidrawElement } from "../element/types";
|
|
2
|
+
import type { AppState } from "../types";
|
|
3
|
+
import type Scene from "./Scene";
|
|
4
|
+
export declare class Renderer {
|
|
5
|
+
private scene;
|
|
6
|
+
constructor(scene: Scene);
|
|
7
|
+
getRenderableElements: ((opts: {
|
|
8
|
+
zoom: AppState["zoom"];
|
|
9
|
+
offsetLeft: AppState["offsetLeft"];
|
|
10
|
+
offsetTop: AppState["offsetTop"];
|
|
11
|
+
scrollX: AppState["scrollX"];
|
|
12
|
+
scrollY: AppState["scrollY"];
|
|
13
|
+
height: AppState["height"];
|
|
14
|
+
width: AppState["width"];
|
|
15
|
+
editingTextElement: AppState["editingTextElement"];
|
|
16
|
+
/** note: first render of newElement will always bust the cache
|
|
17
|
+
* (we'd have to prefilter elements outside of this function) */
|
|
18
|
+
newElementId: ExcalidrawElement["id"] | undefined;
|
|
19
|
+
pendingImageElementId: AppState["pendingImageElementId"];
|
|
20
|
+
sceneNonce: ReturnType<InstanceType<typeof Scene>["getSceneNonce"]>;
|
|
21
|
+
}) => {
|
|
22
|
+
elementsMap: Map<string, NonDeletedExcalidrawElement> & import("../utility-types").MakeBrand<"NonDeletedElementsMap"> & import("../utility-types").MakeBrand<"RenderableElementsMap">;
|
|
23
|
+
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
24
|
+
}) & {
|
|
25
|
+
clear: () => void;
|
|
26
|
+
};
|
|
27
|
+
destroy(): void;
|
|
28
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { ExcalidrawElement, NonDeletedExcalidrawElement, NonDeleted, ExcalidrawFrameLikeElement, ElementsMapOrArray, OrderedExcalidrawElement, Ordered } from "../element/types";
|
|
2
|
+
import type { LinearElementEditor } from "../element/linearElementEditor";
|
|
3
|
+
import type { AppState } from "../types";
|
|
4
|
+
type ElementIdKey = InstanceType<typeof LinearElementEditor>["elementId"];
|
|
5
|
+
type ElementKey = ExcalidrawElement | ElementIdKey;
|
|
6
|
+
type SceneStateCallback = () => void;
|
|
7
|
+
type SceneStateCallbackRemover = () => void;
|
|
8
|
+
export type ExcalidrawElementsIncludingDeleted = readonly ExcalidrawElement[];
|
|
9
|
+
declare class Scene {
|
|
10
|
+
private static sceneMapByElement;
|
|
11
|
+
private static sceneMapById;
|
|
12
|
+
static mapElementToScene(elementKey: ElementKey, scene: Scene): void;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated pass down `app.scene` and use it directly
|
|
15
|
+
*/
|
|
16
|
+
static getScene(elementKey: ElementKey): Scene | null;
|
|
17
|
+
private callbacks;
|
|
18
|
+
private nonDeletedElements;
|
|
19
|
+
private nonDeletedElementsMap;
|
|
20
|
+
private elements;
|
|
21
|
+
private nonDeletedFramesLikes;
|
|
22
|
+
private frames;
|
|
23
|
+
private elementsMap;
|
|
24
|
+
private selectedElementsCache;
|
|
25
|
+
/**
|
|
26
|
+
* Random integer regenerated each scene update.
|
|
27
|
+
*
|
|
28
|
+
* Does not relate to elements versions, it's only a renderer
|
|
29
|
+
* cache-invalidation nonce at the moment.
|
|
30
|
+
*/
|
|
31
|
+
private sceneNonce;
|
|
32
|
+
getSceneNonce(): number | undefined;
|
|
33
|
+
getNonDeletedElementsMap(): Map<string, Ordered<NonDeletedExcalidrawElement>> & import("../utility-types").MakeBrand<"NonDeletedSceneElementsMap">;
|
|
34
|
+
getElementsIncludingDeleted(): readonly OrderedExcalidrawElement[];
|
|
35
|
+
getElementsMapIncludingDeleted(): Map<string, Ordered<ExcalidrawElement>> & import("../utility-types").MakeBrand<"SceneElementsMap">;
|
|
36
|
+
getNonDeletedElements(): readonly Ordered<NonDeletedExcalidrawElement>[];
|
|
37
|
+
getFramesIncludingDeleted(): readonly ExcalidrawFrameLikeElement[];
|
|
38
|
+
getSelectedElements(opts: {
|
|
39
|
+
selectedElementIds: AppState["selectedElementIds"];
|
|
40
|
+
/**
|
|
41
|
+
* for specific cases where you need to use elements not from current
|
|
42
|
+
* scene state. This in effect will likely result in cache-miss, and
|
|
43
|
+
* the cache won't be updated in this case.
|
|
44
|
+
*/
|
|
45
|
+
elements?: ElementsMapOrArray;
|
|
46
|
+
includeBoundTextElement?: boolean;
|
|
47
|
+
includeElementsInFrames?: boolean;
|
|
48
|
+
}): NonDeleted<ExcalidrawElement>[];
|
|
49
|
+
getNonDeletedFramesLikes(): readonly NonDeleted<ExcalidrawFrameLikeElement>[];
|
|
50
|
+
getElement<T extends ExcalidrawElement>(id: T["id"]): T | null;
|
|
51
|
+
getNonDeletedElement(id: ExcalidrawElement["id"]): NonDeleted<ExcalidrawElement> | null;
|
|
52
|
+
/**
|
|
53
|
+
* A utility method to help with updating all scene elements, with the added
|
|
54
|
+
* performance optimization of not renewing the array if no change is made.
|
|
55
|
+
*
|
|
56
|
+
* Maps all current excalidraw elements, invoking the callback for each
|
|
57
|
+
* element. The callback should either return a new mapped element, or the
|
|
58
|
+
* original element if no changes are made. If no changes are made to any
|
|
59
|
+
* element, this results in a no-op. Otherwise, the newly mapped elements
|
|
60
|
+
* are set as the next scene's elements.
|
|
61
|
+
*
|
|
62
|
+
* @returns whether a change was made
|
|
63
|
+
*/
|
|
64
|
+
mapElements(iteratee: (element: ExcalidrawElement) => ExcalidrawElement): boolean;
|
|
65
|
+
replaceAllElements(nextElements: ElementsMapOrArray): void;
|
|
66
|
+
triggerUpdate(): void;
|
|
67
|
+
onUpdate(cb: SceneStateCallback): SceneStateCallbackRemover;
|
|
68
|
+
destroy(): void;
|
|
69
|
+
insertElementAtIndex(element: ExcalidrawElement, index: number): void;
|
|
70
|
+
insertElementsAtIndex(elements: ExcalidrawElement[], index: number): void;
|
|
71
|
+
insertElement: (element: ExcalidrawElement, idx?: number) => void;
|
|
72
|
+
insertElements: (elements: ExcalidrawElement[]) => void;
|
|
73
|
+
getElementIndex(elementId: string): number;
|
|
74
|
+
getContainerElement: (element: (ExcalidrawElement & {
|
|
75
|
+
containerId: ExcalidrawElement["id"] | null;
|
|
76
|
+
}) | null) => ExcalidrawElement | null;
|
|
77
|
+
}
|
|
78
|
+
export default Scene;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Drawable, Options } from "roughjs/bin/core";
|
|
2
|
+
import type { RoughGenerator } from "roughjs/bin/generator";
|
|
3
|
+
import type { ExcalidrawElement, NonDeletedExcalidrawElement, ExcalidrawSelectionElement } from "../element/types";
|
|
4
|
+
import type { EmbedsValidationStatus } from "../types";
|
|
5
|
+
export declare const generateRoughOptions: (element: ExcalidrawElement, continuousPath?: boolean) => Options;
|
|
6
|
+
/**
|
|
7
|
+
* Generates the roughjs shape for given element.
|
|
8
|
+
*
|
|
9
|
+
* Low-level. Use `ShapeCache.generateElementShape` instead.
|
|
10
|
+
*
|
|
11
|
+
* @private
|
|
12
|
+
*/
|
|
13
|
+
export declare const _generateElementShape: (element: Exclude<NonDeletedExcalidrawElement, ExcalidrawSelectionElement>, generator: RoughGenerator, { isExporting, canvasBackgroundColor, embedsValidationStatus, }: {
|
|
14
|
+
isExporting: boolean;
|
|
15
|
+
canvasBackgroundColor: string;
|
|
16
|
+
embedsValidationStatus: EmbedsValidationStatus | null;
|
|
17
|
+
}) => Drawable | Drawable[] | null;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Drawable } from "roughjs/bin/core";
|
|
2
|
+
import type { ExcalidrawElement } from "../element/types";
|
|
3
|
+
import type { ElementShape, ElementShapes } from "./types";
|
|
4
|
+
import type { AppState, EmbedsValidationStatus } from "../types";
|
|
5
|
+
export declare class ShapeCache {
|
|
6
|
+
private static rg;
|
|
7
|
+
private static cache;
|
|
8
|
+
/**
|
|
9
|
+
* Retrieves shape from cache if available. Use this only if shape
|
|
10
|
+
* is optional and you have a fallback in case it's not cached.
|
|
11
|
+
*/
|
|
12
|
+
static get: <T extends ExcalidrawElement>(element: T) => T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] | undefined : ElementShape | undefined;
|
|
13
|
+
static set: <T extends ExcalidrawElement>(element: T, shape: T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] : Drawable) => WeakMap<ExcalidrawElement, ElementShape>;
|
|
14
|
+
static delete: (element: ExcalidrawElement) => boolean;
|
|
15
|
+
static destroy: () => void;
|
|
16
|
+
/**
|
|
17
|
+
* Generates & caches shape for element if not already cached, otherwise
|
|
18
|
+
* returns cached shape.
|
|
19
|
+
*/
|
|
20
|
+
static generateElementShape: <T extends import("../element/types").ExcalidrawRectangleElement | import("../element/types").ExcalidrawDiamondElement | import("../element/types").ExcalidrawEllipseElement | import("../element/types").ExcalidrawTextElement | import("../element/types").ExcalidrawLinearElement | import("../element/types").ExcalidrawFreeDrawElement | import("../element/types").ExcalidrawImageElement | import("../element/types").ExcalidrawFrameElement | import("../element/types").ExcalidrawMagicFrameElement | import("../element/types").ExcalidrawIframeElement | import("../element/types").ExcalidrawEmbeddableElement>(element: T, renderConfig: {
|
|
21
|
+
isExporting: boolean;
|
|
22
|
+
canvasBackgroundColor: AppState["viewBackgroundColor"];
|
|
23
|
+
embedsValidationStatus: EmbedsValidationStatus;
|
|
24
|
+
} | null) => ((T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] | undefined : ElementShape | undefined) & ({} | null)) | (T["type"] extends keyof ElementShapes ? ElementShapes[T["type"]] : Drawable | null);
|
|
25
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { NonDeletedExcalidrawElement } from "../element/types";
|
|
2
|
+
import type { ElementOrToolType } from "../types";
|
|
3
|
+
export declare const hasBackground: (type: ElementOrToolType) => boolean;
|
|
4
|
+
export declare const hasStrokeColor: (type: ElementOrToolType) => boolean;
|
|
5
|
+
export declare const hasStrokeWidth: (type: ElementOrToolType) => boolean;
|
|
6
|
+
export declare const hasStrokeStyle: (type: ElementOrToolType) => boolean;
|
|
7
|
+
export declare const canChangeRoundness: (type: ElementOrToolType) => boolean;
|
|
8
|
+
export declare const toolIsArrow: (type: ElementOrToolType) => boolean;
|
|
9
|
+
export declare const canHaveArrowheads: (type: ElementOrToolType) => boolean;
|
|
10
|
+
export declare const getElementAtPosition: (elements: readonly NonDeletedExcalidrawElement[], isAtPositionFn: (element: NonDeletedExcalidrawElement) => boolean) => NonDeletedExcalidrawElement | null;
|
|
11
|
+
export declare const getElementsAtPosition: (elements: readonly NonDeletedExcalidrawElement[], isAtPositionFn: (element: NonDeletedExcalidrawElement) => boolean) => NonDeletedExcalidrawElement[];
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ExcalidrawFrameLikeElement, NonDeletedExcalidrawElement } from "../element/types";
|
|
2
|
+
import type { AppState, BinaryFiles } from "../types";
|
|
3
|
+
export declare const exportToCanvas: (elements: readonly NonDeletedExcalidrawElement[], appState: AppState, files: BinaryFiles, { exportBackground, exportPadding, viewBackgroundColor, exportingFrame, }: {
|
|
4
|
+
exportBackground: boolean;
|
|
5
|
+
exportPadding?: number | undefined;
|
|
6
|
+
viewBackgroundColor: string;
|
|
7
|
+
exportingFrame?: ExcalidrawFrameLikeElement | null | undefined;
|
|
8
|
+
}, createCanvas?: (width: number, height: number) => {
|
|
9
|
+
canvas: HTMLCanvasElement;
|
|
10
|
+
scale: number;
|
|
11
|
+
}, loadFonts?: () => Promise<void>) => Promise<HTMLCanvasElement>;
|
|
12
|
+
export declare const exportToSvg: (elements: readonly NonDeletedExcalidrawElement[], appState: {
|
|
13
|
+
exportBackground: boolean;
|
|
14
|
+
exportPadding?: number;
|
|
15
|
+
exportScale?: number;
|
|
16
|
+
viewBackgroundColor: string;
|
|
17
|
+
exportWithDarkMode?: boolean;
|
|
18
|
+
exportEmbedScene?: boolean;
|
|
19
|
+
frameRendering?: AppState["frameRendering"];
|
|
20
|
+
frameColor?: AppState["frameColor"];
|
|
21
|
+
}, files: BinaryFiles | null, opts?: {
|
|
22
|
+
/**
|
|
23
|
+
* if true, all embeddables passed in will be rendered when possible.
|
|
24
|
+
*/
|
|
25
|
+
renderEmbeddables?: boolean;
|
|
26
|
+
exportingFrame?: ExcalidrawFrameLikeElement | null;
|
|
27
|
+
skipInliningFonts?: true;
|
|
28
|
+
}) => Promise<SVGSVGElement>;
|
|
29
|
+
export declare const getExportSize: (elements: readonly NonDeletedExcalidrawElement[], exportPadding: number, scale: number) => [number, number];
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { isSomeElementSelected, getElementsWithinSelection, getCommonAttributeOfSelectedElements, getSelectedElements, getTargetElements, } from "./selection";
|
|
2
|
+
export { calculateScrollCenter } from "./scroll";
|
|
3
|
+
export { hasBackground, hasStrokeWidth, hasStrokeStyle, canHaveArrowheads, canChangeRoundness, getElementAtPosition, getElementsAtPosition, } from "./comparisons";
|
|
4
|
+
export { getNormalizedZoom, getNormalizedGridSize, getNormalizedGridStep, } from "./normalize";
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NormalizedZoomValue } from "../types";
|
|
2
|
+
export declare const getNormalizedZoom: (zoom: number) => NormalizedZoomValue;
|
|
3
|
+
export declare const getNormalizedGridSize: (gridStep: number) => number;
|
|
4
|
+
export declare const getNormalizedGridStep: (gridStep: number) => number;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AppState, PointerCoords, Zoom } from "../types";
|
|
2
|
+
import type { ExcalidrawElement } from "../element/types";
|
|
3
|
+
export declare const centerScrollOn: ({ scenePoint, viewportDimensions, zoom, }: {
|
|
4
|
+
scenePoint: PointerCoords;
|
|
5
|
+
viewportDimensions: {
|
|
6
|
+
height: number;
|
|
7
|
+
width: number;
|
|
8
|
+
};
|
|
9
|
+
zoom: Zoom;
|
|
10
|
+
}) => {
|
|
11
|
+
scrollX: number;
|
|
12
|
+
scrollY: number;
|
|
13
|
+
};
|
|
14
|
+
export declare const calculateScrollCenter: (elements: readonly ExcalidrawElement[], appState: AppState) => {
|
|
15
|
+
scrollX: number;
|
|
16
|
+
scrollY: number;
|
|
17
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { InteractiveCanvasAppState } from "../types";
|
|
2
|
+
import type { ScrollBars } from "./types";
|
|
3
|
+
import type { ExcalidrawElement } from "../element/types";
|
|
4
|
+
export declare const SCROLLBAR_MARGIN = 4;
|
|
5
|
+
export declare const SCROLLBAR_WIDTH = 6;
|
|
6
|
+
export declare const SCROLLBAR_COLOR = "rgba(128,128,128,0.3)";
|
|
7
|
+
export declare const getScrollBars: (elements: readonly ExcalidrawElement[], viewportWidth: number, viewportHeight: number, appState: InteractiveCanvasAppState) => ScrollBars;
|
|
8
|
+
export declare const isOverScrollBars: (scrollBars: ScrollBars, x: number, y: number) => {
|
|
9
|
+
isOverEither: boolean;
|
|
10
|
+
isOverHorizontal: boolean;
|
|
11
|
+
isOverVertical: boolean;
|
|
12
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { ElementsMap, ElementsMapOrArray, ExcalidrawElement, NonDeletedExcalidrawElement } from "../element/types";
|
|
2
|
+
import type { AppState, InteractiveCanvasAppState } from "../types";
|
|
3
|
+
/**
|
|
4
|
+
* Frames and their containing elements are not to be selected at the same time.
|
|
5
|
+
* Given an array of selected elements, if there are frames and their containing elements
|
|
6
|
+
* we only keep the frames.
|
|
7
|
+
* @param selectedElements
|
|
8
|
+
*/
|
|
9
|
+
export declare const excludeElementsInFramesFromSelection: <T extends ExcalidrawElement>(selectedElements: readonly T[]) => T[];
|
|
10
|
+
export declare const getElementsWithinSelection: (elements: readonly NonDeletedExcalidrawElement[], selection: NonDeletedExcalidrawElement, elementsMap: ElementsMap, excludeElementsInFrames?: boolean) => NonDeletedExcalidrawElement[];
|
|
11
|
+
export declare const getVisibleAndNonSelectedElements: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: readonly NonDeletedExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => NonDeletedExcalidrawElement[];
|
|
12
|
+
export declare const isSomeElementSelected: {
|
|
13
|
+
(elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">): boolean;
|
|
14
|
+
clearCache(): void;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Returns common attribute (picked by `getAttribute` callback) of selected
|
|
18
|
+
* elements. If elements don't share the same value, returns `null`.
|
|
19
|
+
*/
|
|
20
|
+
export declare const getCommonAttributeOfSelectedElements: <T>(elements: readonly NonDeletedExcalidrawElement[], appState: Pick<AppState, "selectedElementIds">, getAttribute: (element: ExcalidrawElement) => T) => T | null;
|
|
21
|
+
export declare const getSelectedElements: (elements: ElementsMapOrArray, appState: Pick<InteractiveCanvasAppState, "selectedElementIds">, opts?: {
|
|
22
|
+
includeBoundTextElement?: boolean;
|
|
23
|
+
includeElementsInFrames?: boolean;
|
|
24
|
+
}) => ExcalidrawElement[];
|
|
25
|
+
export declare const getTargetElements: (elements: ElementsMapOrArray, appState: Pick<AppState, "selectedElementIds" | "editingTextElement" | "newElement">) => ExcalidrawElement[];
|
|
26
|
+
/**
|
|
27
|
+
* returns prevState's selectedElementids if no change from previous, so as to
|
|
28
|
+
* retain reference identity for memoization
|
|
29
|
+
*/
|
|
30
|
+
export declare const makeNextSelectedElementIds: (nextSelectedElementIds: AppState["selectedElementIds"], prevState: Pick<AppState, "selectedElementIds">) => Readonly<{
|
|
31
|
+
[id: string]: true;
|
|
32
|
+
}>;
|