tldraw 4.2.2 → 4.2.3

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 (621) hide show
  1. package/dist-cjs/index.d.ts +242 -311
  2. package/dist-cjs/index.js +5 -13
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/bindings/arrow/ArrowBindingUtil.js.map +2 -2
  5. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js +4 -7
  6. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js.map +2 -2
  7. package/dist-cjs/lib/defaultEmbedDefinitions.js.map +2 -2
  8. package/dist-cjs/lib/defaultExternalContentHandlers.js +5 -5
  9. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  10. package/dist-cjs/lib/defaultSideEffects.js +1 -6
  11. package/dist-cjs/lib/defaultSideEffects.js.map +2 -2
  12. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +13 -14
  13. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  14. package/dist-cjs/lib/shapes/arrow/arrow-types.js.map +1 -1
  15. package/dist-cjs/lib/shapes/arrow/arrowLabel.js +1 -1
  16. package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +2 -2
  17. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +1 -1
  18. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
  19. package/dist-cjs/lib/shapes/arrow/elbow/elbowArrowSnapLines.js.map +2 -2
  20. package/dist-cjs/lib/shapes/arrow/shared.js.map +2 -2
  21. package/dist-cjs/lib/shapes/arrow/toolStates/Idle.js +10 -4
  22. package/dist-cjs/lib/shapes/arrow/toolStates/Idle.js.map +2 -2
  23. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +4 -7
  24. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +2 -2
  25. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js +1 -1
  26. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js.map +2 -2
  27. package/dist-cjs/lib/shapes/bookmark/bookmarks.js.map +2 -2
  28. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +22 -24
  29. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  30. package/dist-cjs/lib/shapes/draw/getPath.js +11 -20
  31. package/dist-cjs/lib/shapes/draw/getPath.js.map +2 -2
  32. package/dist-cjs/lib/shapes/draw/toolStates/Drawing.js +86 -82
  33. package/dist-cjs/lib/shapes/draw/toolStates/Drawing.js.map +3 -3
  34. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +0 -6
  35. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +2 -2
  36. package/dist-cjs/lib/shapes/frame/FrameShapeTool.js.map +1 -1
  37. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +5 -6
  38. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  39. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +142 -146
  40. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  41. package/dist-cjs/lib/shapes/geo/toolStates/Idle.js +10 -5
  42. package/dist-cjs/lib/shapes/geo/toolStates/Idle.js.map +2 -2
  43. package/dist-cjs/lib/shapes/geo/toolStates/Pointing.js +3 -3
  44. package/dist-cjs/lib/shapes/geo/toolStates/Pointing.js.map +2 -2
  45. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +21 -23
  46. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  47. package/dist-cjs/lib/shapes/line/toolStates/Pointing.js +3 -3
  48. package/dist-cjs/lib/shapes/line/toolStates/Pointing.js.map +2 -2
  49. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +11 -6
  50. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  51. package/dist-cjs/lib/shapes/note/noteHelpers.js.map +2 -2
  52. package/dist-cjs/lib/shapes/note/toolStates/Pointing.js +10 -5
  53. package/dist-cjs/lib/shapes/note/toolStates/Pointing.js.map +2 -2
  54. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js +2 -3
  55. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js.map +2 -2
  56. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +2 -14
  57. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +3 -3
  58. package/dist-cjs/lib/shapes/shared/RichTextLabel.js +4 -12
  59. package/dist-cjs/lib/shapes/shared/RichTextLabel.js.map +3 -3
  60. package/dist-cjs/lib/shapes/shared/ShapeFill.js +2 -2
  61. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  62. package/dist-cjs/lib/shapes/shared/crop.js +0 -1
  63. package/dist-cjs/lib/shapes/shared/crop.js.map +2 -2
  64. package/dist-cjs/lib/shapes/shared/interpolate-props.js +3 -3
  65. package/dist-cjs/lib/shapes/shared/interpolate-props.js.map +2 -2
  66. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js.map +2 -2
  67. package/dist-cjs/lib/shapes/shared/useEditableRichText.js.map +2 -2
  68. package/dist-cjs/lib/shapes/shared/{useEfficientZoomThreshold.js → useForceSolid.js} +7 -10
  69. package/dist-cjs/lib/shapes/shared/useForceSolid.js.map +7 -0
  70. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js +1 -1
  71. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js.map +2 -2
  72. package/dist-cjs/lib/shapes/text/RichTextArea.js +0 -5
  73. package/dist-cjs/lib/shapes/text/RichTextArea.js.map +2 -2
  74. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +2 -5
  75. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  76. package/dist-cjs/lib/shapes/text/toolStates/Idle.js +10 -4
  77. package/dist-cjs/lib/shapes/text/toolStates/Idle.js.map +2 -2
  78. package/dist-cjs/lib/shapes/text/toolStates/Pointing.js +5 -7
  79. package/dist-cjs/lib/shapes/text/toolStates/Pointing.js.map +2 -2
  80. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +1 -1
  81. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +2 -2
  82. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +5 -4
  83. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  84. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +4 -2
  85. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  86. package/dist-cjs/lib/tools/HandTool/HandTool.js +5 -3
  87. package/dist-cjs/lib/tools/HandTool/HandTool.js.map +2 -2
  88. package/dist-cjs/lib/tools/HandTool/childStates/Dragging.js +2 -3
  89. package/dist-cjs/lib/tools/HandTool/childStates/Dragging.js.map +2 -2
  90. package/dist-cjs/lib/tools/HandTool/childStates/Pointing.js +1 -1
  91. package/dist-cjs/lib/tools/HandTool/childStates/Pointing.js.map +2 -2
  92. package/dist-cjs/lib/tools/LaserTool/childStates/Lasering.js +1 -1
  93. package/dist-cjs/lib/tools/LaserTool/childStates/Lasering.js.map +2 -2
  94. package/dist-cjs/lib/tools/SelectTool/DragAndDropManager.js +11 -10
  95. package/dist-cjs/lib/tools/SelectTool/DragAndDropManager.js.map +2 -2
  96. package/dist-cjs/lib/tools/SelectTool/childStates/Brushing.js +5 -6
  97. package/dist-cjs/lib/tools/SelectTool/childStates/Brushing.js.map +2 -2
  98. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Cropping.js +6 -4
  99. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Cropping.js.map +2 -2
  100. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js +1 -1
  101. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/Idle.js.map +2 -2
  102. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.js +1 -1
  103. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.js.map +2 -2
  104. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCropHandle.js +1 -1
  105. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCropHandle.js.map +2 -2
  106. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.js +1 -2
  107. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.js.map +2 -2
  108. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/crop_helpers.js +1 -1
  109. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/crop_helpers.js.map +2 -2
  110. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +6 -8
  111. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
  112. package/dist-cjs/lib/tools/SelectTool/childStates/EditingShape.js +11 -38
  113. package/dist-cjs/lib/tools/SelectTool/childStates/EditingShape.js.map +2 -2
  114. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +50 -42
  115. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +2 -2
  116. package/dist-cjs/lib/tools/SelectTool/childStates/PointingArrowLabel.js +6 -6
  117. package/dist-cjs/lib/tools/SelectTool/childStates/PointingArrowLabel.js.map +2 -2
  118. package/dist-cjs/lib/tools/SelectTool/childStates/PointingCanvas.js +1 -1
  119. package/dist-cjs/lib/tools/SelectTool/childStates/PointingCanvas.js.map +2 -2
  120. package/dist-cjs/lib/tools/SelectTool/childStates/PointingHandle.js +14 -4
  121. package/dist-cjs/lib/tools/SelectTool/childStates/PointingHandle.js.map +2 -2
  122. package/dist-cjs/lib/tools/SelectTool/childStates/PointingResizeHandle.js +1 -1
  123. package/dist-cjs/lib/tools/SelectTool/childStates/PointingResizeHandle.js.map +2 -2
  124. package/dist-cjs/lib/tools/SelectTool/childStates/PointingRotateHandle.js +1 -1
  125. package/dist-cjs/lib/tools/SelectTool/childStates/PointingRotateHandle.js.map +2 -2
  126. package/dist-cjs/lib/tools/SelectTool/childStates/PointingSelection.js +2 -2
  127. package/dist-cjs/lib/tools/SelectTool/childStates/PointingSelection.js.map +2 -2
  128. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js +13 -4
  129. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js.map +2 -2
  130. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js +6 -5
  131. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js.map +2 -2
  132. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js +3 -2
  133. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js.map +2 -2
  134. package/dist-cjs/lib/tools/SelectTool/childStates/ScribbleBrushing.js +6 -7
  135. package/dist-cjs/lib/tools/SelectTool/childStates/ScribbleBrushing.js.map +2 -2
  136. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js +11 -13
  137. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
  138. package/dist-cjs/lib/tools/SelectTool/selectHelpers.js +4 -15
  139. package/dist-cjs/lib/tools/SelectTool/selectHelpers.js.map +2 -2
  140. package/dist-cjs/lib/tools/ZoomTool/ZoomTool.js +1 -1
  141. package/dist-cjs/lib/tools/ZoomTool/ZoomTool.js.map +2 -2
  142. package/dist-cjs/lib/tools/ZoomTool/childStates/Pointing.js +3 -3
  143. package/dist-cjs/lib/tools/ZoomTool/childStates/Pointing.js.map +2 -2
  144. package/dist-cjs/lib/tools/ZoomTool/childStates/ZoomBrushing.js +6 -5
  145. package/dist-cjs/lib/tools/ZoomTool/childStates/ZoomBrushing.js.map +2 -2
  146. package/dist-cjs/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.js +3 -1
  147. package/dist-cjs/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.js.map +2 -2
  148. package/dist-cjs/lib/{utils/test-helpers.js → tools/selection-logic/getShouldEnterCropModeOnPointerDown.js} +8 -21
  149. package/dist-cjs/lib/tools/selection-logic/getShouldEnterCropModeOnPointerDown.js.map +7 -0
  150. package/dist-cjs/lib/tools/selection-logic/selectOnCanvasPointerUp.js +1 -1
  151. package/dist-cjs/lib/tools/selection-logic/selectOnCanvasPointerUp.js.map +2 -2
  152. package/dist-cjs/lib/tools/selection-logic/updateHoveredShapeId.js +1 -1
  153. package/dist-cjs/lib/tools/selection-logic/updateHoveredShapeId.js.map +2 -2
  154. package/dist-cjs/lib/ui/TldrawUi.js +2 -2
  155. package/dist-cjs/lib/ui/TldrawUi.js.map +2 -2
  156. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenuContent.js +9 -3
  157. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenuContent.js.map +2 -2
  158. package/dist-cjs/lib/ui/components/ContextMenu/DefaultContextMenu.js +3 -1
  159. package/dist-cjs/lib/ui/components/ContextMenu/DefaultContextMenu.js.map +2 -2
  160. package/dist-cjs/lib/ui/components/CursorChatBubble.js +1 -1
  161. package/dist-cjs/lib/ui/components/CursorChatBubble.js.map +2 -2
  162. package/dist-cjs/lib/ui/components/DefaultDebugPanel.js +21 -1
  163. package/dist-cjs/lib/ui/components/DefaultDebugPanel.js.map +2 -2
  164. package/dist-cjs/lib/ui/components/EditLinkDialog.js +1 -11
  165. package/dist-cjs/lib/ui/components/EditLinkDialog.js.map +2 -2
  166. package/dist-cjs/lib/ui/components/HelperButtons/StopFollowing.js.map +2 -2
  167. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js +1 -1
  168. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js.map +2 -2
  169. package/dist-cjs/lib/ui/components/OfflineIndicator/OfflineIndicator.js +15 -2
  170. package/dist-cjs/lib/ui/components/OfflineIndicator/OfflineIndicator.js.map +3 -3
  171. package/dist-cjs/lib/ui/components/PageMenu/PageItemInput.js +1 -3
  172. package/dist-cjs/lib/ui/components/PageMenu/PageItemInput.js.map +2 -2
  173. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenu.js +0 -6
  174. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenu.js.map +2 -2
  175. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
  176. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbar.js +1 -1
  177. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbar.js.map +2 -2
  178. package/dist-cjs/lib/ui/components/Toolbar/DefaultRichTextToolbar.js +1 -1
  179. package/dist-cjs/lib/ui/components/Toolbar/DefaultRichTextToolbar.js.map +2 -2
  180. package/dist-cjs/lib/ui/components/TopPanel/CenteredTopPanelContainer.js.map +1 -1
  181. package/dist-cjs/lib/ui/components/TopPanel/DefaultTopPanel.js +32 -0
  182. package/dist-cjs/lib/ui/components/TopPanel/DefaultTopPanel.js.map +7 -0
  183. package/dist-cjs/lib/ui/components/menu-items.js +1 -3
  184. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  185. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +1 -3
  186. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  187. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +1 -1
  188. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  189. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +93 -149
  190. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +2 -2
  191. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuActionCheckboxItem.js.map +2 -2
  192. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuActionItem.js.map +2 -2
  193. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +1 -1
  194. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  195. package/dist-cjs/lib/ui/context/actions.js +8 -7
  196. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  197. package/dist-cjs/lib/ui/context/components.js +2 -1
  198. package/dist-cjs/lib/ui/context/components.js.map +2 -2
  199. package/dist-cjs/lib/ui/hooks/menu-hooks.js.map +2 -2
  200. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +2 -2
  201. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
  202. package/dist-cjs/lib/ui/hooks/useFlatten.js.map +2 -2
  203. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +2 -2
  204. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +2 -2
  205. package/dist-cjs/lib/ui/hooks/useTools.js +5 -4
  206. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  207. package/dist-cjs/lib/ui/version.js +3 -3
  208. package/dist-cjs/lib/ui/version.js.map +1 -1
  209. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js +6 -16
  210. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js.map +2 -2
  211. package/dist-cjs/lib/utils/export/exportAs.js.map +2 -2
  212. package/dist-cjs/lib/utils/frames/frames.js.map +2 -2
  213. package/dist-cjs/lib/utils/text/richText.js +2 -4
  214. package/dist-cjs/lib/utils/text/richText.js.map +2 -2
  215. package/dist-cjs/lib/utils/text/textDirection.js +51 -0
  216. package/dist-cjs/lib/utils/text/textDirection.js.map +7 -0
  217. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js +2 -7
  218. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js.map +2 -2
  219. package/dist-esm/index.d.mts +242 -311
  220. package/dist-esm/index.mjs +5 -14
  221. package/dist-esm/index.mjs.map +2 -2
  222. package/dist-esm/lib/bindings/arrow/ArrowBindingUtil.mjs.map +2 -2
  223. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs +4 -8
  224. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs.map +2 -2
  225. package/dist-esm/lib/defaultEmbedDefinitions.mjs.map +2 -2
  226. package/dist-esm/lib/defaultExternalContentHandlers.mjs +5 -5
  227. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  228. package/dist-esm/lib/defaultSideEffects.mjs +1 -6
  229. package/dist-esm/lib/defaultSideEffects.mjs.map +2 -2
  230. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +15 -15
  231. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  232. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +1 -1
  233. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +2 -2
  234. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +1 -1
  235. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
  236. package/dist-esm/lib/shapes/arrow/elbow/elbowArrowSnapLines.mjs.map +2 -2
  237. package/dist-esm/lib/shapes/arrow/shared.mjs.map +2 -2
  238. package/dist-esm/lib/shapes/arrow/toolStates/Idle.mjs +10 -4
  239. package/dist-esm/lib/shapes/arrow/toolStates/Idle.mjs.map +2 -2
  240. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +4 -7
  241. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +2 -2
  242. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs +1 -1
  243. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs.map +2 -2
  244. package/dist-esm/lib/shapes/bookmark/bookmarks.mjs.map +2 -2
  245. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +24 -29
  246. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  247. package/dist-esm/lib/shapes/draw/getPath.mjs +11 -21
  248. package/dist-esm/lib/shapes/draw/getPath.mjs.map +2 -2
  249. package/dist-esm/lib/shapes/draw/toolStates/Drawing.mjs +86 -83
  250. package/dist-esm/lib/shapes/draw/toolStates/Drawing.mjs.map +3 -3
  251. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +0 -6
  252. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +2 -2
  253. package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs.map +1 -1
  254. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +5 -6
  255. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  256. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +142 -147
  257. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  258. package/dist-esm/lib/shapes/geo/toolStates/Idle.mjs +10 -5
  259. package/dist-esm/lib/shapes/geo/toolStates/Idle.mjs.map +2 -2
  260. package/dist-esm/lib/shapes/geo/toolStates/Pointing.mjs +3 -3
  261. package/dist-esm/lib/shapes/geo/toolStates/Pointing.mjs.map +2 -2
  262. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +22 -24
  263. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  264. package/dist-esm/lib/shapes/line/toolStates/Pointing.mjs +3 -3
  265. package/dist-esm/lib/shapes/line/toolStates/Pointing.mjs.map +2 -2
  266. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +12 -7
  267. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  268. package/dist-esm/lib/shapes/note/noteHelpers.mjs.map +2 -2
  269. package/dist-esm/lib/shapes/note/toolStates/Pointing.mjs +10 -5
  270. package/dist-esm/lib/shapes/note/toolStates/Pointing.mjs.map +2 -2
  271. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs +3 -4
  272. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs.map +2 -2
  273. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +2 -14
  274. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  275. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs +4 -12
  276. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs.map +2 -2
  277. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +2 -2
  278. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  279. package/dist-esm/lib/shapes/shared/crop.mjs +0 -1
  280. package/dist-esm/lib/shapes/shared/crop.mjs.map +2 -2
  281. package/dist-esm/lib/shapes/shared/interpolate-props.mjs +4 -4
  282. package/dist-esm/lib/shapes/shared/interpolate-props.mjs.map +2 -2
  283. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
  284. package/dist-esm/lib/shapes/shared/useEditableRichText.mjs.map +2 -2
  285. package/dist-esm/lib/shapes/shared/useForceSolid.mjs +9 -0
  286. package/dist-esm/lib/shapes/shared/useForceSolid.mjs.map +7 -0
  287. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs +1 -1
  288. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs.map +2 -2
  289. package/dist-esm/lib/shapes/text/RichTextArea.mjs +0 -5
  290. package/dist-esm/lib/shapes/text/RichTextArea.mjs.map +2 -2
  291. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +2 -5
  292. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  293. package/dist-esm/lib/shapes/text/toolStates/Idle.mjs +10 -4
  294. package/dist-esm/lib/shapes/text/toolStates/Idle.mjs.map +2 -2
  295. package/dist-esm/lib/shapes/text/toolStates/Pointing.mjs +5 -7
  296. package/dist-esm/lib/shapes/text/toolStates/Pointing.mjs.map +2 -2
  297. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +1 -1
  298. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +2 -2
  299. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +5 -4
  300. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  301. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +8 -3
  302. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  303. package/dist-esm/lib/tools/HandTool/HandTool.mjs +5 -3
  304. package/dist-esm/lib/tools/HandTool/HandTool.mjs.map +2 -2
  305. package/dist-esm/lib/tools/HandTool/childStates/Dragging.mjs +2 -3
  306. package/dist-esm/lib/tools/HandTool/childStates/Dragging.mjs.map +2 -2
  307. package/dist-esm/lib/tools/HandTool/childStates/Pointing.mjs +1 -1
  308. package/dist-esm/lib/tools/HandTool/childStates/Pointing.mjs.map +2 -2
  309. package/dist-esm/lib/tools/LaserTool/childStates/Lasering.mjs +1 -1
  310. package/dist-esm/lib/tools/LaserTool/childStates/Lasering.mjs.map +2 -2
  311. package/dist-esm/lib/tools/SelectTool/DragAndDropManager.mjs +11 -10
  312. package/dist-esm/lib/tools/SelectTool/DragAndDropManager.mjs.map +2 -2
  313. package/dist-esm/lib/tools/SelectTool/childStates/Brushing.mjs +5 -6
  314. package/dist-esm/lib/tools/SelectTool/childStates/Brushing.mjs.map +2 -2
  315. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Cropping.mjs +6 -4
  316. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Cropping.mjs.map +2 -2
  317. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs +1 -1
  318. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/Idle.mjs.map +2 -2
  319. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.mjs +1 -1
  320. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.mjs.map +2 -2
  321. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCropHandle.mjs +1 -1
  322. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCropHandle.mjs.map +2 -2
  323. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.mjs +1 -2
  324. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.mjs.map +2 -2
  325. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/crop_helpers.mjs +1 -1
  326. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/crop_helpers.mjs.map +2 -2
  327. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +6 -8
  328. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
  329. package/dist-esm/lib/tools/SelectTool/childStates/EditingShape.mjs +11 -38
  330. package/dist-esm/lib/tools/SelectTool/childStates/EditingShape.mjs.map +2 -2
  331. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +51 -43
  332. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +2 -2
  333. package/dist-esm/lib/tools/SelectTool/childStates/PointingArrowLabel.mjs +6 -6
  334. package/dist-esm/lib/tools/SelectTool/childStates/PointingArrowLabel.mjs.map +2 -2
  335. package/dist-esm/lib/tools/SelectTool/childStates/PointingCanvas.mjs +1 -1
  336. package/dist-esm/lib/tools/SelectTool/childStates/PointingCanvas.mjs.map +2 -2
  337. package/dist-esm/lib/tools/SelectTool/childStates/PointingHandle.mjs +19 -6
  338. package/dist-esm/lib/tools/SelectTool/childStates/PointingHandle.mjs.map +2 -2
  339. package/dist-esm/lib/tools/SelectTool/childStates/PointingResizeHandle.mjs +1 -1
  340. package/dist-esm/lib/tools/SelectTool/childStates/PointingResizeHandle.mjs.map +2 -2
  341. package/dist-esm/lib/tools/SelectTool/childStates/PointingRotateHandle.mjs +1 -1
  342. package/dist-esm/lib/tools/SelectTool/childStates/PointingRotateHandle.mjs.map +2 -2
  343. package/dist-esm/lib/tools/SelectTool/childStates/PointingSelection.mjs +2 -2
  344. package/dist-esm/lib/tools/SelectTool/childStates/PointingSelection.mjs.map +2 -2
  345. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs +13 -4
  346. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs.map +2 -2
  347. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs +6 -5
  348. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs.map +2 -2
  349. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs +3 -2
  350. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs.map +2 -2
  351. package/dist-esm/lib/tools/SelectTool/childStates/ScribbleBrushing.mjs +6 -7
  352. package/dist-esm/lib/tools/SelectTool/childStates/ScribbleBrushing.mjs.map +2 -2
  353. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs +11 -13
  354. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
  355. package/dist-esm/lib/tools/SelectTool/selectHelpers.mjs +4 -17
  356. package/dist-esm/lib/tools/SelectTool/selectHelpers.mjs.map +2 -2
  357. package/dist-esm/lib/tools/ZoomTool/ZoomTool.mjs +1 -1
  358. package/dist-esm/lib/tools/ZoomTool/ZoomTool.mjs.map +2 -2
  359. package/dist-esm/lib/tools/ZoomTool/childStates/Pointing.mjs +3 -3
  360. package/dist-esm/lib/tools/ZoomTool/childStates/Pointing.mjs.map +2 -2
  361. package/dist-esm/lib/tools/ZoomTool/childStates/ZoomBrushing.mjs +6 -5
  362. package/dist-esm/lib/tools/ZoomTool/childStates/ZoomBrushing.mjs.map +2 -2
  363. package/dist-esm/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.mjs +3 -1
  364. package/dist-esm/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.mjs.map +2 -2
  365. package/dist-esm/lib/tools/selection-logic/getShouldEnterCropModeOnPointerDown.mjs +8 -0
  366. package/dist-esm/lib/tools/selection-logic/getShouldEnterCropModeOnPointerDown.mjs.map +7 -0
  367. package/dist-esm/lib/tools/selection-logic/selectOnCanvasPointerUp.mjs +1 -1
  368. package/dist-esm/lib/tools/selection-logic/selectOnCanvasPointerUp.mjs.map +2 -2
  369. package/dist-esm/lib/tools/selection-logic/updateHoveredShapeId.mjs +1 -1
  370. package/dist-esm/lib/tools/selection-logic/updateHoveredShapeId.mjs.map +2 -2
  371. package/dist-esm/lib/ui/TldrawUi.mjs +2 -2
  372. package/dist-esm/lib/ui/TldrawUi.mjs.map +2 -2
  373. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenuContent.mjs +8 -2
  374. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenuContent.mjs.map +2 -2
  375. package/dist-esm/lib/ui/components/ContextMenu/DefaultContextMenu.mjs +3 -1
  376. package/dist-esm/lib/ui/components/ContextMenu/DefaultContextMenu.mjs.map +2 -2
  377. package/dist-esm/lib/ui/components/CursorChatBubble.mjs +1 -1
  378. package/dist-esm/lib/ui/components/CursorChatBubble.mjs.map +2 -2
  379. package/dist-esm/lib/ui/components/DefaultDebugPanel.mjs +30 -3
  380. package/dist-esm/lib/ui/components/DefaultDebugPanel.mjs.map +2 -2
  381. package/dist-esm/lib/ui/components/EditLinkDialog.mjs +1 -11
  382. package/dist-esm/lib/ui/components/EditLinkDialog.mjs.map +2 -2
  383. package/dist-esm/lib/ui/components/HelperButtons/StopFollowing.mjs.map +2 -2
  384. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs +1 -1
  385. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs.map +2 -2
  386. package/dist-esm/lib/ui/components/OfflineIndicator/OfflineIndicator.mjs +6 -3
  387. package/dist-esm/lib/ui/components/OfflineIndicator/OfflineIndicator.mjs.map +2 -2
  388. package/dist-esm/lib/ui/components/PageMenu/PageItemInput.mjs +1 -3
  389. package/dist-esm/lib/ui/components/PageMenu/PageItemInput.mjs.map +2 -2
  390. package/dist-esm/lib/ui/components/SharePanel/PeopleMenu.mjs +0 -6
  391. package/dist-esm/lib/ui/components/SharePanel/PeopleMenu.mjs.map +2 -2
  392. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
  393. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbar.mjs +1 -1
  394. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbar.mjs.map +2 -2
  395. package/dist-esm/lib/ui/components/Toolbar/DefaultRichTextToolbar.mjs +1 -1
  396. package/dist-esm/lib/ui/components/Toolbar/DefaultRichTextToolbar.mjs.map +2 -2
  397. package/dist-esm/lib/ui/components/TopPanel/CenteredTopPanelContainer.mjs.map +1 -1
  398. package/dist-esm/lib/ui/components/TopPanel/DefaultTopPanel.mjs +12 -0
  399. package/dist-esm/lib/ui/components/TopPanel/DefaultTopPanel.mjs.map +7 -0
  400. package/dist-esm/lib/ui/components/menu-items.mjs +5 -4
  401. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  402. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +1 -3
  403. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  404. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +2 -2
  405. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  406. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +95 -157
  407. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +2 -2
  408. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuActionCheckboxItem.mjs.map +2 -2
  409. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuActionItem.mjs.map +2 -2
  410. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +2 -2
  411. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  412. package/dist-esm/lib/ui/context/actions.mjs +8 -7
  413. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  414. package/dist-esm/lib/ui/context/components.mjs +2 -1
  415. package/dist-esm/lib/ui/context/components.mjs.map +2 -2
  416. package/dist-esm/lib/ui/hooks/menu-hooks.mjs +4 -1
  417. package/dist-esm/lib/ui/hooks/menu-hooks.mjs.map +2 -2
  418. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +2 -2
  419. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
  420. package/dist-esm/lib/ui/hooks/useFlatten.mjs.map +2 -2
  421. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +2 -2
  422. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +2 -2
  423. package/dist-esm/lib/ui/hooks/useTools.mjs +5 -4
  424. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  425. package/dist-esm/lib/ui/version.mjs +3 -3
  426. package/dist-esm/lib/ui/version.mjs.map +1 -1
  427. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs +6 -17
  428. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs.map +2 -2
  429. package/dist-esm/lib/utils/export/exportAs.mjs +3 -1
  430. package/dist-esm/lib/utils/export/exportAs.mjs.map +2 -2
  431. package/dist-esm/lib/utils/frames/frames.mjs.map +2 -2
  432. package/dist-esm/lib/utils/text/richText.mjs +2 -5
  433. package/dist-esm/lib/utils/text/richText.mjs.map +2 -2
  434. package/dist-esm/lib/utils/text/textDirection.mjs +31 -0
  435. package/dist-esm/lib/utils/text/textDirection.mjs.map +7 -0
  436. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs +2 -8
  437. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs.map +2 -2
  438. package/package.json +16 -18
  439. package/src/index.ts +2 -6
  440. package/src/lib/Tldraw.test.tsx +1 -46
  441. package/src/lib/bindings/arrow/ArrowBindingUtil.ts +1 -1
  442. package/src/lib/canvas/TldrawSelectionForeground.tsx +9 -20
  443. package/src/lib/defaultEmbedDefinitions.ts +0 -1
  444. package/src/lib/defaultExternalContentHandlers.ts +14 -13
  445. package/src/lib/defaultSideEffects.ts +1 -6
  446. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +133 -40
  447. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +8 -8
  448. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +2 -2
  449. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +16 -16
  450. package/src/lib/shapes/arrow/arrow-types.ts +0 -2
  451. package/src/lib/shapes/arrow/arrowLabel.ts +2 -2
  452. package/src/lib/shapes/arrow/arrowTargetState.ts +2 -2
  453. package/src/lib/shapes/arrow/elbow/elbowArrowSnapLines.tsx +3 -3
  454. package/src/lib/shapes/arrow/shared.ts +4 -4
  455. package/src/lib/shapes/arrow/toolStates/Idle.tsx +14 -4
  456. package/src/lib/shapes/arrow/toolStates/Pointing.tsx +5 -8
  457. package/src/lib/shapes/bookmark/BookmarkShapeUtil.tsx +1 -1
  458. package/src/lib/shapes/bookmark/bookmarks.ts +3 -3
  459. package/src/lib/shapes/draw/DrawShapeUtil.tsx +26 -30
  460. package/src/lib/shapes/draw/getPath.ts +10 -31
  461. package/src/lib/shapes/draw/toolStates/Drawing.ts +90 -100
  462. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -8
  463. package/src/lib/shapes/frame/FrameShapeTool.ts +1 -1
  464. package/src/lib/shapes/frame/FrameShapeUtil.tsx +4 -10
  465. package/src/lib/shapes/geo/GeoShapeUtil.test.tsx +2 -10
  466. package/src/lib/shapes/geo/GeoShapeUtil.tsx +176 -228
  467. package/src/lib/shapes/geo/toolStates/Idle.ts +15 -5
  468. package/src/lib/shapes/geo/toolStates/Pointing.ts +6 -6
  469. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +24 -25
  470. package/src/lib/shapes/line/LineShapeTool.test.ts +6 -6
  471. package/src/lib/shapes/line/LineShapeUtil.test.tsx +5 -5
  472. package/src/lib/shapes/line/toolStates/Pointing.ts +4 -4
  473. package/src/lib/shapes/note/NoteShapeTool.test.ts +1 -2
  474. package/src/lib/shapes/note/NoteShapeUtil.tsx +10 -9
  475. package/src/lib/shapes/note/noteCloning.test.ts +1 -3
  476. package/src/lib/shapes/note/noteHelpers.ts +2 -2
  477. package/src/lib/shapes/note/toolStates/Pointing.ts +10 -5
  478. package/src/lib/shapes/shared/HyperlinkButton.tsx +3 -4
  479. package/src/lib/shapes/shared/PlainTextLabel.tsx +2 -12
  480. package/src/lib/shapes/shared/RichTextLabel.tsx +4 -14
  481. package/src/lib/shapes/shared/ShapeFill.tsx +2 -2
  482. package/src/lib/shapes/shared/crop.ts +0 -1
  483. package/src/lib/shapes/shared/interpolate-props.ts +4 -4
  484. package/src/lib/shapes/shared/useEditablePlainText.ts +3 -7
  485. package/src/lib/shapes/shared/useEditableRichText.ts +3 -7
  486. package/src/lib/shapes/shared/useForceSolid.ts +6 -0
  487. package/src/lib/shapes/shared/useImageOrVideoAsset.ts +1 -1
  488. package/src/lib/shapes/text/RichTextArea.tsx +0 -5
  489. package/src/lib/shapes/text/TextShapeTool.test.ts +4 -4
  490. package/src/lib/shapes/text/TextShapeUtil.tsx +0 -5
  491. package/src/lib/shapes/text/toolStates/Idle.ts +14 -4
  492. package/src/lib/shapes/text/toolStates/Pointing.ts +8 -8
  493. package/src/lib/shapes/video/VideoShapeUtil.tsx +1 -2
  494. package/src/lib/tools/EraserTool/childStates/Erasing.ts +10 -7
  495. package/src/lib/tools/EraserTool/childStates/Pointing.ts +20 -5
  496. package/src/lib/tools/HandTool/HandTool.ts +5 -3
  497. package/src/lib/tools/HandTool/childStates/Dragging.ts +2 -3
  498. package/src/lib/tools/HandTool/childStates/Pointing.ts +1 -1
  499. package/src/lib/tools/LaserTool/childStates/Lasering.ts +1 -1
  500. package/src/lib/tools/SelectTool/DragAndDropManager.ts +11 -14
  501. package/src/lib/tools/SelectTool/childStates/Brushing.ts +11 -8
  502. package/src/lib/tools/SelectTool/childStates/Crop/children/Cropping.ts +6 -7
  503. package/src/lib/tools/SelectTool/childStates/Crop/children/Idle.ts +4 -3
  504. package/src/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.ts +1 -1
  505. package/src/lib/tools/SelectTool/childStates/Crop/children/PointingCropHandle.ts +1 -1
  506. package/src/lib/tools/SelectTool/childStates/Crop/children/TranslatingCrop.ts +1 -2
  507. package/src/lib/tools/SelectTool/childStates/Crop/children/crop_helpers.ts +1 -1
  508. package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +12 -11
  509. package/src/lib/tools/SelectTool/childStates/EditingShape.ts +16 -57
  510. package/src/lib/tools/SelectTool/childStates/Idle.ts +81 -64
  511. package/src/lib/tools/SelectTool/childStates/PointingArrowLabel.ts +8 -7
  512. package/src/lib/tools/SelectTool/childStates/PointingCanvas.ts +1 -1
  513. package/src/lib/tools/SelectTool/childStates/PointingHandle.ts +17 -9
  514. package/src/lib/tools/SelectTool/childStates/PointingResizeHandle.ts +1 -1
  515. package/src/lib/tools/SelectTool/childStates/PointingRotateHandle.ts +1 -1
  516. package/src/lib/tools/SelectTool/childStates/PointingSelection.ts +4 -4
  517. package/src/lib/tools/SelectTool/childStates/PointingShape.ts +14 -4
  518. package/src/lib/tools/SelectTool/childStates/Resizing.ts +10 -8
  519. package/src/lib/tools/SelectTool/childStates/Rotating.ts +3 -2
  520. package/src/lib/tools/SelectTool/childStates/ScribbleBrushing.ts +10 -9
  521. package/src/lib/tools/SelectTool/childStates/Translating.ts +15 -16
  522. package/src/lib/tools/SelectTool/selectHelpers.ts +4 -39
  523. package/src/lib/tools/ZoomTool/ZoomTool.ts +1 -1
  524. package/src/lib/tools/ZoomTool/childStates/Pointing.ts +3 -3
  525. package/src/lib/tools/ZoomTool/childStates/ZoomBrushing.ts +6 -5
  526. package/src/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.ts +3 -1
  527. package/src/lib/tools/selection-logic/getShouldEnterCropModeOnPointerDown.ts +10 -0
  528. package/src/lib/tools/selection-logic/selectOnCanvasPointerUp.ts +1 -1
  529. package/src/lib/tools/selection-logic/updateHoveredShapeId.ts +1 -1
  530. package/src/lib/ui/TldrawUi.tsx +2 -5
  531. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenuContent.tsx +9 -1
  532. package/src/lib/ui/components/ContextMenu/DefaultContextMenu.tsx +3 -1
  533. package/src/lib/ui/components/CursorChatBubble.tsx +2 -2
  534. package/src/lib/ui/components/DefaultDebugPanel.tsx +42 -3
  535. package/src/lib/ui/components/EditLinkDialog.tsx +6 -16
  536. package/src/lib/ui/components/HelperButtons/StopFollowing.tsx +2 -2
  537. package/src/lib/ui/components/Minimap/DefaultMinimap.tsx +1 -1
  538. package/src/lib/ui/components/OfflineIndicator/OfflineIndicator.tsx +5 -6
  539. package/src/lib/ui/components/PageMenu/PageItemInput.tsx +1 -3
  540. package/src/lib/ui/components/SharePanel/PeopleMenu.tsx +0 -8
  541. package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +2 -2
  542. package/src/lib/ui/components/Toolbar/DefaultImageToolbar.tsx +1 -1
  543. package/src/lib/ui/components/Toolbar/DefaultRichTextToolbar.tsx +1 -1
  544. package/src/lib/ui/components/TopPanel/CenteredTopPanelContainer.tsx +1 -1
  545. package/src/lib/ui/components/TopPanel/DefaultTopPanel.tsx +10 -0
  546. package/src/lib/ui/components/menu-items.tsx +15 -9
  547. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +3 -5
  548. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +2 -2
  549. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +113 -208
  550. package/src/lib/ui/components/primitives/menus/TldrawUiMenuActionCheckboxItem.tsx +1 -1
  551. package/src/lib/ui/components/primitives/menus/TldrawUiMenuActionItem.tsx +1 -1
  552. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +2 -2
  553. package/src/lib/ui/context/actions.tsx +19 -15
  554. package/src/lib/ui/context/components.tsx +2 -1
  555. package/src/lib/ui/hooks/menu-hooks.ts +19 -9
  556. package/src/lib/ui/hooks/useClipboardEvents.ts +2 -2
  557. package/src/lib/ui/hooks/useFlatten.ts +2 -1
  558. package/src/lib/ui/hooks/useKeyboardShortcuts.ts +2 -2
  559. package/src/lib/ui/hooks/useTools.tsx +7 -5
  560. package/src/lib/ui/version.ts +3 -3
  561. package/src/lib/ui.css +29 -31
  562. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +48 -12
  563. package/src/lib/utils/excalidraw/putExcalidrawContent.ts +6 -19
  564. package/src/lib/utils/export/exportAs.ts +9 -2
  565. package/src/lib/utils/frames/frames.ts +1 -1
  566. package/src/lib/utils/text/richText.ts +5 -6
  567. package/src/lib/utils/text/textDirection.ts +32 -0
  568. package/src/lib/utils/tldr/buildFromV1Document.ts +19 -21
  569. package/src/test/Editor.test.tsx +41 -78
  570. package/src/test/EraserTool.test.ts +12 -10
  571. package/src/test/SelectTool.test.ts +19 -11
  572. package/src/test/TestEditor.ts +51 -49
  573. package/src/test/TldrawEditor.test.tsx +20 -24
  574. package/src/test/__snapshots__/drawing.test.ts.snap +1257 -3
  575. package/src/test/__snapshots__/resizing.test.ts.snap +12 -3
  576. package/src/test/arrows-megabus.test.tsx +1 -1
  577. package/src/test/bindings.test.tsx +25 -29
  578. package/src/test/bindingsIndex.test.tsx +4 -4
  579. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +10 -10
  580. package/src/test/commands/createShapes.test.ts +1 -15
  581. package/src/test/commands/getSvgString.test.ts +2 -2
  582. package/src/test/commands/putContent.test.ts +1 -80
  583. package/src/test/commands/setCamera.test.ts +11 -13
  584. package/src/test/commands/stackShapes.test.ts +8 -34
  585. package/src/test/commands/updateShapes.test.ts +5 -21
  586. package/src/test/commands/zoomToBounds.test.ts +3 -19
  587. package/src/test/commands/zoomToSelection.test.ts +3 -14
  588. package/src/test/custom-clipping.test.ts +44 -52
  589. package/src/test/customSnapping.test.tsx +62 -77
  590. package/src/test/drawing.test.ts +10 -17
  591. package/src/test/duplicate.test.ts +1 -1
  592. package/src/test/flipShapes.test.ts +0 -33
  593. package/src/test/frames.test.ts +2 -94
  594. package/src/test/getCulledShapes.test.tsx +3 -11
  595. package/src/test/getShapeAtPoint.test.ts +2 -2
  596. package/src/test/groups.test.tsx +4 -7
  597. package/src/test/modifiers.test.ts +6 -6
  598. package/src/test/resizing.test.ts +22 -16
  599. package/src/test/selection-omnibus.test.ts +13 -13
  600. package/src/test/shapeutils.test.ts +1 -1
  601. package/src/test/spacebarPanning.test.ts +10 -28
  602. package/src/test/styles2.test.tsx +1 -1
  603. package/src/test/styles3.test.ts +5 -5
  604. package/src/test/test-jsx.tsx +57 -72
  605. package/src/test/text.test.ts +17 -15
  606. package/src/test/translating.test.ts +8 -6
  607. package/tldraw.css +41 -45
  608. package/dist-cjs/lib/shapes/shared/useEfficientZoomThreshold.js.map +0 -7
  609. package/dist-cjs/lib/utils/test-helpers.js.map +0 -7
  610. package/dist-esm/lib/shapes/shared/useEfficientZoomThreshold.mjs +0 -12
  611. package/dist-esm/lib/shapes/shared/useEfficientZoomThreshold.mjs.map +0 -7
  612. package/dist-esm/lib/utils/test-helpers.mjs +0 -21
  613. package/dist-esm/lib/utils/test-helpers.mjs.map +0 -7
  614. package/src/lib/shapes/draw/DrawShapeUtil.test.ts +0 -146
  615. package/src/lib/shapes/highlight/HighlightShapeUtil.test.ts +0 -146
  616. package/src/lib/shapes/shared/useEfficientZoomThreshold.ts +0 -10
  617. package/src/lib/utils/test-helpers.ts +0 -60
  618. package/src/test/commands/cameraState.test.ts +0 -299
  619. package/src/test/commands/createShape.test.ts +0 -64
  620. package/src/test/commands/isShapeOfType.test.ts +0 -44
  621. package/src/test/commands/updateShape.test.ts +0 -67
