@zsviczian/excalidraw 0.17.6-30 → 0.17.6-32
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 +14 -14
- package/dist/excalidraw.production.min.js +1 -1
- package/package.json +2 -1
- package/types/excalidraw/actions/actionAddToLibrary.d.ts +629 -0
- package/types/excalidraw/actions/actionAlign.d.ts +109 -0
- package/types/excalidraw/actions/actionBoundText.d.ts +456 -0
- package/types/excalidraw/actions/actionCanvas.d.ts +3070 -0
- package/types/excalidraw/actions/actionClipboard.d.ts +1374 -0
- package/types/excalidraw/actions/actionCropEditor.d.ts +222 -0
- package/types/excalidraw/actions/actionDeleteSelected.d.ts +668 -0
- package/types/excalidraw/actions/actionDistribute.d.ts +34 -0
- package/types/excalidraw/actions/actionDuplicateSelection.d.ts +21 -0
- package/types/excalidraw/actions/actionElementLink.d.ts +244 -0
- package/types/excalidraw/actions/actionElementLock.d.ts +444 -0
- package/types/excalidraw/actions/actionExport.d.ts +1953 -0
- package/types/excalidraw/actions/actionFinalize.d.ts +425 -0
- package/types/excalidraw/actions/actionFlip.d.ts +34 -0
- package/types/excalidraw/actions/actionFrame.d.ts +1384 -0
- package/types/excalidraw/actions/actionGroup.d.ts +454 -0
- package/types/excalidraw/actions/actionHistory.d.ts +7 -0
- package/types/excalidraw/actions/actionLinearEditor.d.ts +223 -0
- package/types/excalidraw/actions/actionLink.d.ts +223 -0
- package/types/excalidraw/actions/actionMenu.d.ts +649 -0
- package/types/excalidraw/actions/actionNavigate.d.ts +430 -0
- package/types/excalidraw/actions/actionProperties.d.ts +3276 -0
- package/types/excalidraw/actions/actionSelectAll.d.ts +222 -0
- package/types/excalidraw/actions/actionStyles.d.ts +236 -0
- package/types/excalidraw/actions/actionTextAutoResize.d.ts +17 -0
- package/types/excalidraw/actions/actionToggleGridMode.d.ts +225 -0
- package/types/excalidraw/actions/actionToggleObjectsSnapMode.d.ts +223 -0
- package/types/excalidraw/actions/actionToggleSearchMenu.d.ts +420 -0
- package/types/excalidraw/actions/actionToggleStats.d.ts +223 -0
- package/types/excalidraw/actions/actionToggleViewMode.d.ts +224 -0
- package/types/excalidraw/actions/actionToggleZenMode.d.ts +224 -0
- package/types/excalidraw/actions/actionZindex.d.ts +74 -0
- package/types/excalidraw/actions/index.d.ts +27 -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 +46 -0
- package/types/excalidraw/align.d.ts +7 -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 +66 -0
- package/types/excalidraw/colors.d.ts +61 -0
- package/types/excalidraw/components/Actions.d.ts +35 -0
- package/types/excalidraw/components/ActiveConfirmDialog.d.ts +4 -0
- package/types/excalidraw/components/App.d.ts +551 -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 +30 -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/ElementLinkDialog.d.ts +11 -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 +31 -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/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/Range.d.ts +8 -0
- package/types/excalidraw/components/SVGLayer.d.ts +7 -0
- package/types/excalidraw/components/ScrollableList.d.ts +8 -0
- package/types/excalidraw/components/SearchMenu.d.ts +5 -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 +9 -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/Switch.d.ts +9 -0
- package/types/excalidraw/components/TTDDialog/MermaidToExcalidraw.d.ts +8 -0
- package/types/excalidraw/components/TTDDialog/MermaidToExcalidrawLib.d.ts +10 -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 +21 -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 +9 -0
- package/types/excalidraw/components/icons.d.ts +223 -0
- package/types/excalidraw/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -0
- package/types/excalidraw/components/main-menu/DefaultItems.d.ts +64 -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 +328 -0
- package/types/excalidraw/context/tunnels.d.ts +21 -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 +53 -0
- package/types/excalidraw/data/encode.d.ts +55 -0
- package/types/excalidraw/data/encryption.d.ts +9 -0
- package/types/excalidraw/data/filesystem.d.ts +21 -0
- package/types/excalidraw/data/image.d.ts +9 -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 +112 -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 +7 -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 +3 -0
- package/types/excalidraw/distribute.d.ts +6 -0
- package/types/excalidraw/editor-jotai.d.ts +56 -0
- package/types/excalidraw/element/ElementCanvasButtons.d.ts +7 -0
- package/types/excalidraw/element/binding.d.ts +102 -0
- package/types/excalidraw/element/bounds.d.ts +76 -0
- package/types/excalidraw/element/collision.d.ts +17 -0
- package/types/excalidraw/element/containerCache.d.ts +11 -0
- package/types/excalidraw/element/cropElement.d.ts +19 -0
- package/types/excalidraw/element/dragElements.d.ts +32 -0
- package/types/excalidraw/element/elbowArrow.d.ts +16 -0
- package/types/excalidraw/element/elementLink.d.ts +13 -0
- package/types/excalidraw/element/embeddable.d.ts +229 -0
- package/types/excalidraw/element/flowchart.d.ts +25 -0
- package/types/excalidraw/element/heading.d.ts +16 -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 +127 -0
- package/types/excalidraw/element/mutateElement.d.ts +13 -0
- package/types/excalidraw/element/newElement.d.ts +102 -0
- package/types/excalidraw/element/resizeElements.d.ts +38 -0
- package/types/excalidraw/element/resizeTest.d.ts +15 -0
- package/types/excalidraw/element/showSelectedShapeActions.d.ts +3 -0
- package/types/excalidraw/element/sizeHelpers.d.ts +35 -0
- package/types/excalidraw/element/sortElements.d.ts +2 -0
- package/types/excalidraw/element/textElement.d.ts +83 -0
- package/types/excalidraw/element/textWrapping.d.ts +13 -0
- package/types/excalidraw/element/textWysiwyg.d.ts +22 -0
- package/types/excalidraw/element/transformHandles.d.ts +55 -0
- package/types/excalidraw/element/typeChecks.d.ts +39 -0
- package/types/excalidraw/element/types.d.ts +285 -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 +32 -0
- package/types/excalidraw/fonts/Cascadia/index.d.ts +2 -0
- package/types/excalidraw/fonts/ComicShanns/index.d.ts +2 -0
- package/types/excalidraw/fonts/Emoji/index.d.ts +2 -0
- package/types/excalidraw/fonts/ExcalidrawFontFace.d.ts +29 -0
- package/types/excalidraw/fonts/Excalifont/index.d.ts +2 -0
- package/types/excalidraw/fonts/FontMetadata.d.ts +37 -0
- package/types/excalidraw/fonts/Fonts.d.ts +100 -0
- package/types/excalidraw/fonts/Helvetica/index.d.ts +2 -0
- package/types/excalidraw/fonts/Liberation/index.d.ts +2 -0
- package/types/excalidraw/fonts/Lilita/index.d.ts +2 -0
- package/types/excalidraw/fonts/Nunito/index.d.ts +2 -0
- package/types/excalidraw/fonts/Virgil/index.d.ts +2 -0
- package/types/excalidraw/fonts/Xiaolai/index.d.ts +8 -0
- package/types/excalidraw/fonts/index.d.ts +1 -0
- package/types/excalidraw/fractionalIndex.d.ts +48 -0
- package/types/excalidraw/frame.d.ts +69 -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 +64 -0
- package/types/excalidraw/keys.d.ts +189 -0
- package/types/excalidraw/laser-trails.d.ts +20 -0
- package/types/excalidraw/main.d.ts +2 -0
- package/types/excalidraw/mermaid.d.ts +2 -0
- package/types/excalidraw/obsidianUtils.d.ts +26 -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 +28 -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/Renderer.d.ts +28 -0
- package/types/excalidraw/scene/Scene.d.ts +79 -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 +488 -0
- package/types/excalidraw/scene/export.d.ts +37 -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 +23 -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 +119 -0
- package/types/excalidraw/scene/zoom.d.ts +12 -0
- package/types/excalidraw/shapes.d.ts +85 -0
- package/types/excalidraw/snapping.d.ts +112 -0
- package/types/excalidraw/store.d.ts +129 -0
- package/types/excalidraw/subset/harfbuzz/harfbuzz-bindings.d.ts +45 -0
- package/types/excalidraw/subset/harfbuzz/harfbuzz-loader.d.ts +13 -0
- package/types/excalidraw/subset/harfbuzz/harfbuzz-wasm.d.ts +2 -0
- package/types/excalidraw/subset/subset-main.d.ts +12 -0
- package/types/excalidraw/subset/subset-shared.chunk.d.ts +32 -0
- package/types/excalidraw/subset/subset-worker.chunk.d.ts +15 -0
- package/types/excalidraw/subset/woff2/woff2-bindings.d.ts +31 -0
- package/types/excalidraw/subset/woff2/woff2-loader.d.ts +14 -0
- package/types/excalidraw/subset/woff2/woff2-wasm.d.ts +2 -0
- package/types/excalidraw/types.d.ts +742 -0
- package/types/excalidraw/utility-types.d.ts +32 -0
- package/types/excalidraw/utils.d.ts +256 -0
- package/types/excalidraw/visualdebug.d.ts +42 -0
- package/types/excalidraw/webpack.dev.config.d.ts +81 -0
- package/types/excalidraw/webpack.prod.config.d.ts +97 -0
- package/types/excalidraw/workers.d.ts +36 -0
- package/types/excalidraw/zindex.d.ts +6 -0
- package/types/math/angle.d.ts +17 -0
- package/types/math/arc.d.ts +6 -0
- package/types/math/curve.d.ts +32 -0
- package/types/math/ga/ga.d.ts +63 -0
- package/types/math/ga/gadirections.d.ts +8 -0
- package/types/math/ga/galines.d.ts +22 -0
- package/types/math/ga/gapoints.d.ts +7 -0
- package/types/math/ga/gatransforms.d.ts +10 -0
- package/types/math/index.d.ts +12 -0
- package/types/math/line.d.ts +45 -0
- package/types/math/point.d.ts +150 -0
- package/types/math/polygon.d.ts +5 -0
- package/types/math/range.d.ts +44 -0
- package/types/math/segment.d.ts +32 -0
- package/types/math/triangle.d.ts +11 -0
- package/types/math/types.d.ts +96 -0
- package/types/math/utils.d.ts +7 -0
- package/types/math/vector.d.ts +92 -0
- package/types/utils/bbox.d.ts +9 -0
- package/types/utils/collision.d.ts +9 -0
- package/types/utils/export.d.ts +46 -0
- package/types/utils/geometry/shape.d.ts +71 -0
- package/types/utils/index.d.ts +4 -0
- package/types/utils/withinBounds.d.ts +19 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { RoughCanvas } from "roughjs/bin/canvas";
|
|
2
|
+
import type { Drawable } from "roughjs/bin/core";
|
|
3
|
+
import type { ExcalidrawElement, NonDeletedElementsMap, NonDeletedExcalidrawElement, NonDeletedSceneElementsMap } from "../element/types";
|
|
4
|
+
import type { AppClassProperties, AppState, EmbedsValidationStatus, ElementsPendingErasure, InteractiveCanvasAppState, StaticCanvasAppState, SocketId, UserIdleState, Device, PendingExcalidrawElements } from "../types";
|
|
5
|
+
import type { MakeBrand } from "../utility-types";
|
|
6
|
+
export type RenderableElementsMap = NonDeletedElementsMap & MakeBrand<"RenderableElementsMap">;
|
|
7
|
+
export type StaticCanvasRenderConfig = {
|
|
8
|
+
canvasBackgroundColor: AppState["viewBackgroundColor"];
|
|
9
|
+
imageCache: AppClassProperties["imageCache"];
|
|
10
|
+
renderGrid: boolean;
|
|
11
|
+
/** when exporting the behavior is slightly different (e.g. we can't use
|
|
12
|
+
CSS filters), and we disable render optimizations for best output */
|
|
13
|
+
isExporting: boolean;
|
|
14
|
+
embedsValidationStatus: EmbedsValidationStatus;
|
|
15
|
+
elementsPendingErasure: ElementsPendingErasure;
|
|
16
|
+
pendingFlowchartNodes: PendingExcalidrawElements | null;
|
|
17
|
+
isHighlighterPenDrawing?: boolean;
|
|
18
|
+
};
|
|
19
|
+
export type SVGRenderConfig = {
|
|
20
|
+
offsetX: number;
|
|
21
|
+
offsetY: number;
|
|
22
|
+
isExporting: boolean;
|
|
23
|
+
exportWithDarkMode: boolean;
|
|
24
|
+
renderEmbeddables: boolean;
|
|
25
|
+
frameRendering: AppState["frameRendering"];
|
|
26
|
+
canvasBackgroundColor: AppState["viewBackgroundColor"];
|
|
27
|
+
frameColor?: AppState["frameColor"];
|
|
28
|
+
embedsValidationStatus: EmbedsValidationStatus;
|
|
29
|
+
/**
|
|
30
|
+
* whether to attempt to reuse images as much as possible through symbols
|
|
31
|
+
* (reduces SVG size, but may be incompoatible with some SVG renderers)
|
|
32
|
+
*
|
|
33
|
+
* @default true
|
|
34
|
+
*/
|
|
35
|
+
reuseImages: boolean;
|
|
36
|
+
};
|
|
37
|
+
export type InteractiveCanvasRenderConfig = {
|
|
38
|
+
remoteSelectedElementIds: Map<ExcalidrawElement["id"], SocketId[]>;
|
|
39
|
+
remotePointerViewportCoords: Map<SocketId, {
|
|
40
|
+
x: number;
|
|
41
|
+
y: number;
|
|
42
|
+
}>;
|
|
43
|
+
remotePointerUserStates: Map<SocketId, UserIdleState>;
|
|
44
|
+
remotePointerUsernames: Map<SocketId, string>;
|
|
45
|
+
remotePointerButton: Map<SocketId, string | undefined>;
|
|
46
|
+
selectionColor: string;
|
|
47
|
+
renderScrollbars?: boolean;
|
|
48
|
+
};
|
|
49
|
+
export type RenderInteractiveSceneCallback = {
|
|
50
|
+
atLeastOneVisibleElement: boolean;
|
|
51
|
+
elementsMap: RenderableElementsMap;
|
|
52
|
+
scrollBars?: ScrollBars;
|
|
53
|
+
};
|
|
54
|
+
export type StaticSceneRenderConfig = {
|
|
55
|
+
canvas: HTMLCanvasElement;
|
|
56
|
+
rc: RoughCanvas;
|
|
57
|
+
elementsMap: RenderableElementsMap;
|
|
58
|
+
allElementsMap: NonDeletedSceneElementsMap;
|
|
59
|
+
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
60
|
+
scale: number;
|
|
61
|
+
appState: StaticCanvasAppState;
|
|
62
|
+
renderConfig: StaticCanvasRenderConfig;
|
|
63
|
+
};
|
|
64
|
+
export type InteractiveSceneRenderConfig = {
|
|
65
|
+
canvas: HTMLCanvasElement | null;
|
|
66
|
+
elementsMap: RenderableElementsMap;
|
|
67
|
+
visibleElements: readonly NonDeletedExcalidrawElement[];
|
|
68
|
+
selectedElements: readonly NonDeletedExcalidrawElement[];
|
|
69
|
+
allElementsMap: NonDeletedSceneElementsMap;
|
|
70
|
+
scale: number;
|
|
71
|
+
appState: InteractiveCanvasAppState;
|
|
72
|
+
renderConfig: InteractiveCanvasRenderConfig;
|
|
73
|
+
device: Device;
|
|
74
|
+
callback: (data: RenderInteractiveSceneCallback) => void;
|
|
75
|
+
};
|
|
76
|
+
export type NewElementSceneRenderConfig = {
|
|
77
|
+
canvas: HTMLCanvasElement | null;
|
|
78
|
+
rc: RoughCanvas;
|
|
79
|
+
newElement: ExcalidrawElement | null;
|
|
80
|
+
elementsMap: RenderableElementsMap;
|
|
81
|
+
allElementsMap: NonDeletedSceneElementsMap;
|
|
82
|
+
scale: number;
|
|
83
|
+
appState: AppState;
|
|
84
|
+
renderConfig: StaticCanvasRenderConfig;
|
|
85
|
+
};
|
|
86
|
+
export type SceneScroll = {
|
|
87
|
+
scrollX: number;
|
|
88
|
+
scrollY: number;
|
|
89
|
+
};
|
|
90
|
+
export type ExportType = "png" | "clipboard" | "clipboard-svg" | "backend" | "svg";
|
|
91
|
+
export type ScrollBars = {
|
|
92
|
+
horizontal: {
|
|
93
|
+
x: number;
|
|
94
|
+
y: number;
|
|
95
|
+
width: number;
|
|
96
|
+
height: number;
|
|
97
|
+
} | null;
|
|
98
|
+
vertical: {
|
|
99
|
+
x: number;
|
|
100
|
+
y: number;
|
|
101
|
+
width: number;
|
|
102
|
+
height: number;
|
|
103
|
+
} | null;
|
|
104
|
+
};
|
|
105
|
+
export type ElementShape = Drawable | Drawable[] | null;
|
|
106
|
+
export type ElementShapes = {
|
|
107
|
+
rectangle: Drawable;
|
|
108
|
+
ellipse: Drawable;
|
|
109
|
+
diamond: Drawable;
|
|
110
|
+
iframe: Drawable;
|
|
111
|
+
embeddable: Drawable;
|
|
112
|
+
freedraw: Drawable | null;
|
|
113
|
+
arrow: Drawable[];
|
|
114
|
+
line: Drawable[];
|
|
115
|
+
text: null;
|
|
116
|
+
image: null;
|
|
117
|
+
frame: null;
|
|
118
|
+
magicframe: null;
|
|
119
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { AppState, NormalizedZoomValue } from "../types";
|
|
2
|
+
export declare const getStateForZoom: ({ viewportX, viewportY, nextZoom, }: {
|
|
3
|
+
viewportX: number;
|
|
4
|
+
viewportY: number;
|
|
5
|
+
nextZoom: NormalizedZoomValue;
|
|
6
|
+
}, appState: AppState) => {
|
|
7
|
+
scrollX: number;
|
|
8
|
+
scrollY: number;
|
|
9
|
+
zoom: {
|
|
10
|
+
value: NormalizedZoomValue;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { type GlobalPoint, type LocalPoint } from "../math";
|
|
2
|
+
import { type GeometricShape } from "../utils/geometry/shape";
|
|
3
|
+
import type { Bounds } from "./element/bounds";
|
|
4
|
+
import type { ElementsMap, ExcalidrawElement, ExcalidrawLinearElement, NonDeleted } from "./element/types";
|
|
5
|
+
import type { Zoom } from "./types";
|
|
6
|
+
export declare const SHAPES: readonly [{
|
|
7
|
+
readonly icon: JSX.Element;
|
|
8
|
+
readonly value: "selection";
|
|
9
|
+
readonly key: "v";
|
|
10
|
+
readonly numericKey: "1";
|
|
11
|
+
readonly fillable: true;
|
|
12
|
+
}, {
|
|
13
|
+
readonly icon: JSX.Element;
|
|
14
|
+
readonly value: "rectangle";
|
|
15
|
+
readonly key: "r";
|
|
16
|
+
readonly numericKey: "2";
|
|
17
|
+
readonly fillable: true;
|
|
18
|
+
}, {
|
|
19
|
+
readonly icon: JSX.Element;
|
|
20
|
+
readonly value: "diamond";
|
|
21
|
+
readonly key: "d";
|
|
22
|
+
readonly numericKey: "3";
|
|
23
|
+
readonly fillable: true;
|
|
24
|
+
}, {
|
|
25
|
+
readonly icon: JSX.Element;
|
|
26
|
+
readonly value: "ellipse";
|
|
27
|
+
readonly key: "o";
|
|
28
|
+
readonly numericKey: "4";
|
|
29
|
+
readonly fillable: true;
|
|
30
|
+
}, {
|
|
31
|
+
readonly icon: JSX.Element;
|
|
32
|
+
readonly value: "arrow";
|
|
33
|
+
readonly key: "a";
|
|
34
|
+
readonly numericKey: "5";
|
|
35
|
+
readonly fillable: true;
|
|
36
|
+
}, {
|
|
37
|
+
readonly icon: JSX.Element;
|
|
38
|
+
readonly value: "line";
|
|
39
|
+
readonly key: "l";
|
|
40
|
+
readonly numericKey: "6";
|
|
41
|
+
readonly fillable: true;
|
|
42
|
+
}, {
|
|
43
|
+
readonly icon: JSX.Element;
|
|
44
|
+
readonly value: "freedraw";
|
|
45
|
+
readonly key: readonly ["p", "x"];
|
|
46
|
+
readonly numericKey: "7";
|
|
47
|
+
readonly fillable: false;
|
|
48
|
+
}, {
|
|
49
|
+
readonly icon: JSX.Element;
|
|
50
|
+
readonly value: "text";
|
|
51
|
+
readonly key: "t";
|
|
52
|
+
readonly numericKey: "8";
|
|
53
|
+
readonly fillable: false;
|
|
54
|
+
}, {
|
|
55
|
+
readonly icon: JSX.Element;
|
|
56
|
+
readonly value: "image";
|
|
57
|
+
readonly key: null;
|
|
58
|
+
readonly numericKey: "9";
|
|
59
|
+
readonly fillable: false;
|
|
60
|
+
}, {
|
|
61
|
+
readonly icon: JSX.Element;
|
|
62
|
+
readonly value: "eraser";
|
|
63
|
+
readonly key: "e";
|
|
64
|
+
readonly numericKey: "0";
|
|
65
|
+
readonly fillable: false;
|
|
66
|
+
}];
|
|
67
|
+
export declare const findShapeByKey: (key: string) => "line" | "text" | "arrow" | "diamond" | "selection" | "rectangle" | "ellipse" | "freedraw" | "image" | "eraser" | null;
|
|
68
|
+
/**
|
|
69
|
+
* get the pure geometric shape of an excalidraw element
|
|
70
|
+
* which is then used for hit detection
|
|
71
|
+
*/
|
|
72
|
+
export declare const getElementShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap) => GeometricShape<Point>;
|
|
73
|
+
export declare const getBoundTextShape: <Point extends GlobalPoint | LocalPoint>(element: ExcalidrawElement, elementsMap: ElementsMap) => GeometricShape<Point> | null;
|
|
74
|
+
export declare const getControlPointsForBezierCurve: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P) => P[] | null;
|
|
75
|
+
export declare const getBezierXY: <P extends GlobalPoint | LocalPoint>(p0: P, p1: P, p2: P, p3: P, t: number) => P;
|
|
76
|
+
export declare const getBezierCurveLength: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P) => number;
|
|
77
|
+
export declare const mapIntervalToBezierT: <P extends GlobalPoint | LocalPoint>(element: NonDeleted<ExcalidrawLinearElement>, endPoint: P, interval: number) => number;
|
|
78
|
+
/**
|
|
79
|
+
* Get the axis-aligned bounding box for a given element
|
|
80
|
+
*/
|
|
81
|
+
export declare const aabbForElement: (element: Readonly<ExcalidrawElement>, offset?: [number, number, number, number]) => Bounds;
|
|
82
|
+
export declare const pointInsideBounds: <P extends GlobalPoint | LocalPoint>(p: P, bounds: Bounds) => boolean;
|
|
83
|
+
export declare const aabbsOverlapping: (a: Bounds, b: Bounds) => boolean;
|
|
84
|
+
export declare const getCornerRadius: (x: number, element: ExcalidrawElement) => number;
|
|
85
|
+
export declare const isPathALoop: (points: ExcalidrawLinearElement["points"], zoomValue?: Zoom["value"]) => boolean;
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type { InclusiveRange } from "../math";
|
|
2
|
+
import { type GlobalPoint } from "../math";
|
|
3
|
+
import type { Bounds } from "./element/bounds";
|
|
4
|
+
import type { MaybeTransformHandleType } from "./element/transformHandles";
|
|
5
|
+
import type { ElementsMap, ExcalidrawElement, NonDeletedExcalidrawElement } from "./element/types";
|
|
6
|
+
import type { AppClassProperties, AppState, KeyboardModifiersObject, NullableGridSize } from "./types";
|
|
7
|
+
export declare const getSnapDistance: (zoomValue: number) => number;
|
|
8
|
+
type Vector2D = {
|
|
9
|
+
x: number;
|
|
10
|
+
y: number;
|
|
11
|
+
};
|
|
12
|
+
type PointPair = [GlobalPoint, GlobalPoint];
|
|
13
|
+
export type PointSnap = {
|
|
14
|
+
type: "point";
|
|
15
|
+
points: PointPair;
|
|
16
|
+
offset: number;
|
|
17
|
+
};
|
|
18
|
+
export type Gap = {
|
|
19
|
+
startBounds: Bounds;
|
|
20
|
+
endBounds: Bounds;
|
|
21
|
+
startSide: [GlobalPoint, GlobalPoint];
|
|
22
|
+
endSide: [GlobalPoint, GlobalPoint];
|
|
23
|
+
overlap: InclusiveRange;
|
|
24
|
+
length: number;
|
|
25
|
+
};
|
|
26
|
+
export type GapSnap = {
|
|
27
|
+
type: "gap";
|
|
28
|
+
direction: "center_horizontal" | "center_vertical" | "side_left" | "side_right" | "side_top" | "side_bottom";
|
|
29
|
+
gap: Gap;
|
|
30
|
+
offset: number;
|
|
31
|
+
};
|
|
32
|
+
export type GapSnaps = GapSnap[];
|
|
33
|
+
export type Snap = GapSnap | PointSnap;
|
|
34
|
+
export type Snaps = Snap[];
|
|
35
|
+
export type PointSnapLine = {
|
|
36
|
+
type: "points";
|
|
37
|
+
points: GlobalPoint[];
|
|
38
|
+
};
|
|
39
|
+
export type PointerSnapLine = {
|
|
40
|
+
type: "pointer";
|
|
41
|
+
points: PointPair;
|
|
42
|
+
direction: "horizontal" | "vertical";
|
|
43
|
+
};
|
|
44
|
+
export type GapSnapLine = {
|
|
45
|
+
type: "gap";
|
|
46
|
+
direction: "horizontal" | "vertical";
|
|
47
|
+
points: PointPair;
|
|
48
|
+
};
|
|
49
|
+
export type SnapLine = PointSnapLine | GapSnapLine | PointerSnapLine;
|
|
50
|
+
export declare class SnapCache {
|
|
51
|
+
private static referenceSnapPoints;
|
|
52
|
+
private static visibleGaps;
|
|
53
|
+
static setReferenceSnapPoints: (snapPoints: GlobalPoint[] | null) => void;
|
|
54
|
+
static getReferenceSnapPoints: () => GlobalPoint[] | null;
|
|
55
|
+
static setVisibleGaps: (gaps: {
|
|
56
|
+
verticalGaps: Gap[];
|
|
57
|
+
horizontalGaps: Gap[];
|
|
58
|
+
} | null) => void;
|
|
59
|
+
static getVisibleGaps: () => {
|
|
60
|
+
verticalGaps: Gap[];
|
|
61
|
+
horizontalGaps: Gap[];
|
|
62
|
+
} | null;
|
|
63
|
+
static destroy: () => void;
|
|
64
|
+
}
|
|
65
|
+
export declare const isGridModeEnabled: (app: AppClassProperties) => boolean;
|
|
66
|
+
export declare const isSnappingEnabled: ({ event, app, selectedElements, }: {
|
|
67
|
+
app: AppClassProperties;
|
|
68
|
+
event: KeyboardModifiersObject;
|
|
69
|
+
selectedElements: NonDeletedExcalidrawElement[];
|
|
70
|
+
}) => boolean;
|
|
71
|
+
export declare const areRoughlyEqual: (a: number, b: number, precision?: number) => boolean;
|
|
72
|
+
export declare const getElementsCorners: (elements: ExcalidrawElement[], elementsMap: ElementsMap, { omitCenter, boundingBoxCorners, dragOffset, }?: {
|
|
73
|
+
omitCenter?: boolean | undefined;
|
|
74
|
+
boundingBoxCorners?: boolean | undefined;
|
|
75
|
+
dragOffset?: Vector2D | undefined;
|
|
76
|
+
}) => GlobalPoint[];
|
|
77
|
+
export declare const getVisibleGaps: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => {
|
|
78
|
+
horizontalGaps: Gap[];
|
|
79
|
+
verticalGaps: Gap[];
|
|
80
|
+
};
|
|
81
|
+
export declare const getReferenceSnapPoints: (elements: readonly NonDeletedExcalidrawElement[], selectedElements: ExcalidrawElement[], appState: AppState, elementsMap: ElementsMap) => GlobalPoint[];
|
|
82
|
+
export declare const snapDraggedElements: (elements: ExcalidrawElement[], dragOffset: Vector2D, app: AppClassProperties, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
|
|
83
|
+
snapOffset: {
|
|
84
|
+
x: number;
|
|
85
|
+
y: number;
|
|
86
|
+
};
|
|
87
|
+
snapLines: (PointSnapLine | GapSnapLine)[];
|
|
88
|
+
};
|
|
89
|
+
export declare const snapResizingElements: (selectedElements: ExcalidrawElement[], selectedOriginalElements: ExcalidrawElement[], app: AppClassProperties, event: KeyboardModifiersObject, dragOffset: Vector2D, transformHandle: MaybeTransformHandleType) => {
|
|
90
|
+
snapOffset: {
|
|
91
|
+
x: number;
|
|
92
|
+
y: number;
|
|
93
|
+
};
|
|
94
|
+
snapLines: PointSnapLine[];
|
|
95
|
+
};
|
|
96
|
+
export declare const snapNewElement: (newElement: ExcalidrawElement, app: AppClassProperties, event: KeyboardModifiersObject, origin: Vector2D, dragOffset: Vector2D, elementsMap: ElementsMap) => {
|
|
97
|
+
snapOffset: {
|
|
98
|
+
x: number;
|
|
99
|
+
y: number;
|
|
100
|
+
};
|
|
101
|
+
snapLines: PointSnapLine[];
|
|
102
|
+
};
|
|
103
|
+
export declare const getSnapLinesAtPointer: (elements: readonly ExcalidrawElement[], app: AppClassProperties, pointer: Vector2D, event: KeyboardModifiersObject, elementsMap: ElementsMap) => {
|
|
104
|
+
originOffset: {
|
|
105
|
+
x: number;
|
|
106
|
+
y: number;
|
|
107
|
+
};
|
|
108
|
+
snapLines: PointerSnapLine[];
|
|
109
|
+
};
|
|
110
|
+
export declare const isActiveToolNonLinearSnappable: (activeToolType: AppState["activeTool"]["type"]) => boolean;
|
|
111
|
+
export declare const getGridPoint: (x: number, y: number, gridSize: NullableGridSize) => [number, number];
|
|
112
|
+
export {};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { AppStateChange, ElementsChange } from "./change";
|
|
2
|
+
import type { OrderedExcalidrawElement } from "./element/types";
|
|
3
|
+
import { Emitter } from "./emitter";
|
|
4
|
+
import type { AppState, ObservedAppState } from "./types";
|
|
5
|
+
import type { ValueOf } from "./utility-types";
|
|
6
|
+
export declare const getObservedAppState: (appState: AppState) => ObservedAppState;
|
|
7
|
+
export declare const StoreAction: {
|
|
8
|
+
/**
|
|
9
|
+
* Immediately undoable.
|
|
10
|
+
*
|
|
11
|
+
* Use for updates which should be captured.
|
|
12
|
+
* Should be used for most of the local updates.
|
|
13
|
+
*
|
|
14
|
+
* These updates will _immediately_ make it to the local undo / redo stacks.
|
|
15
|
+
*/
|
|
16
|
+
readonly CAPTURE: "capture";
|
|
17
|
+
/**
|
|
18
|
+
* Never undoable.
|
|
19
|
+
*
|
|
20
|
+
* Use for updates which should never be recorded, such as remote updates
|
|
21
|
+
* or scene initialization.
|
|
22
|
+
*
|
|
23
|
+
* These updates will _never_ make it to the local undo / redo stacks.
|
|
24
|
+
*/
|
|
25
|
+
readonly UPDATE: "update";
|
|
26
|
+
/**
|
|
27
|
+
* Eventually undoable.
|
|
28
|
+
*
|
|
29
|
+
* Use for updates which should not be captured immediately - likely
|
|
30
|
+
* exceptions which are part of some async multi-step process. Otherwise, all
|
|
31
|
+
* such updates would end up being captured with the next
|
|
32
|
+
* `StoreAction.CAPTURE` - triggered either by the next `updateScene`
|
|
33
|
+
* or internally by the editor.
|
|
34
|
+
*
|
|
35
|
+
* These updates will _eventually_ make it to the local undo / redo stacks.
|
|
36
|
+
*/
|
|
37
|
+
readonly NONE: "none";
|
|
38
|
+
};
|
|
39
|
+
export type StoreActionType = ValueOf<typeof StoreAction>;
|
|
40
|
+
/**
|
|
41
|
+
* Represent an increment to the Store.
|
|
42
|
+
*/
|
|
43
|
+
declare class StoreIncrementEvent {
|
|
44
|
+
readonly elementsChange: ElementsChange;
|
|
45
|
+
readonly appStateChange: AppStateChange;
|
|
46
|
+
constructor(elementsChange: ElementsChange, appStateChange: AppStateChange);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Store which captures the observed changes and emits them as `StoreIncrementEvent` events.
|
|
50
|
+
*
|
|
51
|
+
* @experimental this interface is experimental and subject to change.
|
|
52
|
+
*/
|
|
53
|
+
export interface IStore {
|
|
54
|
+
onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
|
|
55
|
+
get snapshot(): Snapshot;
|
|
56
|
+
set snapshot(snapshot: Snapshot);
|
|
57
|
+
/**
|
|
58
|
+
* Use to schedule update of the snapshot, useful on updates for which we don't need to calculate increments (i.e. remote updates).
|
|
59
|
+
*/
|
|
60
|
+
shouldUpdateSnapshot(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Use to schedule calculation of a store increment.
|
|
63
|
+
*/
|
|
64
|
+
shouldCaptureIncrement(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Based on the scheduled operation, either only updates store snapshot or also calculates increment and emits the result as a `StoreIncrementEvent`.
|
|
67
|
+
*
|
|
68
|
+
* @emits StoreIncrementEvent when increment is calculated.
|
|
69
|
+
*/
|
|
70
|
+
commit(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): void;
|
|
71
|
+
/**
|
|
72
|
+
* Clears the store instance.
|
|
73
|
+
*/
|
|
74
|
+
clear(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Filters out yet uncomitted elements from `nextElements`, which are part of in-progress local async actions (ephemerals) and thus were not yet commited to the snapshot.
|
|
77
|
+
*
|
|
78
|
+
* This is necessary in updates in which we receive reconciled elements, already containing elements which were not yet captured by the local store (i.e. collab).
|
|
79
|
+
*/
|
|
80
|
+
filterUncomittedElements(prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>): Map<string, OrderedExcalidrawElement>;
|
|
81
|
+
}
|
|
82
|
+
export declare class Store implements IStore {
|
|
83
|
+
readonly onStoreIncrementEmitter: Emitter<[StoreIncrementEvent]>;
|
|
84
|
+
private scheduledActions;
|
|
85
|
+
private _snapshot;
|
|
86
|
+
get snapshot(): Snapshot;
|
|
87
|
+
set snapshot(snapshot: Snapshot);
|
|
88
|
+
shouldCaptureIncrement: () => void;
|
|
89
|
+
shouldUpdateSnapshot: () => void;
|
|
90
|
+
private scheduleAction;
|
|
91
|
+
commit: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
|
|
92
|
+
captureIncrement: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
|
|
93
|
+
updateSnapshot: (elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined) => void;
|
|
94
|
+
filterUncomittedElements: (prevElements: Map<string, OrderedExcalidrawElement>, nextElements: Map<string, OrderedExcalidrawElement>) => Map<string, OrderedExcalidrawElement>;
|
|
95
|
+
clear: () => void;
|
|
96
|
+
private satisfiesScheduledActionsInvariant;
|
|
97
|
+
}
|
|
98
|
+
export declare class Snapshot {
|
|
99
|
+
readonly elements: Map<string, OrderedExcalidrawElement>;
|
|
100
|
+
readonly appState: ObservedAppState;
|
|
101
|
+
readonly meta: {
|
|
102
|
+
didElementsChange: boolean;
|
|
103
|
+
didAppStateChange: boolean;
|
|
104
|
+
isEmpty?: boolean;
|
|
105
|
+
};
|
|
106
|
+
private constructor();
|
|
107
|
+
static empty(): Snapshot;
|
|
108
|
+
isEmpty(): boolean | undefined;
|
|
109
|
+
/**
|
|
110
|
+
* Efficiently clone the existing snapshot, only if we detected changes.
|
|
111
|
+
*
|
|
112
|
+
* @returns same instance if there are no changes detected, new instance otherwise.
|
|
113
|
+
*/
|
|
114
|
+
maybeClone(elements: Map<string, OrderedExcalidrawElement> | undefined, appState: AppState | ObservedAppState | undefined): Snapshot;
|
|
115
|
+
private maybeCreateAppStateSnapshot;
|
|
116
|
+
private detectChangedAppState;
|
|
117
|
+
private maybeCreateElementsSnapshot;
|
|
118
|
+
/**
|
|
119
|
+
* Detect if there any changed elements.
|
|
120
|
+
*
|
|
121
|
+
* NOTE: we shouldn't just use `sceneVersionNonce` instead, as we need to call this before the scene updates.
|
|
122
|
+
*/
|
|
123
|
+
private detectChangedElements;
|
|
124
|
+
/**
|
|
125
|
+
* Perform structural clone, cloning only elements that changed.
|
|
126
|
+
*/
|
|
127
|
+
private createElementsSnapshot;
|
|
128
|
+
}
|
|
129
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Modified version of hb-subset bindings from "subset-font" package https://github.com/papandreou/subset-font/blob/3f711c8aa29a426c7f22655861abfb976950f527/index.js
|
|
3
|
+
*
|
|
4
|
+
* CHANGELOG:
|
|
5
|
+
* - removed dependency on node APIs to work inside the browser
|
|
6
|
+
* - removed dependency on font fontverter for brotli compression
|
|
7
|
+
* - removed dependencies on lodash and p-limit
|
|
8
|
+
* - removed options for preserveNameIds, variationAxes, noLayoutClosure (not needed for now)
|
|
9
|
+
* - replaced text input with codepoints
|
|
10
|
+
* - rewritten in typescript and with esm modules
|
|
11
|
+
|
|
12
|
+
Copyright (c) 2012, Andreas Lind Petersen
|
|
13
|
+
All rights reserved.
|
|
14
|
+
|
|
15
|
+
Redistribution and use in source and binary forms, with or without
|
|
16
|
+
modification, are permitted provided that the following conditions are
|
|
17
|
+
met:
|
|
18
|
+
|
|
19
|
+
* Redistributions of source code must retain the above copyright
|
|
20
|
+
notice, this list of conditions and the following disclaimer.
|
|
21
|
+
* Redistributions in binary form must reproduce the above copyright
|
|
22
|
+
notice, this list of conditions and the following disclaimer in
|
|
23
|
+
the documentation and/or other materials provided with the
|
|
24
|
+
distribution.
|
|
25
|
+
* Neither the name of the author nor the names of contributors may
|
|
26
|
+
be used to endorse or promote products derived from this
|
|
27
|
+
software without specific prior written permission.
|
|
28
|
+
|
|
29
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
30
|
+
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
31
|
+
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
32
|
+
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
33
|
+
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
34
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
35
|
+
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
36
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
37
|
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
38
|
+
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
39
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
40
|
+
*/
|
|
41
|
+
declare function subset(hbSubsetWasm: any, heapu8: Uint8Array, font: ArrayBuffer, codePoints: ReadonlySet<number>): Uint8Array;
|
|
42
|
+
declare const _default: {
|
|
43
|
+
subset: typeof subset;
|
|
44
|
+
};
|
|
45
|
+
export default _default;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
|
|
3
|
+
*
|
|
4
|
+
* Including anything from the main chunk would include the whole chunk by default.
|
|
5
|
+
* Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
|
|
6
|
+
*
|
|
7
|
+
* In the future consider separating common utils into a separate shared chunk.
|
|
8
|
+
*/
|
|
9
|
+
declare const load: () => Promise<{
|
|
10
|
+
subset: (fontBuffer: ArrayBuffer, codePoints: ReadonlySet<number>) => Uint8Array;
|
|
11
|
+
}>;
|
|
12
|
+
declare const _default: () => ReturnType<typeof load>;
|
|
13
|
+
export default _default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tries to subset glyphs in a font based on the used codepoints, returning the font as dataurl.
|
|
3
|
+
* Under the hood utilizes worker threads (Web Workers, if available), otherwise fallbacks to the main thread.
|
|
4
|
+
*
|
|
5
|
+
* Check the following diagram for details: link.excalidraw.com/readonly/MbbnWPSWXgadXdtmzgeO
|
|
6
|
+
*
|
|
7
|
+
* @param arrayBuffer font data buffer in the woff2 format
|
|
8
|
+
* @param codePoints codepoints used to subset the glyphs
|
|
9
|
+
*
|
|
10
|
+
* @returns font with subsetted glyphs (all glyphs in case of errors) converted into a dataurl
|
|
11
|
+
*/
|
|
12
|
+
export declare const subsetWoff2GlyphsByCodepoints: (arrayBuffer: ArrayBuffer, codePoints: Array<number>) => Promise<string>;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
|
|
3
|
+
*
|
|
4
|
+
* Including anything from the main chunk would include the whole chunk by default.
|
|
5
|
+
* Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
|
|
6
|
+
*
|
|
7
|
+
* In the future consider separating common utils into a separate shared chunk.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Shared commands between the main thread and worker threads.
|
|
11
|
+
*/
|
|
12
|
+
export declare const Commands: {
|
|
13
|
+
readonly Subset: "SUBSET";
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Used by browser (main thread), node and jsdom, to subset the font based on the passed codepoints.
|
|
17
|
+
*
|
|
18
|
+
* @returns woff2 font as a base64 encoded string
|
|
19
|
+
*/
|
|
20
|
+
export declare const subsetToBase64: (arrayBuffer: ArrayBuffer, codePoints: Array<number>) => Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Used by browser (worker thread) and as part of `subsetToBase64`, to subset the font based on the passed codepoints.
|
|
23
|
+
*
|
|
24
|
+
* @eturns woff2 font as an ArrayBuffer, to avoid copying large strings between worker threads and the main thread.
|
|
25
|
+
*/
|
|
26
|
+
export declare const subsetToBinary: (arrayBuffer: ArrayBuffer, codePoints: Array<number>) => Promise<ArrayBuffer>;
|
|
27
|
+
/**
|
|
28
|
+
* Util for isomoprhic browser (main thread), node and jsdom usage.
|
|
29
|
+
*
|
|
30
|
+
* Isn't used inside the worker to avoid copying large binary strings (as dataurl) between worker threads and the main thread.
|
|
31
|
+
*/
|
|
32
|
+
export declare const toBase64: (arrayBuffer: ArrayBuffer) => Promise<string>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
|
|
3
|
+
*
|
|
4
|
+
* Including anything from the main chunk would include the whole chunk by default.
|
|
5
|
+
* Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
|
|
6
|
+
*
|
|
7
|
+
* In the future consider separating common utils into a separate shared chunk.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Due to this export (and related dynamic import), this worker code will be included in the bundle automatically (as a separate chunk),
|
|
11
|
+
* without the need for esbuild / vite /rollup plugins and special browser / server treatment.
|
|
12
|
+
*
|
|
13
|
+
* `import.meta.url` is undefined in nodejs
|
|
14
|
+
*/
|
|
15
|
+
export declare const WorkerUrl: URL | undefined;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Slitghly modified emscripten bindings of https://github.com/kekee000/fonteditor-core/blob/582bba757aa2915ec2240c61717ff12c50594675/woff2src/woff2.js
|
|
3
|
+
*
|
|
4
|
+
* CHANGELOG:
|
|
5
|
+
* - replaced existing exports with default esm export (`export default Module;`)
|
|
6
|
+
* - replaced "instanceof ArrayBuffer" with "Object.prototype.toString.call(d) === "[object ArrayBuffer]", due to unreliability of different ArrayBuffer instances depending on the context (i.e. inside VM)
|
|
7
|
+
|
|
8
|
+
The MIT License (MIT)
|
|
9
|
+
|
|
10
|
+
Copyright (c) 2014 ecomfe
|
|
11
|
+
|
|
12
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
13
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
14
|
+
in the Software without restriction, including without limitation the rights
|
|
15
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
16
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
17
|
+
furnished to do so, subject to the following conditions:
|
|
18
|
+
|
|
19
|
+
The above copyright notice and this permission notice shall be included in all
|
|
20
|
+
copies or substantial portions of the Software.
|
|
21
|
+
|
|
22
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
23
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
24
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
25
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
26
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
27
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
28
|
+
SOFTWARE.
|
|
29
|
+
*/
|
|
30
|
+
declare const Module: (Module: any) => any;
|
|
31
|
+
export default Module;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DON'T depend on anything from the outside like `promiseTry`, as this module is part of a separate lazy-loaded chunk.
|
|
3
|
+
*
|
|
4
|
+
* Including anything from the main chunk would include the whole chunk by default.
|
|
5
|
+
* Even it it would be tree-shaken during build, it won't be tree-shaken in dev.
|
|
6
|
+
*
|
|
7
|
+
* In the future consider separating common utils into a separate shared chunk.
|
|
8
|
+
*/
|
|
9
|
+
declare const load: () => Promise<{
|
|
10
|
+
compress: (buffer: ArrayBuffer) => Uint8Array;
|
|
11
|
+
decompress: (buffer: ArrayBuffer) => Uint8Array;
|
|
12
|
+
}>;
|
|
13
|
+
declare const _default: () => ReturnType<typeof load>;
|
|
14
|
+
export default _default;
|