tldraw 3.16.0-internal.51e99e128bd4 → 3.16.0-internal.a478398270c6

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.
Files changed (517) hide show
  1. package/dist-cjs/index.d.ts +23 -297
  2. package/dist-cjs/index.js +2 -30
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawImage.js +2 -5
  5. package/dist-cjs/lib/TldrawImage.js.map +3 -3
  6. package/dist-cjs/lib/canvas/TldrawCropHandles.js +1 -1
  7. package/dist-cjs/lib/canvas/TldrawCropHandles.js.map +2 -2
  8. package/dist-cjs/lib/canvas/TldrawHandles.js +1 -1
  9. package/dist-cjs/lib/canvas/TldrawHandles.js.map +2 -2
  10. package/dist-cjs/lib/canvas/TldrawOverlays.js +1 -1
  11. package/dist-cjs/lib/canvas/TldrawOverlays.js.map +2 -2
  12. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
  13. package/dist-cjs/lib/canvas/TldrawScribble.js.map +2 -2
  14. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js +271 -279
  15. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js.map +2 -2
  16. package/dist-cjs/lib/defaultExternalContentHandlers.js +0 -1
  17. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  18. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +44 -27
  19. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  20. package/dist-cjs/lib/shapes/arrow/arrowLabel.js +4 -16
  21. package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +2 -2
  22. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +1 -1
  23. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
  24. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
  25. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  26. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +0 -3
  27. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +2 -2
  28. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +6 -3
  29. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  30. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  31. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  32. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +17 -17
  33. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  34. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  35. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  36. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +2 -2
  37. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  38. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +1 -2
  39. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
  40. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +4 -5
  41. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  42. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +3 -3
  43. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +1 -1
  44. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +5 -20
  45. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  46. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +5 -6
  47. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  48. package/dist-cjs/lib/shapes/shared/PathBuilder.js +3 -21
  49. package/dist-cjs/lib/shapes/shared/PathBuilder.js.map +2 -2
  50. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +0 -1
  51. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +2 -2
  52. package/dist-cjs/lib/shapes/shared/RichTextLabel.js +2 -5
  53. package/dist-cjs/lib/shapes/shared/RichTextLabel.js.map +2 -2
  54. package/dist-cjs/lib/shapes/shared/ShapeFill.js +4 -4
  55. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  56. package/dist-cjs/lib/shapes/shared/SvgTextLabel.js +3 -4
  57. package/dist-cjs/lib/shapes/shared/SvgTextLabel.js.map +2 -2
  58. package/dist-cjs/lib/shapes/shared/freehand/svg.js.map +2 -2
  59. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js +1 -10
  60. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js.map +2 -2
  61. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +13 -7
  62. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  63. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  64. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  65. package/dist-cjs/lib/styles.js.map +2 -2
  66. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +1 -25
  67. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  68. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +0 -12
  69. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  70. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.js +1 -7
  71. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.js.map +2 -2
  72. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +22 -43
  73. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
  74. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +15 -2
  75. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +2 -2
  76. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js +0 -5
  77. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js.map +2 -2
  78. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js +0 -8
  79. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js.map +2 -2
  80. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js +0 -8
  81. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js.map +2 -2
  82. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js +0 -8
  83. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
  84. package/dist-cjs/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.js.map +2 -2
  85. package/dist-cjs/lib/ui/TldrawUi.js +0 -14
  86. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  87. package/dist-cjs/lib/ui/components/A11y.js +12 -14
  88. package/dist-cjs/lib/ui/components/A11y.js.map +2 -2
  89. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +3 -12
  90. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  91. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +2 -3
  92. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
  93. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +1 -51
  94. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +2 -2
  95. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +2 -3
  96. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  97. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  98. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  99. package/dist-cjs/lib/ui/components/MobileStylePanel.js +3 -5
  100. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  101. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +5 -4
  102. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
  103. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +1 -2
  104. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  105. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +2 -3
  106. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
  107. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
  108. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
  109. package/dist-cjs/lib/ui/components/Spinner.js +25 -2
  110. package/dist-cjs/lib/ui/components/Spinner.js.map +2 -2
  111. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +0 -2
  112. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  113. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +139 -171
  114. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  115. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js +3 -3
  116. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +2 -2
  117. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js +25 -26
  118. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +3 -3
  119. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbar.js +7 -21
  120. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbar.js.map +3 -3
  121. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +1 -1
  122. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  123. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +21 -66
  124. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  125. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +80 -189
  126. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  127. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +4 -5
  128. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  129. package/dist-cjs/lib/ui/components/menu-items.js +0 -22
  130. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  131. package/dist-cjs/lib/ui/components/primitives/Button/TldrawUiButtonIcon.js.map +2 -2
  132. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js +16 -7
  133. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +3 -3
  134. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +1 -1
  135. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  136. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js +1 -1
  137. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js.map +2 -2
  138. package/dist-cjs/lib/ui/components/primitives/TldrawUiIcon.js +1 -35
  139. package/dist-cjs/lib/ui/components/primitives/TldrawUiIcon.js.map +2 -2
  140. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +2 -3
  141. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
  142. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +2 -6
  143. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  144. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +7 -31
  145. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  146. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js.map +2 -2
  147. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  148. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +12 -25
  149. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  150. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +22 -154
  151. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  152. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js +2 -3
  153. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js.map +2 -2
  154. package/dist-cjs/lib/ui/context/actions.js +8 -57
  155. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  156. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  157. package/dist-cjs/lib/ui/hooks/menu-hooks.js.map +2 -2
  158. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +2 -2
  159. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +2 -2
  160. package/dist-cjs/lib/ui/hooks/useTools.js +9 -94
  161. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  162. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  163. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +0 -11
  164. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  165. package/dist-cjs/lib/ui/kbd-utils.js +1 -2
  166. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  167. package/dist-cjs/lib/ui/version.js +3 -3
  168. package/dist-cjs/lib/ui/version.js.map +1 -1
  169. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js +1 -1
  170. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js.map +2 -2
  171. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js +2 -3
  172. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js.map +2 -2
  173. package/dist-esm/index.d.mts +23 -297
  174. package/dist-esm/index.mjs +4 -51
  175. package/dist-esm/index.mjs.map +2 -2
  176. package/dist-esm/lib/TldrawImage.mjs +2 -5
  177. package/dist-esm/lib/TldrawImage.mjs.map +2 -2
  178. package/dist-esm/lib/canvas/TldrawCropHandles.mjs +1 -1
  179. package/dist-esm/lib/canvas/TldrawCropHandles.mjs.map +2 -2
  180. package/dist-esm/lib/canvas/TldrawHandles.mjs +1 -1
  181. package/dist-esm/lib/canvas/TldrawHandles.mjs.map +2 -2
  182. package/dist-esm/lib/canvas/TldrawOverlays.mjs +1 -1
  183. package/dist-esm/lib/canvas/TldrawOverlays.mjs.map +2 -2
  184. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  185. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  186. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs +271 -279
  187. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs.map +2 -2
  188. package/dist-esm/lib/defaultExternalContentHandlers.mjs +0 -1
  189. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  190. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +44 -30
  191. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  192. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +5 -19
  193. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +2 -2
  194. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +1 -1
  195. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
  196. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  197. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  198. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +0 -3
  199. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +2 -2
  200. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +6 -4
  201. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  202. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  203. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  204. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +17 -18
  205. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  206. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  207. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  208. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +2 -3
  209. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  210. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +1 -2
  211. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  212. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +4 -6
  213. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  214. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +3 -3
  215. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +1 -1
  216. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +5 -21
  217. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  218. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +5 -7
  219. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  220. package/dist-esm/lib/shapes/shared/PathBuilder.mjs +3 -22
  221. package/dist-esm/lib/shapes/shared/PathBuilder.mjs.map +2 -2
  222. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +0 -1
  223. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  224. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs +2 -5
  225. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs.map +2 -2
  226. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +4 -5
  227. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  228. package/dist-esm/lib/shapes/shared/SvgTextLabel.mjs +3 -4
  229. package/dist-esm/lib/shapes/shared/SvgTextLabel.mjs.map +2 -2
  230. package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
  231. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs +1 -10
  232. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs.map +2 -2
  233. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +13 -8
  234. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  235. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  236. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  237. package/dist-esm/lib/styles.mjs.map +2 -2
  238. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +1 -26
  239. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  240. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +0 -13
  241. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  242. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.mjs +1 -7
  243. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.mjs.map +2 -2
  244. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +22 -43
  245. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
  246. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +15 -2
  247. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +2 -2
  248. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs +0 -5
  249. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs.map +2 -2
  250. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs +0 -8
  251. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs.map +2 -2
  252. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs +0 -8
  253. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs.map +2 -2
  254. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs +0 -8
  255. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
  256. package/dist-esm/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.mjs.map +2 -2
  257. package/dist-esm/lib/ui/TldrawUi.mjs +2 -16
  258. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  259. package/dist-esm/lib/ui/components/A11y.mjs +12 -14
  260. package/dist-esm/lib/ui/components/A11y.mjs.map +2 -2
  261. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +3 -12
  262. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  263. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +2 -3
  264. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
  265. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +1 -51
  266. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +2 -2
  267. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +3 -3
  268. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  269. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  270. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  271. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +3 -6
  272. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  273. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +5 -4
  274. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
  275. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +1 -2
  276. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  277. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +2 -3
  278. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
  279. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
  280. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
  281. package/dist-esm/lib/ui/components/Spinner.mjs +26 -3
  282. package/dist-esm/lib/ui/components/Spinner.mjs.map +2 -2
  283. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +1 -3
  284. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  285. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +139 -171
  286. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  287. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs +3 -3
  288. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +2 -2
  289. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs +25 -26
  290. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +2 -2
  291. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbar.mjs +9 -23
  292. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbar.mjs.map +3 -3
  293. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +1 -1
  294. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  295. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +21 -56
  296. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  297. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +81 -192
  298. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  299. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +4 -5
  300. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  301. package/dist-esm/lib/ui/components/menu-items.mjs +0 -22
  302. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  303. package/dist-esm/lib/ui/components/primitives/Button/TldrawUiButtonIcon.mjs.map +2 -2
  304. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +6 -8
  305. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +2 -2
  306. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +1 -1
  307. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  308. package/dist-esm/lib/ui/components/primitives/TldrawUiDialog.mjs +1 -1
  309. package/dist-esm/lib/ui/components/primitives/TldrawUiDialog.mjs.map +2 -2
  310. package/dist-esm/lib/ui/components/primitives/TldrawUiIcon.mjs +2 -36
  311. package/dist-esm/lib/ui/components/primitives/TldrawUiIcon.mjs.map +2 -2
  312. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +2 -3
  313. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
  314. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +2 -6
  315. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  316. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +7 -31
  317. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  318. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs.map +2 -2
  319. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  320. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +12 -25
  321. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  322. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +24 -162
  323. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  324. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs +2 -3
  325. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs.map +2 -2
  326. package/dist-esm/lib/ui/context/actions.mjs +8 -57
  327. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  328. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  329. package/dist-esm/lib/ui/hooks/menu-hooks.mjs.map +2 -2
  330. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +2 -2
  331. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +2 -2
  332. package/dist-esm/lib/ui/hooks/useTools.mjs +10 -102
  333. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  334. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +0 -11
  335. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  336. package/dist-esm/lib/ui/kbd-utils.mjs +1 -2
  337. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  338. package/dist-esm/lib/ui/version.mjs +3 -3
  339. package/dist-esm/lib/ui/version.mjs.map +1 -1
  340. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs +1 -1
  341. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs.map +2 -2
  342. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs +2 -3
  343. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs.map +2 -2
  344. package/package.json +34 -12
  345. package/src/index.ts +2 -39
  346. package/src/lib/TldrawImage.tsx +2 -6
  347. package/src/lib/canvas/TldrawCropHandles.tsx +1 -3
  348. package/src/lib/canvas/TldrawHandles.tsx +1 -5
  349. package/src/lib/canvas/TldrawOverlays.tsx +1 -1
  350. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  351. package/src/lib/canvas/TldrawSelectionForeground.tsx +1 -5
  352. package/src/lib/defaultExternalContentHandlers.ts +1 -2
  353. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +1 -2
  354. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +3 -4
  355. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +11 -12
  356. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +46 -30
  357. package/src/lib/shapes/arrow/arrowLabel.ts +3 -23
  358. package/src/lib/shapes/arrow/arrowTargetState.ts +1 -2
  359. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  360. package/src/lib/shapes/arrow/toolStates/Pointing.tsx +0 -3
  361. package/src/lib/shapes/draw/DrawShapeTool.test.ts +5 -0
  362. package/src/lib/shapes/draw/DrawShapeUtil.tsx +7 -4
  363. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  364. package/src/lib/shapes/frame/FrameShapeUtil.tsx +21 -26
  365. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  366. package/src/lib/shapes/geo/GeoShapeUtil.tsx +2 -3
  367. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  368. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +4 -7
  369. package/src/lib/shapes/image/ImageShapeUtil.tsx +3 -3
  370. package/src/lib/shapes/line/LineShapeUtil.test.tsx +3 -4
  371. package/src/lib/shapes/line/LineShapeUtil.tsx +6 -25
  372. package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
  373. package/src/lib/shapes/note/NoteShapeUtil.tsx +4 -10
  374. package/src/lib/shapes/shared/PathBuilder.test.tsx +1 -1
  375. package/src/lib/shapes/shared/PathBuilder.tsx +1 -35
  376. package/src/lib/shapes/shared/PlainTextLabel.tsx +0 -1
  377. package/src/lib/shapes/shared/RichTextLabel.tsx +0 -4
  378. package/src/lib/shapes/shared/ShapeFill.tsx +4 -5
  379. package/src/lib/shapes/shared/SvgTextLabel.tsx +2 -4
  380. package/src/lib/shapes/shared/freehand/svg.ts +0 -2
  381. package/src/lib/shapes/shared/usePrefersReducedMotion.tsx +1 -11
  382. package/src/lib/shapes/text/TextShapeTool.test.ts +5 -6
  383. package/src/lib/shapes/text/TextShapeUtil.tsx +14 -8
  384. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  385. package/src/lib/styles.tsx +1 -3
  386. package/src/lib/tools/EraserTool/childStates/Erasing.ts +1 -34
  387. package/src/lib/tools/EraserTool/childStates/Pointing.ts +0 -20
  388. package/src/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.ts +1 -8
  389. package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +30 -54
  390. package/src/lib/tools/SelectTool/childStates/Idle.ts +24 -2
  391. package/src/lib/tools/SelectTool/childStates/PointingShape.ts +0 -7
  392. package/src/lib/tools/SelectTool/childStates/Resizing.ts +1 -12
  393. package/src/lib/tools/SelectTool/childStates/Rotating.ts +0 -11
  394. package/src/lib/tools/SelectTool/childStates/Translating.ts +1 -11
  395. package/src/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.ts +0 -1
  396. package/src/lib/ui/TldrawUi.tsx +2 -17
  397. package/src/lib/ui/components/A11y.tsx +13 -15
  398. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +3 -15
  399. package/src/lib/ui/components/DefaultMenuPanel.tsx +3 -4
  400. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +0 -40
  401. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +2 -4
  402. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  403. package/src/lib/ui/components/MobileStylePanel.tsx +6 -9
  404. package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +5 -4
  405. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +2 -3
  406. package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +3 -4
  407. package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
  408. package/src/lib/ui/components/Spinner.tsx +24 -2
  409. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +1 -3
  410. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +106 -146
  411. package/src/lib/ui/components/StylePanel/DoubleDropdownPicker.tsx +3 -3
  412. package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +6 -7
  413. package/src/lib/ui/components/Toolbar/DefaultImageToolbar.tsx +9 -25
  414. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +1 -1
  415. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +23 -55
  416. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +61 -212
  417. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +12 -17
  418. package/src/lib/ui/components/menu-items.tsx +0 -25
  419. package/src/lib/ui/components/primitives/Button/TldrawUiButtonIcon.tsx +2 -2
  420. package/src/lib/ui/components/primitives/TldrawUiButtonPicker.tsx +35 -40
  421. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +1 -1
  422. package/src/lib/ui/components/primitives/TldrawUiDialog.tsx +1 -1
  423. package/src/lib/ui/components/primitives/TldrawUiIcon.tsx +3 -41
  424. package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +2 -4
  425. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +1 -6
  426. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +12 -56
  427. package/src/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.tsx +2 -2
  428. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +1 -0
  429. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +16 -29
  430. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +23 -224
  431. package/src/lib/ui/context/TldrawUiContextProvider.tsx +20 -23
  432. package/src/lib/ui/context/actions.tsx +9 -59
  433. package/src/lib/ui/context/events.tsx +2 -6
  434. package/src/lib/ui/hooks/menu-hooks.ts +0 -1
  435. package/src/lib/ui/hooks/useKeyboardShortcuts.ts +2 -3
  436. package/src/lib/ui/hooks/useTools.tsx +11 -142
  437. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +0 -11
  438. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +0 -11
  439. package/src/lib/ui/kbd-utils.ts +1 -2
  440. package/src/lib/ui/version.ts +3 -3
  441. package/src/lib/ui.css +314 -414
  442. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +7 -21
  443. package/src/lib/utils/excalidraw/putExcalidrawContent.ts +1 -1
  444. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +7 -28
  445. package/src/lib/utils/tldr/buildFromV1Document.ts +1 -2
  446. package/src/test/A11y.test.tsx +2 -3
  447. package/src/test/ClickManager.test.ts +6 -7
  448. package/src/test/Editor.test.tsx +20 -21
  449. package/src/test/EraserTool.test.ts +13 -184
  450. package/src/test/HandTool.test.ts +9 -10
  451. package/src/test/HighlightShape.test.ts +1 -2
  452. package/src/test/SelectTool.test.ts +13 -40
  453. package/src/test/TLUserPreferences.test.ts +3 -4
  454. package/src/test/TestEditor.ts +15 -13
  455. package/src/test/TldrawEditor.test.tsx +10 -11
  456. package/src/test/ZoomTool.test.ts +6 -7
  457. package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
  458. package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
  459. package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
  460. package/src/test/arrows-megabus.test.tsx +10 -17
  461. package/src/test/bindings.test.tsx +37 -24
  462. package/src/test/bookmark-shapes.test.ts +8 -1
  463. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +7 -23
  464. package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
  465. package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
  466. package/src/test/commands/alignShapes.test.tsx +24 -25
  467. package/src/test/commands/animationSpeed.test.ts +1 -2
  468. package/src/test/commands/centerOnPoint.test.ts +2 -3
  469. package/src/test/commands/clipboard.test.ts +2 -3
  470. package/src/test/commands/createShapes.test.ts +1 -2
  471. package/src/test/commands/deletePage.test.ts +1 -84
  472. package/src/test/commands/deleteShapes.test.ts +1 -2
  473. package/src/test/commands/distributeShapes.test.tsx +10 -11
  474. package/src/test/commands/getSvgString.test.ts +1 -2
  475. package/src/test/commands/packShapes.test.ts +4 -5
  476. package/src/test/commands/resizeShape.test.ts +1 -2
  477. package/src/test/commands/rotateShapes.test.ts +6 -7
  478. package/src/test/commands/setCamera.test.ts +3 -4
  479. package/src/test/commands/setCurrentPage.test.ts +2 -3
  480. package/src/test/commands/stackShapes.test.ts +10 -11
  481. package/src/test/commands/stretch.test.tsx +12 -13
  482. package/src/test/createDeepLink.test.tsx +1 -2
  483. package/src/test/cropping.test.ts +2 -3
  484. package/src/test/drawing.test.ts +1 -2
  485. package/src/test/flipShapes.test.ts +3 -4
  486. package/src/test/frames.test.ts +24 -25
  487. package/src/test/getCulledShapes.test.tsx +2 -3
  488. package/src/test/groups.test.tsx +2 -2
  489. package/src/test/handleDeepLink.test.tsx +1 -2
  490. package/src/test/maxShapes.test.ts +2 -3
  491. package/src/test/modifiers.test.ts +4 -5
  492. package/src/test/navigation.test.ts +9 -264
  493. package/src/test/panning.test.ts +1 -2
  494. package/src/test/perf/perf.test.ts +1 -2
  495. package/src/test/registerDeepLinkListener.test.tsx +9 -10
  496. package/src/test/resizing.test.ts +38 -39
  497. package/src/test/select.test.tsx +3 -4
  498. package/src/test/selection-omnibus.test.ts +10 -11
  499. package/src/test/shapeutils.test.ts +48 -398
  500. package/src/test/translating.test.ts +9 -10
  501. package/tldraw.css +627 -726
  502. package/dist-cjs/lib/ui/components/AccessibilityMenu.js +0 -35
  503. package/dist-cjs/lib/ui/components/AccessibilityMenu.js.map +0 -7
  504. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +0 -268
  505. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +0 -7
  506. package/dist-cjs/lib/ui/components/primitives/layout.js +0 -76
  507. package/dist-cjs/lib/ui/components/primitives/layout.js.map +0 -7
  508. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs +0 -19
  509. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs.map +0 -7
  510. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +0 -245
  511. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +0 -7
  512. package/dist-esm/lib/ui/components/primitives/layout.mjs +0 -46
  513. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +0 -7
  514. package/src/lib/ui/components/AccessibilityMenu.tsx +0 -20
  515. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +0 -327
  516. package/src/lib/ui/components/primitives/layout.tsx +0 -107
  517. package/src/test/inner-outer-margin.test.ts +0 -315