@@ -15,11 +15,1265 @@ exports[`Draws a bunch > draw shape 1`] = `
15
15
  "isComplete": true,
16
16
  "isPen": false,
17
17
  "scale": 1,
18
- "scaleX": 1,
19
- "scaleY": 1,
20
18
  "segments": [
21
19
  {
22
- "points": "AAAAAAA4ADwAAAA4AEQAAAA4AEkAvAA4wEwAxAA4gE8AyQA4wFEAzQA4oFOAzwA4oFRg0QA4kFVg0wA4YFbQ1AA4wFag1QA4AFdw1gA4UFdw1wA4YFcY2AA4cFdI2AA4cFeI2AA4gFfA2AA4cFfw2AA4UFcY2QA4IFc42QA40FZI2QA4cFZQ2QA4EFZQ2QA4kFVQ2QA4AFUw2QA4cFT42AA4wFOw2AA4wFJQ2AA4QFLg1wA44FEQ1wA4wFEw1gA4wFEg1QA44FGg0wA4oFIg0QA4gFMAzgA4QFQAxwA48FQASgA4gFUAUAA4AFZAUgA4cFZQVAA4oFZgVQA4sFZgVgA4sFaAVwA4YFZAWAA4oFWQWAA4oFTQWAA4YFEYWQA4AFAgWQA4QE0gWQA4gEkgWQA4AEAgWQA4AMcQWQA4gMr4WAA4gMvIWAA4gMuYWAA4gMlQWAA4ADzwVwA4gEsAVwA4QFAAVgA4AFPwVAA4EFVAUwA4sFYgUAA44FcASgA4iFgAyQA4AFmAzwA4YFlA0gA4yFmQ1AA4EFrQ1QA4OFoA1wA4UFrw1wA4WFpQ2AA4WFqQ2AA4SFrA2AA4IFrY2AA4+Fng2AA40Fno2AA4kFng2AA4UFmw2AA4IFlg2AA48FgA2AA4uFjg1gA4gFiQ1QA4WFgA1AA4OFiA0AA4IFgAxwA4IFiATQA4IFggUgA4KFigVAA4YFgQVgA4oFgQVwA44FjAVwA4MFlIWAA4eFmIWAA4uFmwWAA4+FnAWAA4KFrAWAA4aFq4WAA4sFqQWAA4+FpAWAA4MFvQVwA4YFsAVwA4kFvwVQA4uFvgVAA40FugUwA44FvAUQA46FugUAA46FvATwA46FsATgA42FsATQA4wFsATAA4sFsATAA4mFsATAA4gFtATAA4cFvATAA4YFuATgA4UFtAUAA4SFugUQA4QFsAUwA4QFsgVAA4WFvwVAA4iFuwVQA4uFtAVgA4+FvQVgA4EFwQVwA4KFxAVwA4SFxgVwA4YFxgVwA4eFwwVwA4jFyQVgA4oFzQVQA4qFwwVQA4tFxgVAA4vFxAUwA4xFwAUgA4yFzAUAA4zFzATwA40FxATgA40FyATQA40FwATQA40FzATAA40FyATQA40FzATgA40FxgUAA40FyAUQA40FxgUgA40FwAUwA40FygUwA41FwgVAA44FxwVAA46FygVAA49FywVAA4AF3AVAA4EF3AVAA4JF2QVAA4NF1QVAA4QF0gVAA4TF3AUwA4WF1gUwA4YF0gUwA4aF3gUgA4cF3gUgA4cF3gUgA4dF3gUgA4dF0AUwA4eF0gUwA4fF1gUwA4fF2gUwA4gF3AUwA4gF3gUwA4hF0AVAA4iF0AVAA4jF0AVAA4kF1AUwA4mF0gUgA4oF0AUQA4rF0AUAA4tF2ATgA4vF3ATAA4xF2ASgA41F0ARwA44F0AQgA48F0AQAA4BF4AQAA4GF4AQAA4NF4AQgA4aF6ASQA4oF7ATQA4yF5AUAA4+F4gUgA4IF8AVAA4QF8QVQA4UF/wVQA4WF9AVwA4YF9wWAA4YF8QWQA4UF+QWQA4KF8YWgA46F6oWgA4nF4wWwA4XF6AWwA4JF6oWwA45F3QWwA4sF3gWwA4iF3gWwA4aF3AWwA4UF14WwA4TF0IWwA4TF0wWgA4dF0oWQA40F0QWAA4TF6QVQA4wF7AUgA4TF8ATAA44F9AzQA4TmBA1AA4qmAw1wA41mBQ2AA4AmEQ2QA4LmHg2QA4RmFY2gA4WGHY2gA4aGFo2wA4amGg2wA4ZmHQ2wA4VGHw2wA4MGEA3AA4BGEA3AA42mDo2wA4mmCA2wA4VGDo2gA4HGBI2gA42F+w2QA4kF8o2QA4TF+Q2AA4IF8Y2AA4CF+A1wA4AF8A1wA4AF+w1gA4BF+A1gA4EF9w1gA4KF9g1gA4OF9g1gA4RF9w1gA4WF+A1gA4YF+Q1gA4aF+g1gA4bF+g1gA4cF+w1gA4cF+w1gA4dF+w1gA4",
20
+ "points": [
21
+ {
22
+ "x": 0,
23
+ "y": 0,
24
+ "z": 0.5,
25
+ },
26
+ {
27
+ "x": 1,
28
+ "y": 0,
29
+ "z": 0.5,
30
+ },
31
+ {
32
+ "x": 4,
33
+ "y": 0,
34
+ "z": 0.5,
35
+ },
36
+ {
37
+ "x": 10,
38
+ "y": -1,
39
+ "z": 0.5,
40
+ },
41
+ {
42
+ "x": 19,
43
+ "y": -4,
44
+ "z": 0.5,
45
+ },
46
+ {
47
+ "x": 30,
48
+ "y": -10,
49
+ "z": 0.5,
50
+ },
51
+ {
52
+ "x": 46,
53
+ "y": -20,
54
+ "z": 0.5,
55
+ },
56
+ {
57
+ "x": 61,
58
+ "y": -30,
59
+ "z": 0.5,
60
+ },
61
+ {
62
+ "x": 74,
63
+ "y": -43,
64
+ "z": 0.5,
65
+ },
66
+ {
67
+ "x": 89,
68
+ "y": -59,
69
+ "z": 0.5,
70
+ },
71
+ {
72
+ "x": 102,
73
+ "y": -77,
74
+ "z": 0.5,
75
+ },
76
+ {
77
+ "x": 108,
78
+ "y": -90,
79
+ "z": 0.5,
80
+ },
81
+ {
82
+ "x": 112,
83
+ "y": -103,
84
+ "z": 0.5,
85
+ },
86
+ {
87
+ "x": 117,
88
+ "y": -119,
89
+ "z": 0.5,
90
+ },
91
+ {
92
+ "x": 118,
93
+ "y": -131,
94
+ "z": 0.5,
95
+ },
96
+ {
97
+ "x": 119,
98
+ "y": -137,
99
+ "z": 0.5,
100
+ },
101
+ {
102
+ "x": 119,
103
+ "y": -145,
104
+ "z": 0.5,
105
+ },
106
+ {
107
+ "x": 120,
108
+ "y": -152,
109
+ "z": 0.5,
110
+ },
111
+ {
112
+ "x": 119,
113
+ "y": -158,
114
+ "z": 0.5,
115
+ },
116
+ {
117
+ "x": 117,
118
+ "y": -163,
119
+ "z": 0.5,
120
+ },
121
+ {
122
+ "x": 114,
123
+ "y": -167,
124
+ "z": 0.5,
125
+ },
126
+ {
127
+ "x": 109,
128
+ "y": -169,
129
+ "z": 0.5,
130
+ },
131
+ {
132
+ "x": 103,
133
+ "y": -170,
134
+ "z": 0.5,
135
+ },
136
+ {
137
+ "x": 97,
138
+ "y": -170,
139
+ "z": 0.5,
140
+ },
141
+ {
142
+ "x": 89,
143
+ "y": -170,
144
+ "z": 0.5,
145
+ },
146
+ {
147
+ "x": 80,
148
+ "y": -166,
149
+ "z": 0.5,
150
+ },
151
+ {
152
+ "x": 71,
153
+ "y": -159,
154
+ "z": 0.5,
155
+ },
156
+ {
157
+ "x": 62,
158
+ "y": -150,
159
+ "z": 0.5,
160
+ },
161
+ {
162
+ "x": 54,
163
+ "y": -138,
164
+ "z": 0.5,
165
+ },
166
+ {
167
+ "x": 50,
168
+ "y": -126,
169
+ "z": 0.5,
170
+ },
171
+ {
172
+ "x": 47,
173
+ "y": -113,
174
+ "z": 0.5,
175
+ },
176
+ {
177
+ "x": 46,
178
+ "y": -99,
179
+ "z": 0.5,
180
+ },
181
+ {
182
+ "x": 46,
183
+ "y": -82,
184
+ "z": 0.5,
185
+ },
186
+ {
187
+ "x": 47,
188
+ "y": -61,
189
+ "z": 0.5,
190
+ },
191
+ {
192
+ "x": 53,
193
+ "y": -41,
194
+ "z": 0.5,
195
+ },
196
+ {
197
+ "x": 60,
198
+ "y": -24,
199
+ "z": 0.5,
200
+ },
201
+ {
202
+ "x": 68,
203
+ "y": -7,
204
+ "z": 0.5,
205
+ },
206
+ {
207
+ "x": 79,
208
+ "y": 12,
209
+ "z": 0.5,
210
+ },
211
+ {
212
+ "x": 88,
213
+ "y": 32,
214
+ "z": 0.5,
215
+ },
216
+ {
217
+ "x": 96,
218
+ "y": 50,
219
+ "z": 0.5,
220
+ },
221
+ {
222
+ "x": 103,
223
+ "y": 69,
224
+ "z": 0.5,
225
+ },
226
+ {
227
+ "x": 106,
228
+ "y": 86,
229
+ "z": 0.5,
230
+ },
231
+ {
232
+ "x": 107,
233
+ "y": 102,
234
+ "z": 0.5,
235
+ },
236
+ {
237
+ "x": 107,
238
+ "y": 120,
239
+ "z": 0.5,
240
+ },
241
+ {
242
+ "x": 102,
243
+ "y": 136,
244
+ "z": 0.5,
245
+ },
246
+ {
247
+ "x": 90,
248
+ "y": 146,
249
+ "z": 0.5,
250
+ },
251
+ {
252
+ "x": 74,
253
+ "y": 154,
254
+ "z": 0.5,
255
+ },
256
+ {
257
+ "x": 43,
258
+ "y": 163,
259
+ "z": 0.5,
260
+ },
261
+ {
262
+ "x": 32,
263
+ "y": 164,
264
+ "z": 0.5,
265
+ },
266
+ {
267
+ "x": 21,
268
+ "y": 164,
269
+ "z": 0.5,
270
+ },
271
+ {
272
+ "x": 11,
273
+ "y": 164,
274
+ "z": 0.5,
275
+ },
276
+ {
277
+ "x": 2,
278
+ "y": 164,
279
+ "z": 0.5,
280
+ },
281
+ {
282
+ "x": -7,
283
+ "y": 162,
284
+ "z": 0.5,
285
+ },
286
+ {
287
+ "x": -13,
288
+ "y": 159,
289
+ "z": 0.5,
290
+ },
291
+ {
292
+ "x": -15,
293
+ "y": 153,
294
+ "z": 0.5,
295
+ },
296
+ {
297
+ "x": -15,
298
+ "y": 147,
299
+ "z": 0.5,
300
+ },
301
+ {
302
+ "x": -11,
303
+ "y": 138,
304
+ "z": 0.5,
305
+ },
306
+ {
307
+ "x": 1,
308
+ "y": 127,
309
+ "z": 0.5,
310
+ },
311
+ {
312
+ "x": 15,
313
+ "y": 112,
314
+ "z": 0.5,
315
+ },
316
+ {
317
+ "x": 34,
318
+ "y": 96,
319
+ "z": 0.5,
320
+ },
321
+ {
322
+ "x": 56,
323
+ "y": 79,
324
+ "z": 0.5,
325
+ },
326
+ {
327
+ "x": 81,
328
+ "y": 58,
329
+ "z": 0.5,
330
+ },
331
+ {
332
+ "x": 107,
333
+ "y": 33,
334
+ "z": 0.5,
335
+ },
336
+ {
337
+ "x": 126,
338
+ "y": 12,
339
+ "z": 0.5,
340
+ },
341
+ {
342
+ "x": 145,
343
+ "y": -10,
344
+ "z": 0.5,
345
+ },
346
+ {
347
+ "x": 160,
348
+ "y": -30,
349
+ "z": 0.5,
350
+ },
351
+ {
352
+ "x": 172,
353
+ "y": -50,
354
+ "z": 0.5,
355
+ },
356
+ {
357
+ "x": 185,
358
+ "y": -73,
359
+ "z": 0.5,
360
+ },
361
+ {
362
+ "x": 194,
363
+ "y": -93,
364
+ "z": 0.5,
365
+ },
366
+ {
367
+ "x": 199,
368
+ "y": -112,
369
+ "z": 0.5,
370
+ },
371
+ {
372
+ "x": 202,
373
+ "y": -127,
374
+ "z": 0.5,
375
+ },
376
+ {
377
+ "x": 203,
378
+ "y": -138,
379
+ "z": 0.5,
380
+ },
381
+ {
382
+ "x": 203,
383
+ "y": -146,
384
+ "z": 0.5,
385
+ },
386
+ {
387
+ "x": 201,
388
+ "y": -152,
389
+ "z": 0.5,
390
+ },
391
+ {
392
+ "x": 196,
393
+ "y": -155,
394
+ "z": 0.5,
395
+ },
396
+ {
397
+ "x": 191,
398
+ "y": -156,
399
+ "z": 0.5,
400
+ },
401
+ {
402
+ "x": 186,
403
+ "y": -157,
404
+ "z": 0.5,
405
+ },
406
+ {
407
+ "x": 178,
408
+ "y": -156,
409
+ "z": 0.5,
410
+ },
411
+ {
412
+ "x": 170,
413
+ "y": -150,
414
+ "z": 0.5,
415
+ },
416
+ {
417
+ "x": 164,
418
+ "y": -140,
419
+ "z": 0.5,
420
+ },
421
+ {
422
+ "x": 158,
423
+ "y": -128,
424
+ "z": 0.5,
425
+ },
426
+ {
427
+ "x": 151,
428
+ "y": -110,
429
+ "z": 0.5,
430
+ },
431
+ {
432
+ "x": 144,
433
+ "y": -89,
434
+ "z": 0.5,
435
+ },
436
+ {
437
+ "x": 139,
438
+ "y": -64,
439
+ "z": 0.5,
440
+ },
441
+ {
442
+ "x": 135,
443
+ "y": -36,
444
+ "z": 0.5,
445
+ },
446
+ {
447
+ "x": 132,
448
+ "y": -7,
449
+ "z": 0.5,
450
+ },
451
+ {
452
+ "x": 132,
453
+ "y": 22,
454
+ "z": 0.5,
455
+ },
456
+ {
457
+ "x": 132,
458
+ "y": 49,
459
+ "z": 0.5,
460
+ },
461
+ {
462
+ "x": 133,
463
+ "y": 74,
464
+ "z": 0.5,
465
+ },
466
+ {
467
+ "x": 140,
468
+ "y": 97,
469
+ "z": 0.5,
470
+ },
471
+ {
472
+ "x": 148,
473
+ "y": 113,
474
+ "z": 0.5,
475
+ },
476
+ {
477
+ "x": 156,
478
+ "y": 124,
479
+ "z": 0.5,
480
+ },
481
+ {
482
+ "x": 166,
483
+ "y": 137,
484
+ "z": 0.5,
485
+ },
486
+ {
487
+ "x": 175,
488
+ "y": 145,
489
+ "z": 0.5,
490
+ },
491
+ {
492
+ "x": 183,
493
+ "y": 150,
494
+ "z": 0.5,
495
+ },
496
+ {
497
+ "x": 191,
498
+ "y": 152,
499
+ "z": 0.5,
500
+ },
501
+ {
502
+ "x": 197,
503
+ "y": 152,
504
+ "z": 0.5,
505
+ },
506
+ {
507
+ "x": 205,
508
+ "y": 151,
509
+ "z": 0.5,
510
+ },
511
+ {
512
+ "x": 214,
513
+ "y": 146,
514
+ "z": 0.5,
515
+ },
516
+ {
517
+ "x": 223,
518
+ "y": 136,
519
+ "z": 0.5,
520
+ },
521
+ {
522
+ "x": 230,
523
+ "y": 125,
524
+ "z": 0.5,
525
+ },
526
+ {
527
+ "x": 236,
528
+ "y": 112,
529
+ "z": 0.5,
530
+ },
531
+ {
532
+ "x": 242,
533
+ "y": 95,
534
+ "z": 0.5,
535
+ },
536
+ {
537
+ "x": 247,
538
+ "y": 78,
539
+ "z": 0.5,
540
+ },
541
+ {
542
+ "x": 250,
543
+ "y": 61,
544
+ "z": 0.5,
545
+ },
546
+ {
547
+ "x": 252,
548
+ "y": 46,
549
+ "z": 0.5,
550
+ },
551
+ {
552
+ "x": 253,
553
+ "y": 37,
554
+ "z": 0.5,
555
+ },
556
+ {
557
+ "x": 253,
558
+ "y": 31,
559
+ "z": 0.5,
560
+ },
561
+ {
562
+ "x": 253,
563
+ "y": 24,
564
+ "z": 0.5,
565
+ },
566
+ {
567
+ "x": 251,
568
+ "y": 20,
569
+ "z": 0.5,
570
+ },
571
+ {
572
+ "x": 248,
573
+ "y": 16,
574
+ "z": 0.5,
575
+ },
576
+ {
577
+ "x": 246,
578
+ "y": 16,
579
+ "z": 0.5,
580
+ },
581
+ {
582
+ "x": 243,
583
+ "y": 16,
584
+ "z": 0.5,
585
+ },
586
+ {
587
+ "x": 240,
588
+ "y": 17,
589
+ "z": 0.5,
590
+ },
591
+ {
592
+ "x": 238,
593
+ "y": 19,
594
+ "z": 0.5,
595
+ },
596
+ {
597
+ "x": 236,
598
+ "y": 26,
599
+ "z": 0.5,
600
+ },
601
+ {
602
+ "x": 234,
603
+ "y": 34,
604
+ "z": 0.5,
605
+ },
606
+ {
607
+ "x": 233,
608
+ "y": 45,
609
+ "z": 0.5,
610
+ },
611
+ {
612
+ "x": 232,
613
+ "y": 56,
614
+ "z": 0.5,
615
+ },
616
+ {
617
+ "x": 232,
618
+ "y": 66,
619
+ "z": 0.5,
620
+ },
621
+ {
622
+ "x": 235,
623
+ "y": 79,
624
+ "z": 0.5,
625
+ },
626
+ {
627
+ "x": 241,
628
+ "y": 91,
629
+ "z": 0.5,
630
+ },
631
+ {
632
+ "x": 247,
633
+ "y": 100,
634
+ "z": 0.5,
635
+ },
636
+ {
637
+ "x": 255,
638
+ "y": 109,
639
+ "z": 0.5,
640
+ },
641
+ {
642
+ "x": 260,
643
+ "y": 113,
644
+ "z": 0.5,
645
+ },
646
+ {
647
+ "x": 266,
648
+ "y": 116,
649
+ "z": 0.5,
650
+ },
651
+ {
652
+ "x": 274,
653
+ "y": 118,
654
+ "z": 0.5,
655
+ },
656
+ {
657
+ "x": 280,
658
+ "y": 118,
659
+ "z": 0.5,
660
+ },
661
+ {
662
+ "x": 286,
663
+ "y": 115,
664
+ "z": 0.5,
665
+ },
666
+ {
667
+ "x": 291,
668
+ "y": 105,
669
+ "z": 0.5,
670
+ },
671
+ {
672
+ "x": 296,
673
+ "y": 93,
674
+ "z": 0.5,
675
+ },
676
+ {
677
+ "x": 298,
678
+ "y": 83,
679
+ "z": 0.5,
680
+ },
681
+ {
682
+ "x": 301,
683
+ "y": 70,
684
+ "z": 0.5,
685
+ },
686
+ {
687
+ "x": 303,
688
+ "y": 58,
689
+ "z": 0.5,
690
+ },
691
+ {
692
+ "x": 305,
693
+ "y": 48,
694
+ "z": 0.5,
695
+ },
696
+ {
697
+ "x": 306,
698
+ "y": 38,
699
+ "z": 0.5,
700
+ },
701
+ {
702
+ "x": 307,
703
+ "y": 31,
704
+ "z": 0.5,
705
+ },
706
+ {
707
+ "x": 308,
708
+ "y": 25,
709
+ "z": 0.5,
710
+ },
711
+ {
712
+ "x": 308,
713
+ "y": 22,
714
+ "z": 0.5,
715
+ },
716
+ {
717
+ "x": 308,
718
+ "y": 20,
719
+ "z": 0.5,
720
+ },
721
+ {
722
+ "x": 308,
723
+ "y": 19,
724
+ "z": 0.5,
725
+ },
726
+ {
727
+ "x": 308,
728
+ "y": 22,
729
+ "z": 0.5,
730
+ },
731
+ {
732
+ "x": 308,
733
+ "y": 27,
734
+ "z": 0.5,
735
+ },
736
+ {
737
+ "x": 308,
738
+ "y": 35,
739
+ "z": 0.5,
740
+ },
741
+ {
742
+ "x": 308,
743
+ "y": 44,
744
+ "z": 0.5,
745
+ },
746
+ {
747
+ "x": 308,
748
+ "y": 51,
749
+ "z": 0.5,
750
+ },
751
+ {
752
+ "x": 308,
753
+ "y": 56,
754
+ "z": 0.5,
755
+ },
756
+ {
757
+ "x": 308,
758
+ "y": 61,
759
+ "z": 0.5,
760
+ },
761
+ {
762
+ "x": 309,
763
+ "y": 66,
764
+ "z": 0.5,
765
+ },
766
+ {
767
+ "x": 312,
768
+ "y": 71,
769
+ "z": 0.5,
770
+ },
771
+ {
772
+ "x": 314,
773
+ "y": 74,
774
+ "z": 0.5,
775
+ },
776
+ {
777
+ "x": 317,
778
+ "y": 75,
779
+ "z": 0.5,
780
+ },
781
+ {
782
+ "x": 320,
783
+ "y": 76,
784
+ "z": 0.5,
785
+ },
786
+ {
787
+ "x": 324,
788
+ "y": 76,
789
+ "z": 0.5,
790
+ },
791
+ {
792
+ "x": 329,
793
+ "y": 73,
794
+ "z": 0.5,
795
+ },
796
+ {
797
+ "x": 333,
798
+ "y": 69,
799
+ "z": 0.5,
800
+ },
801
+ {
802
+ "x": 336,
803
+ "y": 66,
804
+ "z": 0.5,
805
+ },
806
+ {
807
+ "x": 339,
808
+ "y": 62,
809
+ "z": 0.5,
810
+ },
811
+ {
812
+ "x": 342,
813
+ "y": 59,
814
+ "z": 0.5,
815
+ },
816
+ {
817
+ "x": 344,
818
+ "y": 57,
819
+ "z": 0.5,
820
+ },
821
+ {
822
+ "x": 346,
823
+ "y": 55,
824
+ "z": 0.5,
825
+ },
826
+ {
827
+ "x": 348,
828
+ "y": 55,
829
+ "z": 0.5,
830
+ },
831
+ {
832
+ "x": 348,
833
+ "y": 55,
834
+ "z": 0.5,
835
+ },
836
+ {
837
+ "x": 349,
838
+ "y": 55,
839
+ "z": 0.5,
840
+ },
841
+ {
842
+ "x": 349,
843
+ "y": 56,
844
+ "z": 0.5,
845
+ },
846
+ {
847
+ "x": 350,
848
+ "y": 57,
849
+ "z": 0.5,
850
+ },
851
+ {
852
+ "x": 351,
853
+ "y": 59,
854
+ "z": 0.5,
855
+ },
856
+ {
857
+ "x": 351,
858
+ "y": 61,
859
+ "z": 0.5,
860
+ },
861
+ {
862
+ "x": 352,
863
+ "y": 62,
864
+ "z": 0.5,
865
+ },
866
+ {
867
+ "x": 352,
868
+ "y": 63,
869
+ "z": 0.5,
870
+ },
871
+ {
872
+ "x": 353,
873
+ "y": 64,
874
+ "z": 0.5,
875
+ },
876
+ {
877
+ "x": 354,
878
+ "y": 64,
879
+ "z": 0.5,
880
+ },
881
+ {
882
+ "x": 355,
883
+ "y": 64,
884
+ "z": 0.5,
885
+ },
886
+ {
887
+ "x": 356,
888
+ "y": 58,
889
+ "z": 0.5,
890
+ },
891
+ {
892
+ "x": 358,
893
+ "y": 49,
894
+ "z": 0.5,
895
+ },
896
+ {
897
+ "x": 360,
898
+ "y": 40,
899
+ "z": 0.5,
900
+ },
901
+ {
902
+ "x": 363,
903
+ "y": 32,
904
+ "z": 0.5,
905
+ },
906
+ {
907
+ "x": 365,
908
+ "y": 26,
909
+ "z": 0.5,
910
+ },
911
+ {
912
+ "x": 367,
913
+ "y": 19,
914
+ "z": 0.5,
915
+ },
916
+ {
917
+ "x": 369,
918
+ "y": 13,
919
+ "z": 0.5,
920
+ },
921
+ {
922
+ "x": 373,
923
+ "y": 7,
924
+ "z": 0.5,
925
+ },
926
+ {
927
+ "x": 376,
928
+ "y": 3,
929
+ "z": 0.5,
930
+ },
931
+ {
932
+ "x": 380,
933
+ "y": 2,
934
+ "z": 0.5,
935
+ },
936
+ {
937
+ "x": 385,
938
+ "y": 2,
939
+ "z": 0.5,
940
+ },
941
+ {
942
+ "x": 390,
943
+ "y": 2,
944
+ "z": 0.5,
945
+ },
946
+ {
947
+ "x": 397,
948
+ "y": 3,
949
+ "z": 0.5,
950
+ },
951
+ {
952
+ "x": 410,
953
+ "y": 11,
954
+ "z": 0.5,
955
+ },
956
+ {
957
+ "x": 424,
958
+ "y": 23,
959
+ "z": 0.5,
960
+ },
961
+ {
962
+ "x": 434,
963
+ "y": 34,
964
+ "z": 0.5,
965
+ },
966
+ {
967
+ "x": 446,
968
+ "y": 49,
969
+ "z": 0.5,
970
+ },
971
+ {
972
+ "x": 456,
973
+ "y": 64,
974
+ "z": 0.5,
975
+ },
976
+ {
977
+ "x": 464,
978
+ "y": 81,
979
+ "z": 0.5,
980
+ },
981
+ {
982
+ "x": 468,
983
+ "y": 95,
984
+ "z": 0.5,
985
+ },
986
+ {
987
+ "x": 470,
988
+ "y": 116,
989
+ "z": 0.5,
990
+ },
991
+ {
992
+ "x": 472,
993
+ "y": 142,
994
+ "z": 0.5,
995
+ },
996
+ {
997
+ "x": 472,
998
+ "y": 162,
999
+ "z": 0.5,
1000
+ },
1001
+ {
1002
+ "x": 468,
1003
+ "y": 178,
1004
+ "z": 0.5,
1005
+ },
1006
+ {
1007
+ "x": 458,
1008
+ "y": 195,
1009
+ "z": 0.5,
1010
+ },
1011
+ {
1012
+ "x": 442,
1013
+ "y": 213,
1014
+ "z": 0.5,
1015
+ },
1016
+ {
1017
+ "x": 423,
1018
+ "y": 230,
1019
+ "z": 0.5,
1020
+ },
1021
+ {
1022
+ "x": 407,
1023
+ "y": 240,
1024
+ "z": 0.5,
1025
+ },
1026
+ {
1027
+ "x": 393,
1028
+ "y": 245,
1029
+ "z": 0.5,
1030
+ },
1031
+ {
1032
+ "x": 377,
1033
+ "y": 250,
1034
+ "z": 0.5,
1035
+ },
1036
+ {
1037
+ "x": 364,
1038
+ "y": 252,
1039
+ "z": 0.5,
1040
+ },
1041
+ {
1042
+ "x": 354,
1043
+ "y": 252,
1044
+ "z": 0.5,
1045
+ },
1046
+ {
1047
+ "x": 346,
1048
+ "y": 248,
1049
+ "z": 0.5,
1050
+ },
1051
+ {
1052
+ "x": 340,
1053
+ "y": 239,
1054
+ "z": 0.5,
1055
+ },
1056
+ {
1057
+ "x": 339,
1058
+ "y": 225,
1059
+ "z": 0.5,
1060
+ },
1061
+ {
1062
+ "x": 339,
1063
+ "y": 198,
1064
+ "z": 0.5,
1065
+ },
1066
+ {
1067
+ "x": 349,
1068
+ "y": 165,
1069
+ "z": 0.5,
1070
+ },
1071
+ {
1072
+ "x": 372,
1073
+ "y": 130,
1074
+ "z": 0.5,
1075
+ },
1076
+ {
1077
+ "x": 403,
1078
+ "y": 89,
1079
+ "z": 0.5,
1080
+ },
1081
+ {
1082
+ "x": 432,
1083
+ "y": 54,
1084
+ "z": 0.5,
1085
+ },
1086
+ {
1087
+ "x": 467,
1088
+ "y": 16,
1089
+ "z": 0.5,
1090
+ },
1091
+ {
1092
+ "x": 504,
1093
+ "y": -21,
1094
+ "z": 0.5,
1095
+ },
1096
+ {
1097
+ "x": 551,
1098
+ "y": -68,
1099
+ "z": 0.5,
1100
+ },
1101
+ {
1102
+ "x": 597,
1103
+ "y": -115,
1104
+ "z": 0.5,
1105
+ },
1106
+ {
1107
+ "x": 619,
1108
+ "y": -138,
1109
+ "z": 0.5,
1110
+ },
1111
+ {
1112
+ "x": 641,
1113
+ "y": -162,
1114
+ "z": 0.5,
1115
+ },
1116
+ {
1117
+ "x": 663,
1118
+ "y": -188,
1119
+ "z": 0.5,
1120
+ },
1121
+ {
1122
+ "x": 675,
1123
+ "y": -203,
1124
+ "z": 0.5,
1125
+ },
1126
+ {
1127
+ "x": 684,
1128
+ "y": -219,
1129
+ "z": 0.5,
1130
+ },
1131
+ {
1132
+ "x": 692,
1133
+ "y": -237,
1134
+ "z": 0.5,
1135
+ },
1136
+ {
1137
+ "x": 693,
1138
+ "y": -244,
1139
+ "z": 0.5,
1140
+ },
1141
+ {
1142
+ "x": 691,
1143
+ "y": -250,
1144
+ "z": 0.5,
1145
+ },
1146
+ {
1147
+ "x": 682,
1148
+ "y": -254,
1149
+ "z": 0.5,
1150
+ },
1151
+ {
1152
+ "x": 664,
1153
+ "y": -256,
1154
+ "z": 0.5,
1155
+ },
1156
+ {
1157
+ "x": 642,
1158
+ "y": -256,
1159
+ "z": 0.5,
1160
+ },
1161
+ {
1162
+ "x": 621,
1163
+ "y": -253,
1164
+ "z": 0.5,
1165
+ },
1166
+ {
1167
+ "x": 589,
1168
+ "y": -240,
1169
+ "z": 0.5,
1170
+ },
1171
+ {
1172
+ "x": 554,
1173
+ "y": -221,
1174
+ "z": 0.5,
1175
+ },
1176
+ {
1177
+ "x": 526,
1178
+ "y": -201,
1179
+ "z": 0.5,
1180
+ },
1181
+ {
1182
+ "x": 502,
1183
+ "y": -182,
1184
+ "z": 0.5,
1185
+ },
1186
+ {
1187
+ "x": 484,
1188
+ "y": -165,
1189
+ "z": 0.5,
1190
+ },
1191
+ {
1192
+ "x": 467,
1193
+ "y": -146,
1194
+ "z": 0.5,
1195
+ },
1196
+ {
1197
+ "x": 456,
1198
+ "y": -131,
1199
+ "z": 0.5,
1200
+ },
1201
+ {
1202
+ "x": 450,
1203
+ "y": -120,
1204
+ "z": 0.5,
1205
+ },
1206
+ {
1207
+ "x": 448,
1208
+ "y": -112,
1209
+ "z": 0.5,
1210
+ },
1211
+ {
1212
+ "x": 448,
1213
+ "y": -107,
1214
+ "z": 0.5,
1215
+ },
1216
+ {
1217
+ "x": 449,
1218
+ "y": -104,
1219
+ "z": 0.5,
1220
+ },
1221
+ {
1222
+ "x": 452,
1223
+ "y": -103,
1224
+ "z": 0.5,
1225
+ },
1226
+ {
1227
+ "x": 458,
1228
+ "y": -102,
1229
+ "z": 0.5,
1230
+ },
1231
+ {
1232
+ "x": 462,
1233
+ "y": -102,
1234
+ "z": 0.5,
1235
+ },
1236
+ {
1237
+ "x": 465,
1238
+ "y": -103,
1239
+ "z": 0.5,
1240
+ },
1241
+ {
1242
+ "x": 470,
1243
+ "y": -104,
1244
+ "z": 0.5,
1245
+ },
1246
+ {
1247
+ "x": 472,
1248
+ "y": -105,
1249
+ "z": 0.5,
1250
+ },
1251
+ {
1252
+ "x": 474,
1253
+ "y": -106,
1254
+ "z": 0.5,
1255
+ },
1256
+ {
1257
+ "x": 475,
1258
+ "y": -106,
1259
+ "z": 0.5,
1260
+ },
1261
+ {
1262
+ "x": 476,
1263
+ "y": -107,
1264
+ "z": 0.5,
1265
+ },
1266
+ {
1267
+ "x": 476,
1268
+ "y": -107,
1269
+ "z": 0.5,
1270
+ },
1271
+ {
1272
+ "x": 477,
1273
+ "y": -107,
1274
+ "z": 0.5,
1275
+ },
1276
+ ],
23
1277
  "type": "free",
24
1278
  },
25
1279
  ],