tldraw 3.16.0-canary.ffdf566dd0a8 → 3.16.0-internal.71f83a8a571b
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-cjs/index.d.ts +348 -113
- package/dist-cjs/index.js +40 -14
- package/dist-cjs/index.js.map +2 -2
- package/dist-cjs/lib/Tldraw.js +12 -2
- package/dist-cjs/lib/Tldraw.js.map +2 -2
- package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
- package/dist-cjs/lib/canvas/TldrawScribble.js.map +2 -2
- package/dist-cjs/lib/defaultExternalContentHandlers.js +5 -4
- package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
- package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +3 -3
- package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/arrow/arrowLabel.js +6 -0
- package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +3 -3
- package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
- package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
- package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
- package/dist-cjs/lib/shapes/arrow/elbow/elbowArrowSnapLines.js.map +1 -1
- package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js +4 -4
- package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +3 -3
- package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
- package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/FrameShapeTool.js.map +1 -1
- package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +20 -13
- package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
- package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
- package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +2 -2
- package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +2 -2
- package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +3 -2
- package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +2 -1
- package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
- package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +5 -1
- package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +6 -3
- package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/line/LineShapeUtil.js +5 -1
- package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +6 -5
- package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/HyperlinkButton.js +4 -4
- package/dist-cjs/lib/shapes/shared/HyperlinkButton.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +1 -3
- package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/RichTextLabel.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/ShapeFill.js +4 -4
- package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/crop.js +1 -0
- package/dist-cjs/lib/shapes/shared/crop.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/freehand/svg.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/useEditablePlainText.js +3 -4
- package/dist-cjs/lib/shapes/shared/useEditablePlainText.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/useEditableRichText.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js +0 -2
- package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js.map +2 -2
- package/dist-cjs/lib/shapes/text/PlainTextArea.js +2 -2
- package/dist-cjs/lib/shapes/text/PlainTextArea.js.map +2 -2
- package/dist-cjs/lib/shapes/text/RichTextArea.js +3 -3
- package/dist-cjs/lib/shapes/text/RichTextArea.js.map +2 -2
- package/dist-cjs/lib/shapes/text/TextShapeUtil.js +2 -2
- package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
- package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
- package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
- package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +25 -1
- package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
- package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +12 -0
- package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +1 -1
- package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
- package/dist-cjs/lib/ui/TldrawUi.js +27 -12
- package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
- package/dist-cjs/lib/ui/assetUrls.js +13 -10
- package/dist-cjs/lib/ui/assetUrls.js.map +2 -2
- package/dist-cjs/lib/ui/components/A11y.js +1 -1
- package/dist-cjs/lib/ui/components/A11y.js.map +2 -2
- package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +12 -3
- package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
- package/dist-cjs/lib/ui/components/{FollowingIndicator.js → DefaultFollowingIndicator.js} +6 -6
- package/dist-cjs/lib/ui/components/DefaultFollowingIndicator.js.map +7 -0
- package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +3 -2
- package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
- package/dist-cjs/lib/ui/components/EditLinkDialog.js +11 -1
- package/dist-cjs/lib/ui/components/EditLinkDialog.js.map +2 -2
- package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +6 -6
- package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +1 -1
- package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
- package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
- package/dist-cjs/lib/ui/components/MobileStylePanel.js +5 -3
- package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
- package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +1 -1
- package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
- package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +3 -2
- package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
- package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +3 -2
- package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
- package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
- package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
- package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +9 -4
- package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
- package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +255 -316
- package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
- package/dist-cjs/lib/ui/components/{primitives/TldrawUiButtonPicker.js → StylePanel/StylePanelButtonPicker.js} +52 -56
- package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +7 -0
- package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js +68 -0
- package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js.map +7 -0
- package/dist-cjs/lib/ui/components/StylePanel/{DoubleDropdownPicker.js → StylePanelDoubleDropdownPicker.js} +26 -25
- package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js.map +7 -0
- package/dist-cjs/lib/ui/components/StylePanel/{DropdownPicker.js → StylePanelDropdownPicker.js} +47 -43
- package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js.map +7 -0
- package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js +28 -0
- package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js.map +7 -0
- package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js +3 -2
- package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
- package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +39 -10
- package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
- package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -21
- package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
- package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js +15 -3
- package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js.map +2 -2
- package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js +3 -3
- package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js.map +2 -2
- package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +189 -80
- package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
- package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +2 -2
- package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +11 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +3 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
- package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +18 -5
- package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +21 -4
- package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +185 -158
- package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/layout.js +76 -0
- package/dist-cjs/lib/ui/components/primitives/layout.js.map +7 -0
- package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
- package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +154 -20
- package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
- package/dist-cjs/lib/ui/context/actions.js +23 -10
- package/dist-cjs/lib/ui/context/actions.js.map +2 -2
- package/dist-cjs/lib/ui/context/components.js +2 -0
- package/dist-cjs/lib/ui/context/components.js.map +2 -2
- package/dist-cjs/lib/ui/context/events.js.map +2 -2
- package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +1 -1
- package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
- package/dist-cjs/lib/ui/hooks/useExportAs.js +3 -2
- package/dist-cjs/lib/ui/hooks/useExportAs.js.map +2 -2
- package/dist-cjs/lib/ui/hooks/useTools.js +94 -9
- package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
- package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +4 -2
- package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
- package/dist-cjs/lib/ui/kbd-utils.js +9 -3
- package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
- package/dist-cjs/lib/ui/version.js +3 -3
- package/dist-cjs/lib/ui/version.js.map +1 -1
- package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js.map +1 -1
- package/dist-cjs/lib/utils/export/copyAs.js +1 -2
- package/dist-cjs/lib/utils/export/copyAs.js.map +2 -2
- package/dist-cjs/lib/utils/export/export.js +0 -20
- package/dist-cjs/lib/utils/export/export.js.map +2 -2
- package/dist-cjs/lib/utils/export/exportAs.js +1 -2
- package/dist-cjs/lib/utils/export/exportAs.js.map +2 -2
- package/dist-esm/index.d.mts +348 -113
- package/dist-esm/index.mjs +75 -29
- package/dist-esm/index.mjs.map +2 -2
- package/dist-esm/lib/Tldraw.mjs +14 -4
- package/dist-esm/lib/Tldraw.mjs.map +2 -2
- package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
- package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
- package/dist-esm/lib/defaultExternalContentHandlers.mjs +5 -4
- package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
- package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +4 -3
- package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +6 -0
- package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +3 -3
- package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
- package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
- package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
- package/dist-esm/lib/shapes/arrow/elbow/elbowArrowSnapLines.mjs.map +1 -1
- package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs +5 -5
- package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +4 -3
- package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
- package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs.map +1 -1
- package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +21 -13
- package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
- package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
- package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +3 -3
- package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +2 -2
- package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +4 -2
- package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +2 -1
- package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
- package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +6 -1
- package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +6 -3
- package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +6 -1
- package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +7 -5
- package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs +5 -5
- package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +1 -3
- package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/RichTextLabel.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/ShapeFill.mjs +5 -4
- package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/crop.mjs +1 -0
- package/dist-esm/lib/shapes/shared/crop.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs +4 -5
- package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/useEditableRichText.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs +0 -2
- package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs.map +2 -2
- package/dist-esm/lib/shapes/text/PlainTextArea.mjs +3 -3
- package/dist-esm/lib/shapes/text/PlainTextArea.mjs.map +2 -2
- package/dist-esm/lib/shapes/text/RichTextArea.mjs +3 -4
- package/dist-esm/lib/shapes/text/RichTextArea.mjs.map +2 -2
- package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +3 -2
- package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
- package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
- package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
- package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +26 -1
- package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
- package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +13 -0
- package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
- package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +1 -1
- package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
- package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
- package/dist-esm/lib/ui/TldrawUi.mjs +29 -14
- package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
- package/dist-esm/lib/ui/assetUrls.mjs +13 -10
- package/dist-esm/lib/ui/assetUrls.mjs.map +2 -2
- package/dist-esm/lib/ui/components/A11y.mjs +2 -2
- package/dist-esm/lib/ui/components/A11y.mjs.map +2 -2
- package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +12 -3
- package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
- package/dist-esm/lib/ui/components/{FollowingIndicator.mjs → DefaultFollowingIndicator.mjs} +3 -3
- package/dist-esm/lib/ui/components/DefaultFollowingIndicator.mjs.map +7 -0
- package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +3 -2
- package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
- package/dist-esm/lib/ui/components/EditLinkDialog.mjs +11 -1
- package/dist-esm/lib/ui/components/EditLinkDialog.mjs.map +2 -2
- package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +6 -6
- package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +1 -1
- package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
- package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
- package/dist-esm/lib/ui/components/MobileStylePanel.mjs +6 -3
- package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
- package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +1 -1
- package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
- package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +4 -3
- package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
- package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +3 -2
- package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
- package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
- package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
- package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +14 -5
- package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
- package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +257 -320
- package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
- package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +126 -0
- package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +7 -0
- package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs +48 -0
- package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs.map +7 -0
- package/dist-esm/lib/ui/components/StylePanel/{DoubleDropdownPicker.mjs → StylePanelDoubleDropdownPicker.mjs} +23 -22
- package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs.map +7 -0
- package/dist-esm/lib/ui/components/StylePanel/{DropdownPicker.mjs → StylePanelDropdownPicker.mjs} +44 -40
- package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs.map +7 -0
- package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs +8 -0
- package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs.map +7 -0
- package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs +3 -2
- package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
- package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +39 -10
- package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
- package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -21
- package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
- package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs +15 -3
- package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs.map +2 -2
- package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs +3 -3
- package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs.map +2 -2
- package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -81
- package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
- package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +2 -2
- package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +12 -3
- package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs +3 -3
- package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +3 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +18 -5
- package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +21 -4
- package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +195 -160
- package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/layout.mjs +46 -0
- package/dist-esm/lib/ui/components/primitives/layout.mjs.map +7 -0
- package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
- package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +162 -22
- package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
- package/dist-esm/lib/ui/context/actions.mjs +23 -10
- package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
- package/dist-esm/lib/ui/context/components.mjs +2 -0
- package/dist-esm/lib/ui/context/components.mjs.map +2 -2
- package/dist-esm/lib/ui/context/events.mjs.map +2 -2
- package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +2 -2
- package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
- package/dist-esm/lib/ui/hooks/useExportAs.mjs +3 -2
- package/dist-esm/lib/ui/hooks/useExportAs.mjs.map +2 -2
- package/dist-esm/lib/ui/hooks/useTools.mjs +102 -10
- package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
- package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +4 -2
- package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
- package/dist-esm/lib/ui/kbd-utils.mjs +9 -3
- package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
- package/dist-esm/lib/ui/version.mjs +3 -3
- package/dist-esm/lib/ui/version.mjs.map +1 -1
- package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs.map +1 -1
- package/dist-esm/lib/utils/export/copyAs.mjs +1 -2
- package/dist-esm/lib/utils/export/copyAs.mjs.map +2 -2
- package/dist-esm/lib/utils/export/export.mjs +0 -20
- package/dist-esm/lib/utils/export/export.mjs.map +2 -2
- package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
- package/dist-esm/lib/utils/export/exportAs.mjs.map +2 -2
- package/package.json +11 -34
- package/src/index.ts +56 -22
- package/src/lib/Tldraw.tsx +15 -2
- package/src/lib/canvas/TldrawScribble.tsx +1 -1
- package/src/lib/defaultExternalContentHandlers.ts +12 -4
- package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +2 -1
- package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +6 -5
- package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +48 -6
- package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +4 -3
- package/src/lib/shapes/arrow/arrowLabel.ts +8 -0
- package/src/lib/shapes/arrow/arrowTargetState.ts +1 -1
- package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
- package/src/lib/shapes/arrow/elbow/elbowArrowSnapLines.tsx +2 -2
- package/src/lib/shapes/bookmark/BookmarkShapeUtil.tsx +5 -5
- package/src/lib/shapes/draw/DrawShapeTool.test.ts +0 -5
- package/src/lib/shapes/draw/DrawShapeUtil.tsx +4 -3
- package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
- package/src/lib/shapes/frame/FrameShapeTool.ts +1 -1
- package/src/lib/shapes/frame/FrameShapeUtil.tsx +30 -14
- package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
- package/src/lib/shapes/frame/components/FrameLabelInput.tsx +3 -3
- package/src/lib/shapes/geo/GeoShapeUtil.tsx +4 -2
- package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
- package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +7 -1
- package/src/lib/shapes/image/ImageShapeUtil.tsx +6 -3
- package/src/lib/shapes/line/LineShapeUtil.test.tsx +8 -7
- package/src/lib/shapes/line/LineShapeUtil.tsx +6 -1
- package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
- package/src/lib/shapes/note/NoteShapeTool.test.ts +2 -1
- package/src/lib/shapes/note/NoteShapeUtil.tsx +10 -4
- package/src/lib/shapes/shared/HyperlinkButton.tsx +5 -5
- package/src/lib/shapes/shared/PlainTextLabel.tsx +2 -7
- package/src/lib/shapes/shared/RichTextLabel.tsx +2 -1
- package/src/lib/shapes/shared/ShapeFill.tsx +5 -4
- package/src/lib/shapes/shared/crop.ts +1 -0
- package/src/lib/shapes/shared/freehand/svg.ts +2 -0
- package/src/lib/shapes/shared/useEditablePlainText.ts +12 -12
- package/src/lib/shapes/shared/useEditableRichText.ts +7 -3
- package/src/lib/shapes/shared/useImageOrVideoAsset.ts +0 -7
- package/src/lib/shapes/text/PlainTextArea.tsx +3 -3
- package/src/lib/shapes/text/RichTextArea.tsx +3 -4
- package/src/lib/shapes/text/TextShapeTool.test.ts +6 -5
- package/src/lib/shapes/text/TextShapeUtil.tsx +3 -2
- package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
- package/src/lib/tools/EraserTool/childStates/Erasing.ts +34 -1
- package/src/lib/tools/EraserTool/childStates/Pointing.ts +20 -0
- package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +1 -1
- package/src/lib/tools/SelectTool/childStates/Translating.ts +0 -1
- package/src/lib/ui/TldrawUi.tsx +33 -12
- package/src/lib/ui/assetUrls.ts +13 -10
- package/src/lib/ui/components/A11y.tsx +2 -2
- package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +15 -3
- package/src/lib/ui/components/{FollowingIndicator.tsx → DefaultFollowingIndicator.tsx} +2 -1
- package/src/lib/ui/components/DefaultMenuPanel.tsx +4 -3
- package/src/lib/ui/components/EditLinkDialog.tsx +16 -6
- package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +6 -6
- package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
- package/src/lib/ui/components/MobileStylePanel.tsx +9 -6
- package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +1 -1
- package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +5 -4
- package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +4 -3
- package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
- package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +27 -13
- package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +260 -385
- package/src/lib/ui/components/{primitives/TldrawUiButtonPicker.tsx → StylePanel/StylePanelButtonPicker.tsx} +66 -50
- package/src/lib/ui/components/StylePanel/StylePanelContext.tsx +63 -0
- package/src/lib/ui/components/StylePanel/{DoubleDropdownPicker.tsx → StylePanelDoubleDropdownPicker.tsx} +31 -22
- package/src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx +119 -0
- package/src/lib/ui/components/StylePanel/StylePanelSubheading.tsx +9 -0
- package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +5 -4
- package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +33 -16
- package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -23
- package/src/lib/ui/components/Toolbar/DefaultVideoToolbarContent.tsx +12 -4
- package/src/lib/ui/components/Toolbar/LinkEditor.tsx +5 -5
- package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +212 -61
- package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +2 -2
- package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +8 -3
- package/src/lib/ui/components/primitives/TldrawUiInput.tsx +3 -3
- package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +4 -2
- package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +52 -32
- package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +35 -9
- package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +232 -180
- package/src/lib/ui/components/primitives/layout.tsx +107 -0
- package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
- package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
- package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +221 -19
- package/src/lib/ui/context/actions.tsx +23 -10
- package/src/lib/ui/context/components.tsx +3 -0
- package/src/lib/ui/context/events.tsx +2 -1
- package/src/lib/ui/hooks/useClipboardEvents.ts +2 -2
- package/src/lib/ui/hooks/useExportAs.ts +3 -2
- package/src/lib/ui/hooks/useTools.tsx +140 -10
- package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +2 -0
- package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +4 -2
- package/src/lib/ui/kbd-utils.ts +10 -3
- package/src/lib/ui/version.ts +3 -3
- package/src/lib/ui.css +381 -306
- package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +5 -5
- package/src/lib/utils/excalidraw/putExcalidrawContent.ts +6 -6
- package/src/lib/utils/export/copyAs.ts +1 -24
- package/src/lib/utils/export/export.ts +0 -36
- package/src/lib/utils/export/exportAs.ts +1 -32
- package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +4 -4
- package/src/test/A11y.test.tsx +3 -2
- package/src/test/ClickManager.test.ts +7 -6
- package/src/test/Editor.test.tsx +55 -27
- package/src/test/EraserTool.test.ts +184 -13
- package/src/test/HandTool.test.ts +10 -9
- package/src/test/HighlightShape.test.ts +2 -1
- package/src/test/SelectTool.test.ts +3 -2
- package/src/test/TLUserPreferences.test.ts +4 -3
- package/src/test/TestEditor.ts +13 -15
- package/src/test/TldrawEditor.test.tsx +26 -19
- package/src/test/ZoomTool.test.ts +7 -6
- package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
- package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
- package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
- package/src/test/arrows-megabus.test.tsx +5 -4
- package/src/test/bindings.test.tsx +24 -37
- package/src/test/bookmark-shapes.test.ts +1 -8
- package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +23 -7
- package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
- package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
- package/src/test/commands/alignShapes.test.tsx +25 -24
- package/src/test/commands/animationSpeed.test.ts +2 -1
- package/src/test/commands/centerOnPoint.test.ts +3 -2
- package/src/test/commands/clipboard.test.ts +3 -2
- package/src/test/commands/createShapes.test.ts +2 -1
- package/src/test/commands/deleteShapes.test.ts +2 -1
- package/src/test/commands/distributeShapes.test.tsx +11 -10
- package/src/test/commands/getSvgString.test.ts +2 -1
- package/src/test/commands/packShapes.test.ts +5 -4
- package/src/test/commands/putContent.test.ts +1 -0
- package/src/test/commands/resizeShape.test.ts +2 -1
- package/src/test/commands/rotateShapes.test.ts +7 -6
- package/src/test/commands/setCamera.test.ts +4 -3
- package/src/test/commands/setCurrentPage.test.ts +3 -2
- package/src/test/commands/stackShapes.test.ts +11 -10
- package/src/test/commands/stretch.test.tsx +13 -12
- package/src/test/commands/updateShapes.test.ts +9 -5
- package/src/test/createDeepLink.test.tsx +2 -1
- package/src/test/cropping.test.ts +3 -2
- package/src/test/custom-clipping.test.ts +442 -0
- package/src/test/customSnapping.test.tsx +55 -41
- package/src/test/drawing.test.ts +2 -1
- package/src/test/flipShapes.test.ts +4 -3
- package/src/test/frames.test.ts +25 -24
- package/src/test/getCulledShapes.test.tsx +80 -4
- package/src/test/groups.test.tsx +5 -3
- package/src/test/handleDeepLink.test.tsx +2 -1
- package/src/test/maxShapes.test.ts +3 -2
- package/src/test/modifiers.test.ts +5 -4
- package/src/test/navigation.test.ts +12 -11
- package/src/test/panning.test.ts +2 -1
- package/src/test/perf/perf.test.ts +2 -1
- package/src/test/registerDeepLinkListener.test.tsx +10 -9
- package/src/test/resizing.test.ts +39 -38
- package/src/test/select.test.tsx +4 -3
- package/src/test/selection-omnibus.test.ts +11 -10
- package/src/test/shapeutils.test.ts +4 -3
- package/src/test/translating.test.ts +11 -10
- package/tldraw.css +689 -598
- package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +0 -7
- package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +0 -7
- package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +0 -7
- package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +0 -7
- package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +0 -7
- package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +0 -7
- package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +0 -7
- package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +0 -115
- package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +0 -7
- package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +0 -109
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`creating new shapes pencil lines will reisze the group appropriately if the new shape changes the group bounds
|
|
3
|
+
exports[`creating new shapes > pencil > lines > will reisze the group appropriately if the new shape changes the group bounds > box shape after second resize 1`] = `
|
|
4
4
|
{
|
|
5
5
|
"h": 40,
|
|
6
6
|
"w": 40,
|
|
@@ -9,7 +9,7 @@ exports[`creating new shapes pencil lines will reisze the group appropriately if
|
|
|
9
9
|
}
|
|
10
10
|
`;
|
|
11
11
|
|
|
12
|
-
exports[`creating new shapes pencil lines will reisze the group appropriately if the new shape changes the group bounds
|
|
12
|
+
exports[`creating new shapes > pencil > lines > will reisze the group appropriately if the new shape changes the group bounds > group shape after second resize 1`] = `
|
|
13
13
|
{
|
|
14
14
|
"h": 120,
|
|
15
15
|
"w": 120,
|
|
@@ -18,7 +18,7 @@ exports[`creating new shapes pencil lines will reisze the group appropriately if
|
|
|
18
18
|
}
|
|
19
19
|
`;
|
|
20
20
|
|
|
21
|
-
exports[`creating new shapes pencil lines will reisze the group appropriately if the new shape changes the group bounds
|
|
21
|
+
exports[`creating new shapes > pencil > lines > will reisze the group appropriately if the new shape changes the group bounds > group with line shape 1`] = `
|
|
22
22
|
Box {
|
|
23
23
|
"h": 110,
|
|
24
24
|
"w": 110,
|
|
@@ -27,7 +27,7 @@ Box {
|
|
|
27
27
|
}
|
|
28
28
|
`;
|
|
29
29
|
|
|
30
|
-
exports[`creating new shapes pencil lines works if the shape drawing begins outside of the current group bounds
|
|
30
|
+
exports[`creating new shapes > pencil > lines > works if the shape drawing begins outside of the current group bounds > box shape after resize 1`] = `
|
|
31
31
|
{
|
|
32
32
|
"h": 50,
|
|
33
33
|
"w": 50,
|
|
@@ -36,7 +36,7 @@ exports[`creating new shapes pencil lines works if the shape drawing begins outs
|
|
|
36
36
|
}
|
|
37
37
|
`;
|
|
38
38
|
|
|
39
|
-
exports[`creating new shapes pencil lines works if the shape drawing begins outside of the current group bounds
|
|
39
|
+
exports[`creating new shapes > pencil > lines > works if the shape drawing begins outside of the current group bounds > group with line 1`] = `
|
|
40
40
|
{
|
|
41
41
|
"h": 200,
|
|
42
42
|
"w": 200,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`When resizing a shape with children Resizes a rotated draw shape
|
|
3
|
+
exports[`When resizing a shape with children > Resizes a rotated draw shape > draw shape after rotating 1`] = `
|
|
4
4
|
{
|
|
5
5
|
"id": "shape:lineA",
|
|
6
6
|
"index": "a3",
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { TLArrowShape, TLShapeId, Vec, createShapeId } from '@tldraw/editor'
|
|
2
|
+
import { vi } from 'vitest'
|
|
2
3
|
import { getArrowBindings } from '../lib/shapes/arrow/shared'
|
|
3
4
|
import { TestEditor } from './TestEditor'
|
|
4
5
|
import { TL } from './test-jsx'
|
|
@@ -208,7 +209,7 @@ describe('When binding an arrow to a shape', () => {
|
|
|
208
209
|
|
|
209
210
|
editor.keyUp('Control')
|
|
210
211
|
expect(bindings().end).toBeUndefined() // there's a short delay here, it should still be a point
|
|
211
|
-
|
|
212
|
+
vi.advanceTimersByTime(1000) // once the timer runs out...
|
|
212
213
|
expect(bindings().end).toBeDefined()
|
|
213
214
|
|
|
214
215
|
editor.keyDown('Control') // no delay when pressing control again though
|
|
@@ -216,7 +217,7 @@ describe('When binding an arrow to a shape', () => {
|
|
|
216
217
|
|
|
217
218
|
editor.keyUp('Control')
|
|
218
219
|
editor.pointerUp()
|
|
219
|
-
|
|
220
|
+
vi.advanceTimersByTime(1000) // once the timer runs out...
|
|
220
221
|
expect(bindings().end).toBeUndefined() // still a point because interaction ended before timer ended
|
|
221
222
|
})
|
|
222
223
|
|
|
@@ -237,7 +238,7 @@ describe('When binding an arrow to a shape', () => {
|
|
|
237
238
|
// Releasing ctrl should restore binding (after timer)
|
|
238
239
|
editor.keyUp('Control')
|
|
239
240
|
expect(bindings().end).toBeUndefined() // Still no binding immediately
|
|
240
|
-
|
|
241
|
+
vi.advanceTimersByTime(1000)
|
|
241
242
|
expect(bindings().end).toBeDefined()
|
|
242
243
|
})
|
|
243
244
|
})
|
|
@@ -409,7 +410,7 @@ describe('When starting an arrow inside of multiple shapes', () => {
|
|
|
409
410
|
editor.pointerDown(20, 20) // upper left
|
|
410
411
|
expect(editor.getCurrentPageShapes().length).toBe(1)
|
|
411
412
|
expect(arrow()).toBe(null)
|
|
412
|
-
|
|
413
|
+
vi.advanceTimersByTime(1000)
|
|
413
414
|
editor.pointerMove(25, 20)
|
|
414
415
|
expect(editor.getCurrentPageShapes().length).toBe(2)
|
|
415
416
|
expect(arrow()).toMatchObject({ x: 20, y: 20 })
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
createBindingId,
|
|
12
12
|
createShapeId,
|
|
13
13
|
} from '@tldraw/editor'
|
|
14
|
+
import { vi } from 'vitest'
|
|
14
15
|
import { TestEditor } from './TestEditor'
|
|
15
16
|
import { TL } from './test-jsx'
|
|
16
17
|
|
|
@@ -23,37 +24,19 @@ const ids = {
|
|
|
23
24
|
box4: createShapeId('box4'),
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
const mockOnOperationComplete =
|
|
27
|
-
const mockOnBeforeDelete =
|
|
28
|
-
const mockOnAfterDelete =
|
|
29
|
-
const mockOnBeforeFromShapeDelete =
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
[BindingOnShapeIsolateOptions<TLUnknownBinding>]
|
|
40
|
-
>
|
|
41
|
-
const mockOnBeforeToShapeIsolate = jest.fn() as jest.Mock<
|
|
42
|
-
void,
|
|
43
|
-
[BindingOnShapeIsolateOptions<TLUnknownBinding>]
|
|
44
|
-
>
|
|
45
|
-
const mockOnBeforeCreate = jest.fn() as jest.Mock<void, [BindingOnCreateOptions<TLUnknownBinding>]>
|
|
46
|
-
const mockOnAfterCreate = jest.fn() as jest.Mock<void, [BindingOnCreateOptions<TLUnknownBinding>]>
|
|
47
|
-
const mockOnBeforeChange = jest.fn() as jest.Mock<void, [BindingOnChangeOptions<TLUnknownBinding>]>
|
|
48
|
-
const mockOnAfterChange = jest.fn() as jest.Mock<void, [BindingOnChangeOptions<TLUnknownBinding>]>
|
|
49
|
-
const mockOnAfterChangeFromShape = jest.fn() as jest.Mock<
|
|
50
|
-
void,
|
|
51
|
-
[BindingOnShapeChangeOptions<TLUnknownBinding>]
|
|
52
|
-
>
|
|
53
|
-
const mockOnAfterChangeToShape = jest.fn() as jest.Mock<
|
|
54
|
-
void,
|
|
55
|
-
[BindingOnShapeChangeOptions<TLUnknownBinding>]
|
|
56
|
-
>
|
|
27
|
+
const mockOnOperationComplete = vi.fn()
|
|
28
|
+
const mockOnBeforeDelete = vi.fn()
|
|
29
|
+
const mockOnAfterDelete = vi.fn()
|
|
30
|
+
const mockOnBeforeFromShapeDelete = vi.fn()
|
|
31
|
+
const mockOnBeforeToShapeDelete = vi.fn()
|
|
32
|
+
const mockOnBeforeFromShapeIsolate = vi.fn()
|
|
33
|
+
const mockOnBeforeToShapeIsolate = vi.fn()
|
|
34
|
+
const mockOnBeforeCreate = vi.fn()
|
|
35
|
+
const mockOnAfterCreate = vi.fn()
|
|
36
|
+
const mockOnBeforeChange = vi.fn()
|
|
37
|
+
const mockOnAfterChange = vi.fn()
|
|
38
|
+
const mockOnAfterChangeFromShape = vi.fn()
|
|
39
|
+
const mockOnAfterChangeToShape = vi.fn()
|
|
57
40
|
|
|
58
41
|
const calls: string[] = []
|
|
59
42
|
|
|
@@ -273,9 +256,11 @@ test('copying the to shape on its own does trigger the unbind operation', () =>
|
|
|
273
256
|
})
|
|
274
257
|
|
|
275
258
|
test('cascading deletes in beforeFromShapeDelete are handled correctly', () => {
|
|
276
|
-
mockOnBeforeFromShapeDelete.mockImplementation(
|
|
277
|
-
|
|
278
|
-
|
|
259
|
+
mockOnBeforeFromShapeDelete.mockImplementation(
|
|
260
|
+
(options: BindingOnShapeDeleteOptions<TLUnknownBinding>) => {
|
|
261
|
+
editor.deleteShape(options.binding.toId)
|
|
262
|
+
}
|
|
263
|
+
)
|
|
279
264
|
|
|
280
265
|
bindShapes(ids.box1, ids.box2)
|
|
281
266
|
bindShapes(ids.box2, ids.box3)
|
|
@@ -316,9 +301,11 @@ test('cascading deletes in beforeFromShapeDelete are handled correctly', () => {
|
|
|
316
301
|
})
|
|
317
302
|
|
|
318
303
|
test('cascading deletes in beforeToShapeDelete are handled correctly', () => {
|
|
319
|
-
mockOnBeforeToShapeDelete.mockImplementation(
|
|
320
|
-
|
|
321
|
-
|
|
304
|
+
mockOnBeforeToShapeDelete.mockImplementation(
|
|
305
|
+
(options: BindingOnShapeDeleteOptions<TLUnknownBinding>) => {
|
|
306
|
+
editor.deleteShape(options.binding.fromId)
|
|
307
|
+
}
|
|
308
|
+
)
|
|
322
309
|
|
|
323
310
|
bindShapes(ids.box1, ids.box2)
|
|
324
311
|
bindShapes(ids.box2, ids.box3)
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { TLBookmarkShape, createShapeId } from '@tldraw/editor'
|
|
2
|
-
import {
|
|
3
|
-
BookmarkShapeUtil,
|
|
4
|
-
getHumanReadableAddress,
|
|
5
|
-
} from '../lib/shapes/bookmark/BookmarkShapeUtil'
|
|
2
|
+
import { getHumanReadableAddress } from '../lib/shapes/bookmark/BookmarkShapeUtil'
|
|
6
3
|
import { TestEditor } from './TestEditor'
|
|
7
4
|
|
|
8
5
|
let editor: TestEditor
|
|
@@ -14,10 +11,6 @@ afterEach(() => {
|
|
|
14
11
|
editor?.dispose()
|
|
15
12
|
})
|
|
16
13
|
|
|
17
|
-
describe(BookmarkShapeUtil, () => {
|
|
18
|
-
return
|
|
19
|
-
})
|
|
20
|
-
|
|
21
14
|
describe('The URL formatter', () => {
|
|
22
15
|
it('Formats URLs as human-readable', () => {
|
|
23
16
|
const ids = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`Matches a snapshot
|
|
3
|
+
exports[`Matches a snapshot > Basic SVG 1`] = `
|
|
4
4
|
<wrapper>
|
|
5
5
|
<svg
|
|
6
6
|
class="tl-container tl-theme__force-sRGB tl-theme__light"
|
|
@@ -64,6 +64,13 @@ exports[`Matches a snapshot: Basic SVG 1`] = `
|
|
|
64
64
|
y="0"
|
|
65
65
|
/>
|
|
66
66
|
</pattern>
|
|
67
|
+
<style>
|
|
68
|
+
@font-face {
|
|
69
|
+
font-family: "tldraw_draw";
|
|
70
|
+
font-weight: normal;
|
|
71
|
+
src: url("data:font/woff2;base64,") format(woff2);
|
|
72
|
+
}
|
|
73
|
+
</style>
|
|
67
74
|
</defs>
|
|
68
75
|
<g
|
|
69
76
|
opacity="1"
|
|
@@ -83,14 +90,15 @@ exports[`Matches a snapshot: Basic SVG 1`] = `
|
|
|
83
90
|
y="0"
|
|
84
91
|
>
|
|
85
92
|
<div
|
|
86
|
-
style="display:
|
|
93
|
+
style="display: block; font-family: serif; height: 0px; justify-content: center; align-items: center; padding: 0px; position: static; width: 0px; margin: 0px; border: 0px; font-size: 16px; line-height: normal; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0);"
|
|
87
94
|
xmlns="http://www.w3.org/1999/xhtml"
|
|
88
95
|
>
|
|
89
96
|
<div
|
|
90
|
-
style="font-size: 22px; color: rgb(
|
|
97
|
+
style="font-size: 22px; color: rgb(0, 0, 0); line-height: 1.35; text-align: center; width: 0px; word-wrap: break-word; overflow-wrap: break-word; white-space: pre-wrap; text-shadow: var(--tl-text-outline); position: static; height: 0px; margin: 0px; padding: 0px; border: 0px;"
|
|
91
98
|
>
|
|
92
99
|
<p
|
|
93
100
|
dir="auto"
|
|
101
|
+
style="position: static; width: 0px; height: 0px; margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);"
|
|
94
102
|
>
|
|
95
103
|
Hello world
|
|
96
104
|
</p>
|
|
@@ -132,7 +140,7 @@ exports[`Matches a snapshot: Basic SVG 1`] = `
|
|
|
132
140
|
</wrapper>
|
|
133
141
|
`;
|
|
134
142
|
|
|
135
|
-
exports[`Returns all shapes when no ids are provided
|
|
143
|
+
exports[`Returns all shapes when no ids are provided > All shapes 1`] = `
|
|
136
144
|
<wrapper>
|
|
137
145
|
<svg
|
|
138
146
|
class="tl-container tl-theme__force-sRGB tl-theme__light"
|
|
@@ -196,6 +204,13 @@ exports[`Returns all shapes when no ids are provided: All shapes 1`] = `
|
|
|
196
204
|
y="0"
|
|
197
205
|
/>
|
|
198
206
|
</pattern>
|
|
207
|
+
<style>
|
|
208
|
+
@font-face {
|
|
209
|
+
font-family: "tldraw_draw";
|
|
210
|
+
font-weight: normal;
|
|
211
|
+
src: url("data:font/woff2;base64,") format(woff2);
|
|
212
|
+
}
|
|
213
|
+
</style>
|
|
199
214
|
</defs>
|
|
200
215
|
<g
|
|
201
216
|
opacity="1"
|
|
@@ -215,14 +230,15 @@ exports[`Returns all shapes when no ids are provided: All shapes 1`] = `
|
|
|
215
230
|
y="0"
|
|
216
231
|
>
|
|
217
232
|
<div
|
|
218
|
-
style="display:
|
|
233
|
+
style="display: block; font-family: serif; height: 0px; justify-content: center; align-items: center; padding: 0px; position: static; width: 0px; margin: 0px; border: 0px; font-size: 16px; line-height: normal; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0);"
|
|
219
234
|
xmlns="http://www.w3.org/1999/xhtml"
|
|
220
235
|
>
|
|
221
236
|
<div
|
|
222
|
-
style="font-size: 22px; color: rgb(
|
|
237
|
+
style="font-size: 22px; color: rgb(0, 0, 0); line-height: 1.35; text-align: center; width: 0px; word-wrap: break-word; overflow-wrap: break-word; white-space: pre-wrap; text-shadow: var(--tl-text-outline); position: static; height: 0px; margin: 0px; padding: 0px; border: 0px;"
|
|
223
238
|
>
|
|
224
239
|
<p
|
|
225
240
|
dir="auto"
|
|
241
|
+
style="position: static; width: 0px; height: 0px; margin: 0px; padding: 0px; border: 0px; color: rgb(0, 0, 0);"
|
|
226
242
|
>
|
|
227
243
|
Hello world
|
|
228
244
|
</p>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
-
exports[`editor.packShapes packs rotated shapes
|
|
3
|
+
exports[`editor.packShapes > packs rotated shapes > packed shapes 1`] = `
|
|
4
4
|
[
|
|
5
5
|
{
|
|
6
6
|
"id": "shape:boxA",
|
|
@@ -116,7 +116,7 @@ exports[`editor.packShapes packs rotated shapes: packed shapes 1`] = `
|
|
|
116
116
|
]
|
|
117
117
|
`;
|
|
118
118
|
|
|
119
|
-
exports[`editor.packShapes packs shapes
|
|
119
|
+
exports[`editor.packShapes > packs shapes > packed shapes 1`] = `
|
|
120
120
|
[
|
|
121
121
|
{
|
|
122
122
|
"id": "shape:boxA",
|
|
@@ -152,7 +152,7 @@ exports[`editor.packShapes packs shapes using the adjacent shape margin option:
|
|
|
152
152
|
"rotation": 0,
|
|
153
153
|
"type": "geo",
|
|
154
154
|
"typeName": "shape",
|
|
155
|
-
"x":
|
|
155
|
+
"x": 84,
|
|
156
156
|
"y": 200,
|
|
157
157
|
},
|
|
158
158
|
{
|
|
@@ -226,13 +226,13 @@ exports[`editor.packShapes packs shapes using the adjacent shape margin option:
|
|
|
226
226
|
"rotation": 0,
|
|
227
227
|
"type": "geo",
|
|
228
228
|
"typeName": "shape",
|
|
229
|
-
"x":
|
|
229
|
+
"x": 316,
|
|
230
230
|
"y": 200,
|
|
231
231
|
},
|
|
232
232
|
]
|
|
233
233
|
`;
|
|
234
234
|
|
|
235
|
-
exports[`editor.packShapes packs shapes
|
|
235
|
+
exports[`editor.packShapes > packs shapes using the adjacent shape margin option > packed shapes 1`] = `
|
|
236
236
|
[
|
|
237
237
|
{
|
|
238
238
|
"id": "shape:boxA",
|
|
@@ -268,7 +268,7 @@ exports[`editor.packShapes packs shapes: packed shapes 1`] = `
|
|
|
268
268
|
"rotation": 0,
|
|
269
269
|
"type": "geo",
|
|
270
270
|
"typeName": "shape",
|
|
271
|
-
"x":
|
|
271
|
+
"x": 99,
|
|
272
272
|
"y": 200,
|
|
273
273
|
},
|
|
274
274
|
{
|
|
@@ -342,7 +342,7 @@ exports[`editor.packShapes packs shapes: packed shapes 1`] = `
|
|
|
342
342
|
"rotation": 0,
|
|
343
343
|
"type": "geo",
|
|
344
344
|
"typeName": "shape",
|
|
345
|
-
"x":
|
|
345
|
+
"x": 301,
|
|
346
346
|
"y": 200,
|
|
347
347
|
},
|
|
348
348
|
]
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Box, PI, TLShapeId } from '@tldraw/editor'
|
|
2
|
+
import { vi } from 'vitest'
|
|
2
3
|
import { TestEditor } from '../TestEditor'
|
|
3
4
|
import { TL } from '../test-jsx'
|
|
4
5
|
|
|
5
6
|
let editor: TestEditor
|
|
6
7
|
let ids: Record<string, TLShapeId>
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
vi.useFakeTimers()
|
|
9
10
|
|
|
10
11
|
beforeEach(() => {
|
|
11
12
|
editor = new TestEditor()
|
|
@@ -22,10 +23,10 @@ describe('when less than two shapes are selected', () => {
|
|
|
22
23
|
it('does nothing', () => {
|
|
23
24
|
editor.setSelectedShapes([ids.boxB])
|
|
24
25
|
|
|
25
|
-
const fn =
|
|
26
|
+
const fn = vi.fn()
|
|
26
27
|
editor.store.listen(fn)
|
|
27
28
|
editor.alignShapes(editor.getSelectedShapeIds(), 'top')
|
|
28
|
-
|
|
29
|
+
vi.advanceTimersByTime(1000)
|
|
29
30
|
expect(fn).not.toHaveBeenCalled()
|
|
30
31
|
})
|
|
31
32
|
})
|
|
@@ -34,7 +35,7 @@ describe('when multiple shapes are selected', () => {
|
|
|
34
35
|
it('does, undoes and redoes command', () => {
|
|
35
36
|
editor.markHistoryStoppingPoint('align')
|
|
36
37
|
editor.alignShapes(editor.getSelectedShapeIds(), 'top')
|
|
37
|
-
|
|
38
|
+
vi.advanceTimersByTime(1000)
|
|
38
39
|
|
|
39
40
|
editor.expectShapeToMatch({ id: ids.boxB, y: 0 })
|
|
40
41
|
editor.undo()
|
|
@@ -45,7 +46,7 @@ describe('when multiple shapes are selected', () => {
|
|
|
45
46
|
|
|
46
47
|
it('aligns top', () => {
|
|
47
48
|
editor.alignShapes(editor.getSelectedShapeIds(), 'top')
|
|
48
|
-
|
|
49
|
+
vi.advanceTimersByTime(1000)
|
|
49
50
|
|
|
50
51
|
editor.expectShapeToMatch(
|
|
51
52
|
{ id: ids.boxA, y: 0 },
|
|
@@ -56,7 +57,7 @@ describe('when multiple shapes are selected', () => {
|
|
|
56
57
|
|
|
57
58
|
it('aligns right', () => {
|
|
58
59
|
editor.alignShapes(editor.getSelectedShapeIds(), 'right')
|
|
59
|
-
|
|
60
|
+
vi.advanceTimersByTime(1000)
|
|
60
61
|
|
|
61
62
|
editor.expectShapeToMatch(
|
|
62
63
|
{ id: ids.boxA, x: 400 },
|
|
@@ -67,7 +68,7 @@ describe('when multiple shapes are selected', () => {
|
|
|
67
68
|
|
|
68
69
|
it('aligns bottom', () => {
|
|
69
70
|
editor.alignShapes(editor.getSelectedShapeIds(), 'bottom')
|
|
70
|
-
|
|
71
|
+
vi.advanceTimersByTime(1000)
|
|
71
72
|
|
|
72
73
|
editor.expectShapeToMatch(
|
|
73
74
|
{ id: ids.boxA, y: 400 },
|
|
@@ -78,7 +79,7 @@ describe('when multiple shapes are selected', () => {
|
|
|
78
79
|
|
|
79
80
|
it('aligns left', () => {
|
|
80
81
|
editor.alignShapes(editor.getSelectedShapeIds(), 'left')
|
|
81
|
-
|
|
82
|
+
vi.advanceTimersByTime(1000)
|
|
82
83
|
|
|
83
84
|
editor.expectShapeToMatch(
|
|
84
85
|
{ id: ids.boxA, x: 0 },
|
|
@@ -89,7 +90,7 @@ describe('when multiple shapes are selected', () => {
|
|
|
89
90
|
|
|
90
91
|
it('aligns center horizontal', () => {
|
|
91
92
|
editor.alignShapes(editor.getSelectedShapeIds(), 'center-horizontal')
|
|
92
|
-
|
|
93
|
+
vi.advanceTimersByTime(1000)
|
|
93
94
|
|
|
94
95
|
editor.expectShapeToMatch(
|
|
95
96
|
{ id: ids.boxA, x: 200 },
|
|
@@ -100,7 +101,7 @@ describe('when multiple shapes are selected', () => {
|
|
|
100
101
|
|
|
101
102
|
it('aligns center vertical', () => {
|
|
102
103
|
editor.alignShapes(editor.getSelectedShapeIds(), 'center-vertical')
|
|
103
|
-
|
|
104
|
+
vi.advanceTimersByTime(1000)
|
|
104
105
|
|
|
105
106
|
editor.expectShapeToMatch(
|
|
106
107
|
{ id: ids.boxA, y: 200 },
|
|
@@ -129,9 +130,9 @@ describe('when multiple shapes are selected', () => {
|
|
|
129
130
|
])
|
|
130
131
|
|
|
131
132
|
editor.alignShapes(editor.getSelectedShapeIds(), 'center-vertical')
|
|
132
|
-
|
|
133
|
+
vi.advanceTimersByTime(1000)
|
|
133
134
|
editor.alignShapes(editor.getSelectedShapeIds(), 'center-horizontal')
|
|
134
|
-
|
|
135
|
+
vi.advanceTimersByTime(1000)
|
|
135
136
|
|
|
136
137
|
const commonBounds = Box.Common([
|
|
137
138
|
editor.getShapePageBounds(ids.boxA)!,
|
|
@@ -168,9 +169,9 @@ describe('when multiple shapes are selected', () => {
|
|
|
168
169
|
])
|
|
169
170
|
|
|
170
171
|
editor.alignShapes(editor.getSelectedShapeIds(), 'top')
|
|
171
|
-
|
|
172
|
+
vi.advanceTimersByTime(1000)
|
|
172
173
|
editor.alignShapes(editor.getSelectedShapeIds(), 'left')
|
|
173
|
-
|
|
174
|
+
vi.advanceTimersByTime(1000)
|
|
174
175
|
|
|
175
176
|
const commonBounds = Box.Common([
|
|
176
177
|
editor.getShapePageBounds(ids.boxA)!,
|
|
@@ -208,9 +209,9 @@ describe('when multiple shapes are selected', () => {
|
|
|
208
209
|
|
|
209
210
|
editor.setSelectedShapes([ids.boxA, ids.boxB, ids.boxC])
|
|
210
211
|
editor.alignShapes(editor.getSelectedShapeIds(), 'bottom')
|
|
211
|
-
|
|
212
|
+
vi.advanceTimersByTime(1000)
|
|
212
213
|
editor.alignShapes(editor.getSelectedShapeIds(), 'right')
|
|
213
|
-
|
|
214
|
+
vi.advanceTimersByTime(1000)
|
|
214
215
|
|
|
215
216
|
const commonBounds = Box.Common([
|
|
216
217
|
editor.getShapePageBounds(ids.boxA)!,
|
|
@@ -251,9 +252,9 @@ describe('When shapes are parented to other shapes...', () => {
|
|
|
251
252
|
])
|
|
252
253
|
|
|
253
254
|
editor.alignShapes(editor.getSelectedShapeIds(), 'top')
|
|
254
|
-
|
|
255
|
+
vi.advanceTimersByTime(1000)
|
|
255
256
|
editor.alignShapes(editor.getSelectedShapeIds(), 'left')
|
|
256
|
-
|
|
257
|
+
vi.advanceTimersByTime(1000)
|
|
257
258
|
|
|
258
259
|
const commonBoundsAfter = Box.Common([
|
|
259
260
|
editor.getShapePageBounds(ids.boxC)!,
|
|
@@ -273,9 +274,9 @@ describe('When shapes are parented to other shapes...', () => {
|
|
|
273
274
|
])
|
|
274
275
|
|
|
275
276
|
editor.alignShapes(editor.getSelectedShapeIds(), 'bottom')
|
|
276
|
-
|
|
277
|
+
vi.advanceTimersByTime(1000)
|
|
277
278
|
editor.alignShapes(editor.getSelectedShapeIds(), 'right')
|
|
278
|
-
|
|
279
|
+
vi.advanceTimersByTime(1000)
|
|
279
280
|
|
|
280
281
|
const commonBoundsAfter = Box.Common([
|
|
281
282
|
editor.getShapePageBounds(ids.boxC)!,
|
|
@@ -339,9 +340,9 @@ describe('When shapes are parented to a rotated shape...', () => {
|
|
|
339
340
|
])
|
|
340
341
|
|
|
341
342
|
editor.alignShapes(editor.getSelectedShapeIds(), 'top')
|
|
342
|
-
|
|
343
|
+
vi.advanceTimersByTime(1000)
|
|
343
344
|
editor.alignShapes(editor.getSelectedShapeIds(), 'left')
|
|
344
|
-
|
|
345
|
+
vi.advanceTimersByTime(1000)
|
|
345
346
|
|
|
346
347
|
const commonBoundsAfter = Box.Common([
|
|
347
348
|
editor.getShapePageBounds(ids.boxC)!,
|
|
@@ -367,9 +368,9 @@ describe('When shapes are parented to a rotated shape...', () => {
|
|
|
367
368
|
])
|
|
368
369
|
|
|
369
370
|
editor.alignShapes(editor.getSelectedShapeIds(), 'bottom')
|
|
370
|
-
|
|
371
|
+
vi.advanceTimersByTime(1000)
|
|
371
372
|
editor.alignShapes(editor.getSelectedShapeIds(), 'right')
|
|
372
|
-
|
|
373
|
+
vi.advanceTimersByTime(1000)
|
|
373
374
|
|
|
374
375
|
const commonBoundsAfter = Box.Common([
|
|
375
376
|
editor.getShapePageBounds(ids.boxC)!,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { vi } from 'vitest'
|
|
1
2
|
import { TestEditor } from '../TestEditor'
|
|
2
3
|
|
|
3
4
|
let editor: TestEditor
|
|
@@ -6,7 +7,7 @@ beforeEach(() => {
|
|
|
6
7
|
editor = new TestEditor()
|
|
7
8
|
})
|
|
8
9
|
|
|
9
|
-
|
|
10
|
+
vi.useFakeTimers()
|
|
10
11
|
|
|
11
12
|
it('zooms in gradually when duration is present and animtion speed is default', () => {
|
|
12
13
|
expect(editor.getZoomLevel()).toBe(1)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { vi } from 'vitest'
|
|
1
2
|
import { TestEditor } from '../TestEditor'
|
|
2
3
|
|
|
3
4
|
let editor: TestEditor
|
|
@@ -14,9 +15,9 @@ it('centers on the point', () => {
|
|
|
14
15
|
it('centers on the point with animation', () => {
|
|
15
16
|
editor.centerOnPoint({ x: 400, y: 400 }, { animation: { duration: 200 } })
|
|
16
17
|
expect(editor.getViewportPageCenter()).not.toMatchObject({ x: 400, y: 400 })
|
|
17
|
-
|
|
18
|
+
vi.advanceTimersByTime(100)
|
|
18
19
|
expect(editor.getViewportPageCenter()).not.toMatchObject({ x: 400, y: 400 })
|
|
19
|
-
|
|
20
|
+
vi.advanceTimersByTime(200)
|
|
20
21
|
expect(editor.getViewportPageCenter()).toMatchObject({ x: 400, y: 400 })
|
|
21
22
|
})
|
|
22
23
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createShapeId, TLArrowShape } from '@tldraw/editor'
|
|
2
|
+
import { vi } from 'vitest'
|
|
2
3
|
import { getArrowBindings } from '../../lib/shapes/arrow/shared'
|
|
3
4
|
import { TestEditor } from '../TestEditor'
|
|
4
5
|
|
|
@@ -27,13 +28,13 @@ const doMockClipboard = () => {
|
|
|
27
28
|
|
|
28
29
|
Object.assign(window.navigator, {
|
|
29
30
|
clipboard: {
|
|
30
|
-
write:
|
|
31
|
+
write: vi.fn((content: any) => {
|
|
31
32
|
context.current = content
|
|
32
33
|
}),
|
|
33
34
|
},
|
|
34
35
|
})
|
|
35
36
|
|
|
36
|
-
globalThis.ClipboardItem =
|
|
37
|
+
globalThis.ClipboardItem = vi.fn((payload: any) => payload) as any
|
|
37
38
|
|
|
38
39
|
return context
|
|
39
40
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DefaultColorStyle, TLArrowShape, TLGeoShape, createShapeId } from '@tldraw/editor'
|
|
2
|
+
import { vi } from 'vitest'
|
|
2
3
|
import { TestEditor } from '../TestEditor'
|
|
3
4
|
|
|
4
5
|
let editor: TestEditor
|
|
@@ -126,7 +127,7 @@ it('Throws out all shapes if any shape is invalid', () => {
|
|
|
126
127
|
|
|
127
128
|
expect(editor.getCurrentPageShapeIds().size).toBe(n + 1)
|
|
128
129
|
|
|
129
|
-
console.error =
|
|
130
|
+
console.error = vi.fn()
|
|
130
131
|
|
|
131
132
|
// But these will need to be thrown out
|
|
132
133
|
expect(() => {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createBindingId, createShapeId } from '@tldraw/editor'
|
|
2
|
+
import { vi } from 'vitest'
|
|
2
3
|
import { getArrowBindings } from '../../lib/shapes/arrow/shared'
|
|
3
4
|
import { TestEditor } from '../TestEditor'
|
|
4
5
|
|
|
@@ -12,7 +13,7 @@ const ids = {
|
|
|
12
13
|
arrow1: createShapeId('arrow1'),
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
|
|
16
|
+
vi.useFakeTimers()
|
|
16
17
|
|
|
17
18
|
beforeEach(() => {
|
|
18
19
|
editor = new TestEditor()
|