@@ -1,5 +1,4 @@
1
1
  import { createShapeId } from '@tldraw/editor'
2
- import { vi } from 'vitest'
3
2
  import { TestEditor } from './TestEditor'
4
3
 
5
4
  let editor: TestEditor
@@ -55,7 +54,7 @@ describe('Shape navigation', () => {
55
54
  ])
56
55
 
57
56
  // Mock canTabTo to return false for the second shape
58
- vi.spyOn(editor.getShapeUtil('geo'), 'canTabTo').mockImplementation((shape) => {
57
+ jest.spyOn(editor.getShapeUtil('geo'), 'canTabTo').mockImplementation((shape) => {
59
58
  return shape.id !== ids.box2
60
59
  })
61
60
 
@@ -101,7 +100,7 @@ describe('Shape navigation', () => {
101
100
  editor.select(ids.box1)
102
101
 
103
102
  // Spy on zoomToSelectionIfOffscreen method
104
- const zoomSpy = vi.spyOn(editor, 'zoomToSelectionIfOffscreen')
103
+ const zoomSpy = jest.spyOn(editor, 'zoomToSelectionIfOffscreen')
105
104
 
106
105
  // Navigate to next shape (offscreen)
107
106
  editor.selectAdjacentShape('next')
@@ -120,7 +119,7 @@ describe('Shape navigation', () => {
120
119
  ])
121
120
 
122
121
  // Mock a culled shape (not rendered)
123
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
122
+ jest.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
124
123
  // Return normal bounds for box1, null for box2 as if it's culled/not rendered
125
124
  if (shape?.id === ids.box2) {
126
125
  // Still return bounds, but pretend it was calculated even though shape is culled
@@ -151,7 +150,7 @@ describe('Shape navigation', () => {
151
150
  ])
152
151
 
153
152
  // Setup shape centers for the test
154
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
153
+ jest.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
155
154
  if (shape?.id === ids.boxA) {
156
155
  return { center: { x: 10, y: 110 } } as any
157
156
  }
@@ -183,7 +182,7 @@ describe('Shape navigation', () => {
183
182
  ])
184
183
 
185
184
  // Setup shape centers for the test
186
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
185
+ jest.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
187
186
  if (shape?.id === ids.center) {
188
187
  return { center: { x: 100, y: 100 } } as any
189
188
  }
@@ -220,7 +219,7 @@ describe('Shape navigation', () => {
220
219
  ])
221
220
 
222
221
  // Setup shape centers
223
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
222
+ jest.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
224
223
  if (shape?.id === ids.center) return { center: { x: 200, y: 200 } } as any
225
224
  if (shape?.id === ids.right) return { center: { x: 300, y: 200 } } as any
226
225
  if (shape?.id === ids.left) return { center: { x: 100, y: 200 } } as any
@@ -259,7 +258,7 @@ describe('Shape navigation', () => {
259
258
  ])
260
259
 
261
260
  // Setup shape centers
262
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
261
+ jest.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
263
262
  if (shape?.id === ids.center) return { center: { x: 200, y: 200 } } as any
264
263
  if (shape?.id === ids.nearRight) return { center: { x: 250, y: 200 } } as any
265
264
  if (shape?.id === ids.farRight) return { center: { x: 350, y: 200 } } as any
@@ -285,7 +284,7 @@ describe('Shape navigation', () => {
285
284
  ])
286
285
 
287
286
  // Setup shape centers
288
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
287
+ jest.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
289
288
  if (shape?.id === ids.box1) return { center: { x: 50, y: 50 } } as any
290
289
  if (shape?.id === ids.box2) return { center: { x: 150, y: 50 } } as any
291
290
  if (shape?.id === ids.box3) return { center: { x: 150, y: 150 } } as any
@@ -415,260 +414,6 @@ describe('Shape navigation', () => {
415
414
  expect(editor.getSelectedShapeIds()).toEqual([])
416
415
  })
417
416
 
418
- it('respects container boundaries when navigating with left/right', () => {
419
- // Create a frame with shapes inside and shapes outside
420
- editor.createShapes([
421
- {
422
- id: ids.frame1,
423
- type: 'frame',
424
- x: 0,
425
- y: 0,
426
- props: {
427
- w: 200,
428
- h: 200,
429
- },
430
- },
431
- // Shapes inside frame
432
- {
433
- id: ids.box1,
434
- type: 'geo',
435
- x: 10,
436
- y: 100,
437
- parentId: ids.frame1,
438
- props: {
439
- w: 30,
440
- h: 30,
441
- },
442
- },
443
- {
444
- id: ids.box2,
445
- type: 'geo',
446
- x: 50,
447
- y: 100,
448
- parentId: ids.frame1,
449
- props: {
450
- w: 30,
451
- h: 30,
452
- },
453
- },
454
- {
455
- id: ids.box3,
456
- type: 'geo',
457
- x: 90,
458
- y: 100,
459
- parentId: ids.frame1,
460
- props: {
461
- w: 30,
462
- h: 30,
463
- },
464
- },
465
- // Shapes outside frame
466
- {
467
- id: ids.box4,
468
- type: 'geo',
469
- x: 300,
470
- y: 100,
471
- props: {
472
- w: 30,
473
- h: 30,
474
- },
475
- },
476
- {
477
- id: ids.box5,
478
- type: 'geo',
479
- x: 350,
480
- y: 100,
481
- props: {
482
- w: 30,
483
- h: 30,
484
- },
485
- },
486
- ])
487
-
488
- // Setup shape centers for consistent testing
489
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
490
- const positions = {
491
- [ids.box1]: { x: 25, y: 115 },
492
- [ids.box2]: { x: 65, y: 115 },
493
- [ids.box3]: { x: 105, y: 115 },
494
- [ids.box4]: { x: 315, y: 115 },
495
- [ids.box5]: { x: 365, y: 115 },
496
- }
497
- const pos = positions[shape?.id as keyof typeof positions]
498
- return pos ? ({ center: pos } as any) : ({ center: { x: 0, y: 0 } } as any)
499
- })
500
-
501
- // Select a shape inside the frame
502
- editor.select(ids.box1)
503
- expect(editor.getSelectedShapeIds()).toEqual([ids.box1])
504
-
505
- // Navigate right - should stay within the frame
506
- editor.selectAdjacentShape('right')
507
- expect(editor.getSelectedShapeIds()).toEqual([ids.box2])
508
-
509
- // Continue navigating right - should still stay within the frame
510
- editor.selectAdjacentShape('right')
511
- expect(editor.getSelectedShapeIds()).toEqual([ids.box3])
512
-
513
- // Navigate right again - should not leave the frame to go to box4
514
- editor.selectAdjacentShape('right')
515
- expect(editor.getSelectedShapeIds()).toEqual([ids.box3]) // Should stay at box3
516
-
517
- // Now navigate left to test the other direction
518
- editor.selectAdjacentShape('left')
519
- expect(editor.getSelectedShapeIds()).toEqual([ids.box2])
520
-
521
- editor.selectAdjacentShape('left')
522
- expect(editor.getSelectedShapeIds()).toEqual([ids.box1])
523
-
524
- // Navigate left again - should not leave the frame
525
- editor.selectAdjacentShape('left')
526
- expect(editor.getSelectedShapeIds()).toEqual([ids.box1]) // Should stay at box1
527
-
528
- // Now test navigation outside the frame
529
- editor.select(ids.box4)
530
- expect(editor.getSelectedShapeIds()).toEqual([ids.box4])
531
-
532
- // Navigate right - should move to box5
533
- editor.selectAdjacentShape('right')
534
- expect(editor.getSelectedShapeIds()).toEqual([ids.box5])
535
-
536
- // Navigate left - should move back to box4
537
- editor.selectAdjacentShape('left')
538
- expect(editor.getSelectedShapeIds()).toEqual([ids.box4])
539
-
540
- // Navigate left again - should select the frame (nearest shape to the left)
541
- editor.selectAdjacentShape('left')
542
- expect(editor.getSelectedShapeIds()).toEqual([ids.frame1]) // Should select frame1
543
- })
544
-
545
- it('respects container boundaries when navigating with up/down', () => {
546
- // Create a frame with shapes inside and shapes outside
547
- editor.createShapes([
548
- {
549
- id: ids.frame1,
550
- type: 'frame',
551
- x: 0,
552
- y: 0,
553
- props: {
554
- w: 200,
555
- h: 200,
556
- },
557
- },
558
- // Shapes inside frame - vertically arranged
559
- {
560
- id: ids.box1,
561
- type: 'geo',
562
- x: 100,
563
- y: 10,
564
- parentId: ids.frame1,
565
- props: {
566
- w: 30,
567
- h: 30,
568
- },
569
- },
570
- {
571
- id: ids.box2,
572
- type: 'geo',
573
- x: 100,
574
- y: 50,
575
- parentId: ids.frame1,
576
- props: {
577
- w: 30,
578
- h: 30,
579
- },
580
- },
581
- {
582
- id: ids.box3,
583
- type: 'geo',
584
- x: 100,
585
- y: 90,
586
- parentId: ids.frame1,
587
- props: {
588
- w: 30,
589
- h: 30,
590
- },
591
- },
592
- // Shapes outside frame - vertically arranged
593
- {
594
- id: ids.box4,
595
- type: 'geo',
596
- x: 300,
597
- y: 10,
598
- props: {
599
- w: 30,
600
- h: 30,
601
- },
602
- },
603
- {
604
- id: ids.box5,
605
- type: 'geo',
606
- x: 300,
607
- y: 50,
608
- props: {
609
- w: 30,
610
- h: 30,
611
- },
612
- },
613
- ])
614
-
615
- // Setup shape centers for consistent testing
616
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
617
- const positions = {
618
- [ids.box1]: { x: 115, y: 25 },
619
- [ids.box2]: { x: 115, y: 65 },
620
- [ids.box3]: { x: 115, y: 105 },
621
- [ids.box4]: { x: 315, y: 25 },
622
- [ids.box5]: { x: 315, y: 65 },
623
- }
624
- const pos = positions[shape?.id as keyof typeof positions]
625
- return pos ? ({ center: pos } as any) : ({ center: { x: 0, y: 0 } } as any)
626
- })
627
-
628
- // Select a shape inside the frame
629
- editor.select(ids.box1)
630
- expect(editor.getSelectedShapeIds()).toEqual([ids.box1])
631
-
632
- // Navigate down - should stay within the frame
633
- editor.selectAdjacentShape('down')
634
- expect(editor.getSelectedShapeIds()).toEqual([ids.box2])
635
-
636
- // Continue navigating down - should still stay within the frame
637
- editor.selectAdjacentShape('down')
638
- expect(editor.getSelectedShapeIds()).toEqual([ids.box3])
639
-
640
- // Navigate down again - should not leave the frame
641
- editor.selectAdjacentShape('down')
642
- expect(editor.getSelectedShapeIds()).toEqual([ids.box3]) // Should stay at box3
643
-
644
- // Now navigate up to test the other direction
645
- editor.selectAdjacentShape('up')
646
- expect(editor.getSelectedShapeIds()).toEqual([ids.box2])
647
-
648
- editor.selectAdjacentShape('up')
649
- expect(editor.getSelectedShapeIds()).toEqual([ids.box1])
650
-
651
- // Navigate up again - should not leave the frame
652
- editor.selectAdjacentShape('up')
653
- expect(editor.getSelectedShapeIds()).toEqual([ids.box1]) // Should stay at box1
654
-
655
- // Now test navigation outside the frame
656
- editor.select(ids.box4)
657
- expect(editor.getSelectedShapeIds()).toEqual([ids.box4])
658
-
659
- // Navigate down - should move to box5
660
- editor.selectAdjacentShape('down')
661
- expect(editor.getSelectedShapeIds()).toEqual([ids.box5])
662
-
663
- // Navigate up - should move back to box4
664
- editor.selectAdjacentShape('up')
665
- expect(editor.getSelectedShapeIds()).toEqual([ids.box4])
666
-
667
- // Navigate up again - should not enter the frame
668
- editor.selectAdjacentShape('up')
669
- expect(editor.getSelectedShapeIds()).toEqual([ids.box4]) // Should stay at box4
670
- })
671
-
672
417
  it('respects container boundaries when navigating with Tab', () => {
673
418
  // Create a frame with shapes inside and shapes outside
674
419
  editor.createShapes([
@@ -1007,7 +752,7 @@ describe('Shape navigation', () => {
1007
752
  ])
1008
753
 
1009
754
  // Setup shape centers
1010
- vi.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
755
+ jest.spyOn(editor, 'getShapePageBounds').mockImplementation((shape: any) => {
1011
756
  if (shape?.id === ids.row1Shape1) return { center: { x: 50, y: 50 } } as any
1012
757
  if (shape?.id === ids.row1Shape2) return { center: { x: 150, y: 50 } } as any
1013
758
  if (shape?.id === ids.row1Shape3) return { center: { x: 250, y: 50 } } as any
@@ -1,7 +1,6 @@
1
- import { vi } from 'vitest'
2
1
  import { TestEditor } from './TestEditor'
3
2
 
4
- vi.useFakeTimers()
3
+ jest.useFakeTimers()
5
4
 
6
5
  let editor: TestEditor
7
6
 
@@ -1,11 +1,10 @@
1
1
  import { TLShapePartial, Vec, createShapeId } from '@tldraw/editor'
2
- import { vi } from 'vitest'
3
2
  import { TestEditor } from '../TestEditor'
4
3
  import { PerformanceMeasurer } from './PerformanceMeasurer'
5
4
 
6
5
  let editor = new TestEditor()
7
6
 
8
- vi.useRealTimers()
7
+ jest.useRealTimers()
9
8
 
10
9
  describe.skip('Example perf tests', () => {
11
10
  it('measures Editor.createShape vs Editor.createShapes', () => {
@@ -1,9 +1,8 @@
1
1
  import { PageRecordType, Vec, createShapeId } from '@tldraw/editor'
2
- import { vi } from 'vitest'
3
2
  import { TestEditor } from './TestEditor'
4
3
  import { TL } from './test-jsx'
5
4
 
6
- vi.useFakeTimers()
5
+ jest.useFakeTimers()
7
6
 
8
7
  let editor: TestEditor
9
8
 
@@ -21,20 +20,20 @@ beforeEach(() => {
21
20
  test('it creates a listener that updates the current url', async () => {
22
21
  const unlisten = editor.registerDeepLinkListener()
23
22
 
24
- vi.advanceTimersByTime(1000)
23
+ jest.advanceTimersByTime(1000)
25
24
  expect(window.location.href).toMatchInlineSnapshot(`"http://localhost/test?d=v0.0.1080.720.page"`)
26
25
 
27
26
  const pageId = PageRecordType.createId('foo')
28
27
  editor.createPage({ id: pageId })
29
28
  editor.setCurrentPage(pageId)
30
29
 
31
- vi.advanceTimersByTime(1000)
30
+ jest.advanceTimersByTime(1000)
32
31
 
33
32
  expect(window.location.href).toMatchInlineSnapshot(`"http://localhost/test?d=v0.0.1080.720.foo"`)
34
33
 
35
34
  editor.pan({ x: 100, y: 100 })
36
35
 
37
- vi.advanceTimersByTime(1000)
36
+ jest.advanceTimersByTime(1000)
38
37
 
39
38
  expect(window.location.href).toMatchInlineSnapshot(
40
39
  `"http://localhost/test?d=v-100.-100.1080.720.foo"`
@@ -44,7 +43,7 @@ test('it creates a listener that updates the current url', async () => {
44
43
 
45
44
  editor.pan({ x: 500, y: 500 })
46
45
 
47
- vi.advanceTimersByTime(1000)
46
+ jest.advanceTimersByTime(1000)
48
47
 
49
48
  expect(window.location.href).toMatchInlineSnapshot(
50
49
  `"http://localhost/test?d=v-100.-100.1080.720.foo"`
@@ -76,7 +75,7 @@ test('it allows specifying a page target', async () => {
76
75
  param: 'foo',
77
76
  })
78
77
 
79
- vi.advanceTimersByTime(1000)
78
+ jest.advanceTimersByTime(1000)
80
79
 
81
80
  // no shapes yet
82
81
  expect(window.location.href).toMatchInlineSnapshot(`"http://localhost/test?foo=ppage"`)
@@ -88,19 +87,19 @@ test('it allows specifying a page target', async () => {
88
87
  <TL.geo id={boxB} x={1000} y={1000} w={100} h={100} />,
89
88
  ])
90
89
 
91
- vi.advanceTimersByTime(1000)
90
+ jest.advanceTimersByTime(1000)
92
91
  expect(window.location.href).toMatchInlineSnapshot(`"http://localhost/test?foo=sa"`)
93
92
 
94
93
  editor.pan({ x: -1000, y: -1000 })
95
94
 
96
- vi.advanceTimersByTime(1000)
95
+ jest.advanceTimersByTime(1000)
97
96
  expect(window.location.href).toMatchInlineSnapshot(`"http://localhost/test?foo=sb"`)
98
97
 
99
98
  unlisten()
100
99
 
101
100
  editor.pan({ x: 1000, y: 1000 })
102
101
 
103
- vi.advanceTimersByTime(1000)
102
+ jest.advanceTimersByTime(1000)
104
103
  expect(window.location.href).toMatchInlineSnapshot(`"http://localhost/test?foo=sb"`)
105
104
  expect(getNearestShape().id).toBe(boxA)
106
105
  })
@@ -15,13 +15,12 @@ import {
15
15
  rotateSelectionHandle,
16
16
  toRichText,
17
17
  } from '@tldraw/editor'
18
- import { vi } from 'vitest'
19
18
  import { NoteShapeUtil } from '../lib/shapes/note/NoteShapeUtil'
20
19
  import { TestEditor } from './TestEditor'
21
20
  import { getSnapLines } from './getSnapLines'
22
21
  import { roundedBox } from './roundedBox'
23
22
 
24
- vi.useFakeTimers()
23
+ jest.useFakeTimers()
25
24
 
26
25
  const ORDERED_ROTATE_CORNERS: TLSelectionHandle[] = [
27
26
  'top_left_rotate',
@@ -545,7 +544,7 @@ describe('Reisizing a selection of multiple shapes', () => {
545
544
  // └──────────────────O
546
545
 
547
546
  editor.pointerMove(15, 8, { altKey: false, shiftKey: true })
548
- vi.advanceTimersByTime(200)
547
+ jest.advanceTimersByTime(200)
549
548
 
550
549
  expect(roundedBox(editor.getSelectionPageBounds()!)).toMatchObject({ w: 15, h: 15 })
551
550
  expect(roundedPageBounds(ids.boxA)).toMatchObject({ x: 0, y: 0, w: 5, h: 5 })
@@ -594,7 +593,7 @@ describe('Reisizing a selection of multiple shapes', () => {
594
593
  editor.pointerDown(30, 20, { target: 'selection', handle: 'top_left_rotate' })
595
594
  editor.pointerMove(20, 20, { shiftKey: true })
596
595
  editor.pointerUp(20, 20, { shiftKey: false })
597
- vi.advanceTimersByTime(200)
596
+ jest.advanceTimersByTime(200)
598
597
 
599
598
  expect(editor.getShape(ids.boxB)!.rotation).toBeCloseTo(canonicalizeRotation(-PI / 2))
600
599
 
@@ -741,7 +740,7 @@ describe('Reisizing a selection of multiple shapes', () => {
741
740
  // └──────────────────O
742
741
 
743
742
  editor.pointerMove(15, 8, { altKey: false, shiftKey: true })
744
- vi.advanceTimersByTime(200)
743
+ jest.advanceTimersByTime(200)
745
744
 
746
745
  expect(roundedBox(editor.getSelectionPageBounds()!)).toMatchObject({ w: 15, h: 15 })
747
746
  expect(roundedPageBounds(ids.boxA)).toMatchObject({ x: 0, y: 0, w: 5, h: 5 })
@@ -2365,7 +2364,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of
2365
2364
  .select(ids.boxX)
2366
2365
  .pointerDown(100, 70, { target: 'selection', handle: 'top' })
2367
2366
  .pointerMove(121, 70, { ctrlKey: true, shiftKey: false })
2368
- vi.advanceTimersByTime(200)
2367
+ jest.advanceTimersByTime(200)
2369
2368
 
2370
2369
  expect(editor.getShapePageBounds(ids.boxX)!).toMatchObject({
2371
2370
  x: 40,
@@ -2433,7 +2432,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of
2433
2432
  .select(ids.boxX)
2434
2433
  .pointerDown(70, 40, { target: 'selection', handle: 'bottom' })
2435
2434
  .pointerMove(70, 18, { ctrlKey: true, shiftKey: false })
2436
- vi.advanceTimersByTime(200)
2435
+ jest.advanceTimersByTime(200)
2437
2436
 
2438
2437
  expect(editor.getShapePageBounds(ids.boxX)!.x).toBeCloseTo(40)
2439
2438
  expect(editor.getShapePageBounds(ids.boxX)!.y).toBeCloseTo(20)
@@ -2565,7 +2564,7 @@ describe('snapping while resizing a shape that has been rotated by multiples of
2565
2564
  .select(ids.boxX)
2566
2565
  .pointerDown(100, 70, { target: 'selection', handle: 'right' })
2567
2566
  .pointerMove(121, 70, { ctrlKey: true, shiftKey: false })
2568
- vi.advanceTimersByTime(200)
2567
+ jest.advanceTimersByTime(200)
2569
2568
 
2570
2569
  expect(editor.getShapePageBounds(ids.boxX)!.x).toBeCloseTo(40)
2571
2570
  expect(editor.getShapePageBounds(ids.boxX)!.y).toBeCloseTo(40)
@@ -3825,36 +3824,36 @@ describe('shapes that have do not resize', () => {
3825
3824
  // })
3826
3825
  // })
3827
3826
 
3828
- // describe('bugs', () => {
3829
- // it('resizing a zero width shape', () => {
3830
- // // Draw shapes can no longer have zero width / height
3831
- // const shapeId = createShapeId()
3832
- // app
3833
- // .createShapes([
3834
- // {
3835
- // id: shapeId,
3836
- // type: 'draw',
3837
- // x: 0,
3838
- // y: 0,
3839
- // props: {
3840
- // segments: [
3841
- // {
3842
- // type: 'straight',
3843
- // points: [
3844
- // { x: 0, y: 0 },
3845
- // { x: 0, y: 100 },
3846
- // ],
3847
- // },
3848
- // ],
3849
- // },
3850
- // },
3851
- // ])
3852
- // .select(shapeId)
3853
- // expect(editor.selectionRotatedBounds!.width).toBe(0)
3854
- // editor.pointerDown(0, 100, { target: 'selection', handle: 'bottom_right' }).pointerMove(10, 110)
3855
- // expect(editor.selectionRotatedBounds!.width).toBe(0)
3856
- // })
3857
- // })
3827
+ describe('bugs', () => {
3828
+ // it('resizing a zero width shape', () => {
3829
+ // // Draw shapes can no longer have zero width / height
3830
+ // const shapeId = createShapeId()
3831
+ // app
3832
+ // .createShapes([
3833
+ // {
3834
+ // id: shapeId,
3835
+ // type: 'draw',
3836
+ // x: 0,
3837
+ // y: 0,
3838
+ // props: {
3839
+ // segments: [
3840
+ // {
3841
+ // type: 'straight',
3842
+ // points: [
3843
+ // { x: 0, y: 0 },
3844
+ // { x: 0, y: 100 },
3845
+ // ],
3846
+ // },
3847
+ // ],
3848
+ // },
3849
+ // },
3850
+ // ])
3851
+ // .select(shapeId)
3852
+ // expect(editor.selectionRotatedBounds!.width).toBe(0)
3853
+ // editor.pointerDown(0, 100, { target: 'selection', handle: 'bottom_right' }).pointerMove(10, 110)
3854
+ // expect(editor.selectionRotatedBounds!.width).toBe(0)
3855
+ // })
3856
+ })
3858
3857
 
3859
3858
  it('uses the cross cursor when create resizing', () => {
3860
3859
  editor.setCurrentTool('geo')
@@ -3943,7 +3942,7 @@ describe('When resizing near the edges of the screen', () => {
3943
3942
  handle: 'top_left',
3944
3943
  })
3945
3944
  .pointerMove(-1, -1) // into the edge scrolling distance
3946
- vi.advanceTimersByTime(1000)
3945
+ jest.advanceTimersByTime(1000)
3947
3946
  const after = editor.getShape<TLGeoShape>(ids.boxA)!
3948
3947
  expect(after.x).toBeLessThan(before.x)
3949
3948
  expect(after.y).toBeLessThan(before.y)
@@ -1,4 +1,3 @@
1
- import { vi } from 'vitest'
2
1
  import { SelectTool } from '../lib/tools/SelectTool/SelectTool'
3
2
  import { TestEditor } from './TestEditor'
4
3
  import { TL } from './test-jsx'
@@ -29,12 +28,12 @@ describe(SelectTool, () => {
29
28
  // clicking on the input will preserve selection, however you can
30
29
  // click on the shape itself to select it as usual.
31
30
  // clicking on the shape should not do anything
32
- // vi.advanceTimersByTime(1000)
31
+ // jest.advanceTimersByTime(1000)
33
32
  // editor.pointerDown(50, 50, shapeId)
34
33
  // expect(editor.currentPageState.editingShapeId).toBe(shapeId)
35
34
 
36
35
  // clicking outside the shape should end editing
37
- vi.advanceTimersByTime(1000)
36
+ jest.advanceTimersByTime(1000)
38
37
 
39
38
  editor.pointerDown(150, 150).pointerUp()
40
39
  expect(editor.getCurrentPageState().editingShapeId).toBe(null)
@@ -52,7 +51,7 @@ describe(SelectTool, () => {
52
51
  expect(editor.getCurrentPageState().editingShapeId).toBe(shapeId)
53
52
 
54
53
  // clicking outside the shape should end editing
55
- vi.advanceTimersByTime(1000)
54
+ jest.advanceTimersByTime(1000)
56
55
 
57
56
  editor.pointerDown(150, 150).pointerUp()
58
57
  expect(editor.getCurrentPageState().editingShapeId).toBe(null)