tldraw 3.15.0 → 3.16.0-canary.03ed24d72068

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 (360) hide show
  1. package/dist-cjs/index.d.ts +198 -9
  2. package/dist-cjs/index.js +24 -2
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/canvas/TldrawCropHandles.js.map +2 -2
  5. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
  6. package/dist-cjs/lib/canvas/TldrawScribble.js.map +2 -2
  7. package/dist-cjs/lib/defaultExternalContentHandlers.js +1 -0
  8. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  9. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +25 -39
  10. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  11. package/dist-cjs/lib/shapes/arrow/arrowLabel.js +16 -4
  12. package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +2 -2
  13. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +1 -1
  14. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
  15. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
  16. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  17. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +3 -0
  18. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +2 -2
  19. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +3 -3
  20. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  21. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  22. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  23. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +12 -12
  24. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  25. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  26. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  27. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +2 -2
  28. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  29. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +2 -1
  30. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
  31. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +5 -1
  32. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  33. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +3 -3
  34. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +1 -1
  35. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +20 -2
  36. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  37. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +4 -4
  38. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  39. package/dist-cjs/lib/shapes/shared/ShapeFill.js +5 -5
  40. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  41. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js +10 -1
  42. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js.map +2 -2
  43. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +2 -2
  44. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  45. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  46. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  47. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +43 -22
  48. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
  49. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +2 -15
  50. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +2 -2
  51. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js +5 -0
  52. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js.map +2 -2
  53. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js +8 -0
  54. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js.map +2 -2
  55. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js +8 -0
  56. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js.map +2 -2
  57. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js +8 -0
  58. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
  59. package/dist-cjs/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.js.map +2 -2
  60. package/dist-cjs/lib/ui/TldrawUi.js +14 -0
  61. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  62. package/dist-cjs/lib/ui/components/AccessibilityMenu.js +35 -0
  63. package/dist-cjs/lib/ui/components/AccessibilityMenu.js.map +7 -0
  64. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +12 -3
  65. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  66. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +3 -2
  67. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
  68. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +40 -0
  69. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +2 -2
  70. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +3 -3
  71. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  72. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  73. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  74. package/dist-cjs/lib/ui/components/MobileStylePanel.js +5 -3
  75. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  76. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +1 -1
  77. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
  78. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +2 -1
  79. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  80. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +3 -2
  81. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
  82. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
  83. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
  84. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +2 -0
  85. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  86. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +171 -140
  87. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  88. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js +3 -3
  89. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +2 -2
  90. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js +26 -25
  91. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +3 -3
  92. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +1 -1
  93. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  94. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -21
  95. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  96. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +189 -80
  97. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  98. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +5 -4
  99. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  100. package/dist-cjs/lib/ui/components/menu-items.js +6 -0
  101. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  102. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js +5 -16
  103. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +3 -3
  104. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +1 -1
  105. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  106. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +3 -2
  107. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
  108. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +1 -0
  109. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  110. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +30 -7
  111. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  112. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +253 -0
  113. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +7 -0
  114. package/dist-cjs/lib/ui/components/primitives/layout.js +76 -0
  115. package/dist-cjs/lib/ui/components/primitives/layout.js.map +7 -0
  116. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  117. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
  118. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  119. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +153 -20
  120. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  121. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js +3 -2
  122. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js.map +2 -2
  123. package/dist-cjs/lib/ui/context/actions.js +29 -7
  124. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  125. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  126. package/dist-cjs/lib/ui/hooks/menu-hooks.js.map +2 -2
  127. package/dist-cjs/lib/ui/hooks/useTools.js +94 -9
  128. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  129. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  130. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +7 -0
  131. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  132. package/dist-cjs/lib/ui/kbd-utils.js +2 -1
  133. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  134. package/dist-cjs/lib/ui/version.js +3 -3
  135. package/dist-cjs/lib/ui/version.js.map +1 -1
  136. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js +1 -1
  137. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js.map +2 -2
  138. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js +3 -2
  139. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js.map +2 -2
  140. package/dist-esm/index.d.mts +198 -9
  141. package/dist-esm/index.mjs +40 -3
  142. package/dist-esm/index.mjs.map +2 -2
  143. package/dist-esm/lib/canvas/TldrawCropHandles.mjs.map +2 -2
  144. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  145. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  146. package/dist-esm/lib/defaultExternalContentHandlers.mjs +1 -0
  147. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  148. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +28 -39
  149. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  150. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +19 -5
  151. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +2 -2
  152. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +1 -1
  153. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
  154. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  155. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  156. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +3 -0
  157. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +2 -2
  158. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +4 -3
  159. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  160. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  161. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  162. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +13 -12
  163. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  164. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  165. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  166. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +3 -2
  167. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  168. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +2 -1
  169. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  170. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +6 -1
  171. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  172. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +3 -3
  173. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +1 -1
  174. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +21 -2
  175. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  176. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +5 -4
  177. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  178. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +6 -5
  179. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  180. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs +10 -1
  181. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs.map +2 -2
  182. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +3 -2
  183. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  184. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  185. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  186. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +43 -22
  187. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
  188. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +2 -15
  189. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +2 -2
  190. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs +5 -0
  191. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs.map +2 -2
  192. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs +8 -0
  193. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs.map +2 -2
  194. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs +8 -0
  195. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs.map +2 -2
  196. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs +8 -0
  197. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
  198. package/dist-esm/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.mjs.map +2 -2
  199. package/dist-esm/lib/ui/TldrawUi.mjs +16 -2
  200. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  201. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs +19 -0
  202. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs.map +7 -0
  203. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +12 -3
  204. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  205. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +3 -2
  206. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
  207. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +40 -0
  208. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +2 -2
  209. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +3 -5
  210. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  211. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  212. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  213. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +6 -3
  214. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  215. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +1 -1
  216. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
  217. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +2 -1
  218. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  219. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +3 -2
  220. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
  221. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
  222. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
  223. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +3 -1
  224. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  225. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +171 -140
  226. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  227. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs +3 -3
  228. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +2 -2
  229. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs +26 -25
  230. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +2 -2
  231. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +1 -1
  232. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  233. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -21
  234. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  235. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -81
  236. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  237. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +5 -4
  238. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  239. package/dist-esm/lib/ui/components/menu-items.mjs +6 -0
  240. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  241. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +6 -6
  242. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +2 -2
  243. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +1 -1
  244. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  245. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +3 -2
  246. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
  247. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +1 -0
  248. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  249. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +30 -7
  250. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  251. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +230 -0
  252. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +7 -0
  253. package/dist-esm/lib/ui/components/primitives/layout.mjs +46 -0
  254. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +7 -0
  255. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  256. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
  257. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  258. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +161 -22
  259. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  260. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs +3 -2
  261. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs.map +2 -2
  262. package/dist-esm/lib/ui/context/actions.mjs +29 -7
  263. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  264. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  265. package/dist-esm/lib/ui/hooks/menu-hooks.mjs.map +2 -2
  266. package/dist-esm/lib/ui/hooks/useTools.mjs +102 -10
  267. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  268. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +7 -0
  269. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  270. package/dist-esm/lib/ui/kbd-utils.mjs +2 -1
  271. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  272. package/dist-esm/lib/ui/version.mjs +3 -3
  273. package/dist-esm/lib/ui/version.mjs.map +1 -1
  274. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs +1 -1
  275. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs.map +2 -2
  276. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs +3 -2
  277. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs.map +2 -2
  278. package/package.json +3 -3
  279. package/src/index.ts +29 -1
  280. package/src/lib/canvas/TldrawCropHandles.tsx +2 -0
  281. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  282. package/src/lib/defaultExternalContentHandlers.ts +2 -1
  283. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +5 -5
  284. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +29 -42
  285. package/src/lib/shapes/arrow/arrowLabel.ts +23 -3
  286. package/src/lib/shapes/arrow/arrowTargetState.ts +2 -1
  287. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  288. package/src/lib/shapes/arrow/toolStates/Pointing.tsx +3 -0
  289. package/src/lib/shapes/draw/DrawShapeUtil.tsx +4 -3
  290. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  291. package/src/lib/shapes/frame/FrameShapeUtil.tsx +21 -14
  292. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  293. package/src/lib/shapes/geo/GeoShapeUtil.tsx +3 -2
  294. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  295. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +7 -1
  296. package/src/lib/shapes/image/ImageShapeUtil.tsx +3 -3
  297. package/src/lib/shapes/line/LineShapeUtil.tsx +25 -3
  298. package/src/lib/shapes/note/NoteShapeUtil.tsx +9 -4
  299. package/src/lib/shapes/shared/ShapeFill.tsx +6 -5
  300. package/src/lib/shapes/shared/usePrefersReducedMotion.tsx +11 -1
  301. package/src/lib/shapes/text/TextShapeUtil.tsx +3 -2
  302. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  303. package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +54 -30
  304. package/src/lib/tools/SelectTool/childStates/Idle.ts +2 -24
  305. package/src/lib/tools/SelectTool/childStates/PointingShape.ts +7 -0
  306. package/src/lib/tools/SelectTool/childStates/Resizing.ts +12 -1
  307. package/src/lib/tools/SelectTool/childStates/Rotating.ts +11 -0
  308. package/src/lib/tools/SelectTool/childStates/Translating.ts +11 -1
  309. package/src/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.ts +1 -0
  310. package/src/lib/ui/TldrawUi.tsx +17 -2
  311. package/src/lib/ui/components/AccessibilityMenu.tsx +20 -0
  312. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +15 -3
  313. package/src/lib/ui/components/DefaultMenuPanel.tsx +4 -3
  314. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +32 -0
  315. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +4 -4
  316. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  317. package/src/lib/ui/components/MobileStylePanel.tsx +9 -6
  318. package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +1 -1
  319. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +3 -2
  320. package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +4 -3
  321. package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
  322. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +3 -1
  323. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +146 -107
  324. package/src/lib/ui/components/StylePanel/DoubleDropdownPicker.tsx +3 -3
  325. package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +7 -6
  326. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +1 -1
  327. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -23
  328. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +212 -61
  329. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +17 -12
  330. package/src/lib/ui/components/menu-items.tsx +8 -0
  331. package/src/lib/ui/components/primitives/TldrawUiButtonPicker.tsx +40 -37
  332. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +1 -1
  333. package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +4 -2
  334. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +1 -0
  335. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +51 -12
  336. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +301 -0
  337. package/src/lib/ui/components/primitives/layout.tsx +107 -0
  338. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
  339. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
  340. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +220 -19
  341. package/src/lib/ui/context/TldrawUiContextProvider.tsx +23 -20
  342. package/src/lib/ui/context/actions.tsx +29 -7
  343. package/src/lib/ui/context/events.tsx +4 -2
  344. package/src/lib/ui/hooks/menu-hooks.ts +1 -0
  345. package/src/lib/ui/hooks/useTools.tsx +138 -10
  346. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +7 -0
  347. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +7 -0
  348. package/src/lib/ui/kbd-utils.ts +2 -1
  349. package/src/lib/ui/version.ts +3 -3
  350. package/src/lib/ui.css +406 -292
  351. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +16 -2
  352. package/src/lib/utils/excalidraw/putExcalidrawContent.ts +1 -1
  353. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +24 -3
  354. package/src/lib/utils/tldr/buildFromV1Document.ts +2 -1
  355. package/src/test/SelectTool.test.ts +37 -11
  356. package/src/test/arrows-megabus.test.tsx +12 -6
  357. package/src/test/commands/deletePage.test.ts +84 -1
  358. package/src/test/inner-outer-margin.test.ts +315 -0
  359. package/src/test/shapeutils.test.ts +394 -45
  360. package/tldraw.css +703 -603
@@ -13,11 +13,13 @@ import { CSSProperties } from 'react';
13
13
  import { Editor } from '@tldraw/editor';
14
14
  import { Extension } from '@tiptap/core';
15
15
  import { Extensions } from '@tiptap/core';
16
+ import { ForwardRefExoticComponent } from 'react';
16
17
  import { Geometry2d } from '@tldraw/editor';
17
18
  import { Geometry2dFilters } from '@tldraw/editor';
18
19
  import { Geometry2dOptions } from '@tldraw/editor';
19
20
  import { Group2d } from '@tldraw/editor';
20
21
  import { HandleSnapGeometry } from '@tldraw/editor';
22
+ import { HTMLAttributes } from 'react';
21
23
  import { IndexKey } from '@tldraw/editor';
22
24
  import { JsonObject } from '@tldraw/editor';
23
25
  import { JSX as JSX_2 } from 'react/jsx-runtime';
@@ -37,6 +39,7 @@ import { ReadonlySharedStyleMap } from '@tldraw/editor';
37
39
  import { RecordProps } from '@tldraw/editor';
38
40
  import { Rectangle2d } from '@tldraw/editor';
39
41
  import { RecursivePartial } from '@tldraw/editor';
42
+ import { RefAttributes } from 'react';
40
43
  import { RefObject } from 'react';
41
44
  import { Result } from '@tldraw/editor';
42
45
  import { RichTextFontVisitorState } from '@tldraw/editor';
@@ -148,6 +151,9 @@ export declare interface A11yProviderProps {
148
151
  children: React.ReactNode;
149
152
  }
150
153
 
154
+ /** @public @react */
155
+ export declare function AccessibilityMenu(): JSX_2.Element;
156
+
151
157
  /** @public */
152
158
  export declare interface ActionsProviderProps {
153
159
  overrides?(editor: Editor, actions: TLUiActionsContextType, helpers: TLUiOverrideHelpers): TLUiActionsContextType;
@@ -354,7 +360,6 @@ export declare class ArrowShapeUtil extends ShapeUtil<TLArrowShape> {
354
360
  component(shape: TLArrowShape): JSX_2.Element | null;
355
361
  indicator(shape: TLArrowShape): JSX_2.Element | null;
356
362
  onEditStart(shape: TLArrowShape): void;
357
- onEditEnd(shape: TLArrowShape): void;
358
363
  toSvg(shape: TLArrowShape, ctx: SvgExportContext): JSX_2.Element;
359
364
  getCanvasSvgDefs(): TLShapeUtilCanvasSvgDef[];
360
365
  getInterpolatedProps(startShape: TLArrowShape, endShape: TLArrowShape, progress: number): TLArrowShapeProps;
@@ -1012,6 +1017,11 @@ export declare function DefaultToolbarContent(): JSX_2.Element;
1012
1017
  /** @public */
1013
1018
  export declare interface DefaultToolbarProps {
1014
1019
  children?: ReactNode;
1020
+ orientation?: 'horizontal' | 'vertical';
1021
+ minItems?: number;
1022
+ minSizePx?: number;
1023
+ maxItems?: number;
1024
+ maxSizePx?: number;
1015
1025
  }
1016
1026
 
1017
1027
  /** @public */
@@ -1740,6 +1750,9 @@ export declare function getArrowTerminalsInArrowSpace(editor: Editor, shape: TLA
1740
1750
  start: Vec;
1741
1751
  };
1742
1752
 
1753
+ /** @public */
1754
+ export declare function getAssetInfo(file: File, options: TLDefaultExternalContentHandlerOpts, assetId?: TLAssetId): Promise<TLImageAsset | TLVideoAsset>;
1755
+
1743
1756
  /** @public */
1744
1757
  export declare function getCropBox<T extends ShapeWithCrop>(shape: T, info: TLCropInfo<T>, opts?: CropBoxOptions): {
1745
1758
  id: TLShapeId;
@@ -1761,6 +1774,9 @@ export declare function getDefaultCrop(): TLShapeCrop;
1761
1774
  */
1762
1775
  export declare function getEmbedInfo(definitions: readonly TLEmbedDefinition[], inputUrl: string): TLEmbedResult;
1763
1776
 
1777
+ /** @public */
1778
+ export declare function getHitShapeOnCanvasPointerDown(editor: Editor, hitLabels?: boolean): TLShape | undefined;
1779
+
1764
1780
  /** @public */
1765
1781
  export declare function getMediaAssetInfoPartial(file: File, assetId: TLAssetId, isImageType: boolean, isVideoType: boolean, maxImageDimension?: number): Promise<TLImageAsset | TLVideoAsset>;
1766
1782
 
@@ -1954,6 +1970,34 @@ export declare class LineShapeUtil extends ShapeUtil<TLLineShape> {
1954
1970
  typeName: "shape";
1955
1971
  x: number;
1956
1972
  y: number;
1973
+ };
1974
+ onHandleDragStart(shape: TLLineShape, { handle }: TLHandleDragInfo<TLLineShape>): {
1975
+ id: TLShapeId;
1976
+ index: IndexKey;
1977
+ isLocked: boolean;
1978
+ meta: JsonObject;
1979
+ opacity: TLOpacityType;
1980
+ parentId: TLParentId;
1981
+ props: {
1982
+ color: TLDefaultColorStyle;
1983
+ dash: TLDefaultDashStyle;
1984
+ points: {
1985
+ [x: string]: {
1986
+ id: IndexKey;
1987
+ index: IndexKey;
1988
+ x: number;
1989
+ y: number;
1990
+ } | TLLineShapePoint;
1991
+ };
1992
+ scale: number;
1993
+ size: TLDefaultSizeStyle;
1994
+ spline: TLLineShapeSplineStyle;
1995
+ };
1996
+ rotation: number;
1997
+ type: "line";
1998
+ typeName: "shape";
1999
+ x: number;
2000
+ y: number;
1957
2001
  } | undefined;
1958
2002
  component(shape: TLLineShape): JSX_2.Element;
1959
2003
  indicator(shape: TLLineShape): JSX_2.Element;
@@ -1967,6 +2011,9 @@ export declare function LineToolbarItem(): JSX_2.Element;
1967
2011
 
1968
2012
  /* Excluded from this release type: LineToPathBuilderCommand */
1969
2013
 
2014
+ /** @public @react */
2015
+ export declare function LockGroup(): JSX_2.Element;
2016
+
1970
2017
  /** @public @react */
1971
2018
  export declare function MiscMenuGroup(): JSX_2.Element;
1972
2019
 
@@ -2081,6 +2128,29 @@ export declare function NoteToolbarItem(): JSX_2.Element;
2081
2128
  /** @public @react */
2082
2129
  export declare function OfflineIndicator(): JSX_2.Element;
2083
2130
 
2131
+ /**
2132
+ * A helper method to use in {@link TLUiToolItem#onDragStart} to create a shape by dragging it from
2133
+ * the toolbar.
2134
+ * @public
2135
+ */
2136
+ export declare function onDragFromToolbarToCreateShape(editor: Editor, info: TLPointerEventInfo, opts: OnDragFromToolbarToCreateShapesOpts): void;
2137
+
2138
+ /**
2139
+ * Options for {@link onDragFromToolbarToCreateShape}.
2140
+ * @public
2141
+ */
2142
+ export declare interface OnDragFromToolbarToCreateShapesOpts {
2143
+ /**
2144
+ * Create the shape being dragged. You don't need to worry about positioning it, as it'll be
2145
+ * immediately updated with the correct position.
2146
+ */
2147
+ createShape(id: TLShapeId): void;
2148
+ /**
2149
+ * Called once the drag interaction has finished.
2150
+ */
2151
+ onDragEnd?(id: TLShapeId): void;
2152
+ }
2153
+
2084
2154
  /** @public @react */
2085
2155
  export declare function OpacitySlider(): JSX_2.Element | null;
2086
2156
 
@@ -2088,11 +2158,17 @@ export declare function OpacitySlider(): JSX_2.Element | null;
2088
2158
  export declare function OvalToolbarItem(): JSX_2.Element;
2089
2159
 
2090
2160
  /** @public @react */
2091
- export declare function OverflowingToolbar({ children }: OverflowingToolbarProps): JSX_2.Element;
2161
+ export declare function OverflowingToolbar({ children, orientation, sizingParentClassName, minItems, minSizePx, maxItems, maxSizePx, }: OverflowingToolbarProps): JSX_2.Element;
2092
2162
 
2093
2163
  /** @public */
2094
2164
  export declare interface OverflowingToolbarProps {
2095
2165
  children: React.ReactNode;
2166
+ orientation: 'horizontal' | 'vertical';
2167
+ sizingParentClassName: string;
2168
+ minItems: number;
2169
+ minSizePx: number;
2170
+ maxItems: number;
2171
+ maxSizePx: number;
2096
2172
  }
2097
2173
 
2098
2174
  /** @public @react */
@@ -2745,6 +2821,17 @@ export declare interface TldrawBaseProps extends TldrawUiProps, TldrawEditorBase
2745
2821
  embeds?: TLEmbedDefinition[];
2746
2822
  }
2747
2823
 
2824
+ /** @public @react */
2825
+ export declare function TldrawCropHandles({ size, width, height, hideAlternateHandles, }: TldrawCropHandlesProps): JSX_2.Element;
2826
+
2827
+ /** @public */
2828
+ export declare interface TldrawCropHandlesProps {
2829
+ size: number;
2830
+ width: number;
2831
+ height: number;
2832
+ hideAlternateHandles: boolean;
2833
+ }
2834
+
2748
2835
  /** @public */
2749
2836
  export declare interface TldrawFile {
2750
2837
  tldrawFileFormatVersion: number;
@@ -2868,6 +2955,13 @@ export declare function TldrawUiButtonLabel({ children }: TLUiButtonLabelProps):
2868
2955
  /** @public */
2869
2956
  export declare const TldrawUiButtonPicker: <T extends string>(props: TLUiButtonPickerProps<T>) => ReactElement;
2870
2957
 
2958
+ /**
2959
+ * A column, usually of UI controls like buttons, select dropdown, checkboxes, etc.
2960
+ *
2961
+ * @public @react
2962
+ */
2963
+ export declare const TldrawUiColumn: ForwardRefExoticComponent<TLUiLayoutProps & RefAttributes<HTMLDivElement>>;
2964
+
2871
2965
  /** @public @react */
2872
2966
  export declare function TldrawUiComponentsProvider({ overrides, children, }: TLUiComponentsProviderProps): JSX_2.Element;
2873
2967
 
@@ -2930,6 +3024,13 @@ export declare function TldrawUiDropdownMenuTrigger({ children, ...rest }: TLUiD
2930
3024
  /** @public @react */
2931
3025
  export declare function TldrawUiEventsProvider({ onEvent, children }: EventsProviderProps): JSX_2.Element;
2932
3026
 
3027
+ /**
3028
+ * A tight grid 4 elements wide, usually of UI controls like buttons, select dropdown, checkboxes,
3029
+ * etc.
3030
+ *
3031
+ * @public @react */
3032
+ export declare const TldrawUiGrid: ForwardRefExoticComponent<TLUiLayoutProps & RefAttributes<HTMLDivElement>>;
3033
+
2933
3034
  /** @public @react */
2934
3035
  export declare const TldrawUiIcon: NamedExoticComponent<TLUiIconProps>;
2935
3036
 
@@ -2955,7 +3056,7 @@ export declare function TldrawUiMenuContextProvider({ type, sourceId, children,
2955
3056
  export declare function TldrawUiMenuGroup({ id, label, className, children }: TLUiMenuGroupProps): boolean | JSX_2.Element | Iterable<ReactNode> | null | number | string | undefined;
2956
3057
 
2957
3058
  /** @public @react */
2958
- export declare function TldrawUiMenuItem<TranslationKey extends string = string, IconType extends string = string>({ disabled, spinner, readonlyOk, id, kbd, label, icon, iconLeft, onSelect, noClose, isSelected, }: TLUiMenuItemProps<TranslationKey, IconType>): JSX_2.Element | null;
3059
+ export declare function TldrawUiMenuItem<TranslationKey extends string = string, IconType extends string = string>({ disabled, spinner, readonlyOk, id, kbd, label, icon, iconLeft, onSelect, noClose, isSelected, onDragStart, }: TLUiMenuItemProps<TranslationKey, IconType>): JSX_2.Element | null;
2959
3060
 
2960
3061
  /** @public @react */
2961
3062
  export declare function TldrawUiMenuSubmenu<Translation extends string = string>({ id, disabled, label, size, children, }: TLUiMenuSubmenuProps<Translation>): boolean | JSX_2.Element | Iterable<ReactNode> | null | number | string | undefined;
@@ -2963,8 +3064,24 @@ export declare function TldrawUiMenuSubmenu<Translation extends string = string>
2963
3064
  /** @public @react */
2964
3065
  export declare function TldrawUiMenuToolItem({ toolId, ...rest }: TLUiMenuToolItemProps): JSX_2.Element | null;
2965
3066
 
3067
+ /** @public */
3068
+ export declare interface TldrawUiOrientationContext {
3069
+ orientation: 'horizontal' | 'vertical';
3070
+ tooltipSide: 'bottom' | 'left' | 'right' | 'top';
3071
+ }
3072
+
2966
3073
  /** @public @react */
2967
- export declare function TldrawUiPopover({ id, children, onOpenChange, open }: TLUiPopoverProps): JSX_2.Element;
3074
+ export declare function TldrawUiOrientationProvider({ children, orientation, tooltipSide, }: TldrawUiOrientationProviderProps): JSX_2.Element;
3075
+
3076
+ /** @public */
3077
+ export declare interface TldrawUiOrientationProviderProps {
3078
+ children: ReactNode;
3079
+ orientation: 'horizontal' | 'vertical';
3080
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3081
+ }
3082
+
3083
+ /** @public @react */
3084
+ export declare function TldrawUiPopover({ id, children, onOpenChange, open, className }: TLUiPopoverProps): JSX_2.Element;
2968
3085
 
2969
3086
  /** @public @react */
2970
3087
  export declare function TldrawUiPopoverContent({ side, children, align, sideOffset, alignOffset, disableEscapeKeyDown, autoFocusFirstButton, }: TLUiPopoverContentProps): JSX_2.Element;
@@ -2994,6 +3111,13 @@ export declare interface TldrawUiProps extends TLUiContextProviderProps {
2994
3111
  assetUrls?: TLUiAssetUrlOverrides;
2995
3112
  }
2996
3113
 
3114
+ /**
3115
+ * A row, usually of UI controls like buttons, select dropdown, checkboxes, etc.
3116
+ *
3117
+ * @public @react
3118
+ */
3119
+ export declare const TldrawUiRow: ForwardRefExoticComponent<TLUiLayoutProps & RefAttributes<HTMLDivElement>>;
3120
+
2997
3121
  /** @public @react */
2998
3122
  export declare const TldrawUiSlider: React_3.ForwardRefExoticComponent<TLUiSliderProps & React_3.RefAttributes<HTMLDivElement>>;
2999
3123
 
@@ -3010,7 +3134,27 @@ export declare const TldrawUiToolbarButton: React_3.ForwardRefExoticComponent<TL
3010
3134
  export declare const TldrawUiToolbarToggleGroup: ({ children, className, type, ...props }: TLUiToolbarToggleGroupProps) => JSX_2.Element;
3011
3135
 
3012
3136
  /** @public @react */
3013
- export declare const TldrawUiToolbarToggleItem: ({ children, className, type, value, ...props }: TLUiToolbarToggleItemProps) => JSX_2.Element;
3137
+ export declare const TldrawUiToolbarToggleItem: ({ children, className, type, value, tooltip, ...props }: TLUiToolbarToggleItemProps) => JSX_2.Element;
3138
+
3139
+ /** @public @react */
3140
+ export declare const TldrawUiTooltip: React_3.ForwardRefExoticComponent<TldrawUiTooltipProps & React_3.RefAttributes<HTMLButtonElement>>;
3141
+
3142
+ /** @public */
3143
+ export declare interface TldrawUiTooltipProps {
3144
+ children: React_3.ReactNode;
3145
+ content?: React_3.ReactNode | string;
3146
+ side?: 'bottom' | 'left' | 'right' | 'top';
3147
+ sideOffset?: number;
3148
+ disabled?: boolean;
3149
+ }
3150
+
3151
+ /** @public @react */
3152
+ export declare function TldrawUiTooltipProvider({ children }: TldrawUiTooltipProviderProps): JSX_2.Element;
3153
+
3154
+ /** @public */
3155
+ export declare interface TldrawUiTooltipProviderProps {
3156
+ children: React_3.ReactNode;
3157
+ }
3014
3158
 
3015
3159
  /* Excluded from this release type: TldrawUiTranslationProvider */
3016
3160
 
@@ -3476,8 +3620,12 @@ export declare interface TLUiEventMap {
3476
3620
  'delete-shapes': null;
3477
3621
  'select-all-shapes': null;
3478
3622
  'select-none-shapes': null;
3479
- 'rotate-ccw': null;
3480
- 'rotate-cw': null;
3623
+ 'rotate-ccw': {
3624
+ fine: boolean;
3625
+ };
3626
+ 'rotate-cw': {
3627
+ fine: boolean;
3628
+ };
3481
3629
  'zoom-in': {
3482
3630
  towardsCursor: boolean;
3483
3631
  };
@@ -3521,6 +3669,7 @@ export declare interface TLUiEventMap {
3521
3669
  'toggle-lock': null;
3522
3670
  'toggle-reduce-motion': null;
3523
3671
  'toggle-keyboard-shortcuts': null;
3672
+ 'toggle-ui-labels': null;
3524
3673
  'toggle-edge-scrolling': null;
3525
3674
  'color-scheme': {
3526
3675
  value: string;
@@ -3543,6 +3692,9 @@ export declare interface TLUiEventMap {
3543
3692
  'open-context-menu': null;
3544
3693
  'adjust-shape-styles': null;
3545
3694
  'copy-link': null;
3695
+ 'drag-tool': {
3696
+ id: string;
3697
+ };
3546
3698
  'image-replace': null;
3547
3699
  'video-replace': null;
3548
3700
  'open-kbd-shortcuts': null;
@@ -3629,6 +3781,13 @@ export declare type TLUiKeyboardShortcutsDialogProps = TLUiDialogProps & {
3629
3781
  children?: ReactNode;
3630
3782
  };
3631
3783
 
3784
+ /** @public */
3785
+ export declare interface TLUiLayoutProps extends HTMLAttributes<HTMLDivElement> {
3786
+ children: ReactNode;
3787
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3788
+ asChild?: boolean;
3789
+ }
3790
+
3632
3791
  /** @public */
3633
3792
  export declare interface TLUiMainMenuProps {
3634
3793
  children?: ReactNode;
@@ -3668,7 +3827,7 @@ export declare interface TLUiMenuContextProviderProps {
3668
3827
  }
3669
3828
 
3670
3829
  /** @public */
3671
- export declare type TLUiMenuContextType = 'context-menu' | 'helper-buttons' | 'icons' | 'keyboard-shortcuts' | 'menu' | 'panel' | 'small-icons' | 'toolbar-overflow' | 'toolbar';
3830
+ export declare type TLUiMenuContextType = 'context-menu' | 'helper-buttons' | 'icons' | 'keyboard-shortcuts' | 'menu' | 'small-icons' | 'toolbar-overflow' | 'toolbar';
3672
3831
 
3673
3832
  /** @public */
3674
3833
  export declare interface TLUiMenuGroupProps<TranslationKey extends string = string> {
@@ -3728,6 +3887,10 @@ export declare interface TLUiMenuItemProps<TranslationKey extends string = strin
3728
3887
  * Whether the item is selected.
3729
3888
  */
3730
3889
  isSelected?: boolean;
3890
+ /**
3891
+ * The function to call when the item is dragged. If this is provided, the item will be draggable.
3892
+ */
3893
+ onDragStart?(source: TLUiEventSource, info: TLPointerEventInfo): void;
3731
3894
  }
3732
3895
 
3733
3896
  /** @public */
@@ -3773,6 +3936,7 @@ export declare interface TLUiPopoverProps {
3773
3936
  open?: boolean;
3774
3937
  children: React_3.ReactNode;
3775
3938
  onOpenChange?(isOpen: boolean): void;
3939
+ className?: string;
3776
3940
  }
3777
3941
 
3778
3942
  /** @public */
@@ -3858,6 +4022,7 @@ export declare interface TLUiToolbarButtonProps extends React_3.HTMLAttributes<H
3858
4022
  disabled?: boolean;
3859
4023
  isActive?: boolean;
3860
4024
  type: 'icon' | 'menu' | 'tool';
4025
+ tooltip?: string;
3861
4026
  }
3862
4027
 
3863
4028
  /** @public */
@@ -3866,6 +4031,8 @@ export declare interface TLUiToolbarProps extends React_3.HTMLAttributes<HTMLDiv
3866
4031
  className?: string;
3867
4032
  dir?: 'ltr' | 'rtl';
3868
4033
  label: string;
4034
+ orientation?: 'grid' | 'horizontal' | 'vertical';
4035
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3869
4036
  }
3870
4037
 
3871
4038
  /** @public */
@@ -3884,6 +4051,7 @@ export declare interface TLUiToolbarToggleItemProps extends React_3.HTMLAttribut
3884
4051
  className?: string;
3885
4052
  type: 'icon' | 'tool';
3886
4053
  value: string;
4054
+ tooltip?: string;
3887
4055
  }
3888
4056
 
3889
4057
  /** @public */
@@ -3893,6 +4061,7 @@ export declare interface TLUiToolItem<TranslationKey extends string = string, Ic
3893
4061
  shortcutsLabel?: TranslationKey;
3894
4062
  icon: IconType | TLUiIconJsx;
3895
4063
  onSelect(source: TLUiEventSource): void;
4064
+ onDragStart?(source: TLUiEventSource, info: TLPointerEventInfo): void;
3896
4065
  /**
3897
4066
  * The keyboard shortcut for this tool. This is a string that can be a single key,
3898
4067
  * or a combination of keys.
@@ -3928,7 +4097,7 @@ export declare interface TLUiTranslation {
3928
4097
  export declare type TLUiTranslationContextType = TLUiTranslation;
3929
4098
 
3930
4099
  /** @public */
3931
- export declare type TLUiTranslationKey = 'a11y.adjust-shape-styles' | 'a11y.enlarge-shape' | 'a11y.enter-leave-container' | 'a11y.move-shape-faster' | 'a11y.move-shape' | 'a11y.multiple-shapes' | 'a11y.open-context-menu' | 'a11y.open-keyboard-shortcuts' | 'a11y.pan-camera' | 'a11y.repeat-shape' | 'a11y.select-shape-direction' | 'a11y.select-shape' | 'a11y.shape-image' | 'a11y.shape-index' | 'a11y.shape-video' | 'a11y.shrink-shape' | 'a11y.skip-to-main-content' | 'a11y.status' | 'action.align-bottom' | 'action.align-center-horizontal.short' | 'action.align-center-horizontal' | 'action.align-center-vertical.short' | 'action.align-center-vertical' | 'action.align-left' | 'action.align-right' | 'action.align-top' | 'action.back-to-content' | 'action.bring-forward' | 'action.bring-to-front' | 'action.convert-to-bookmark' | 'action.convert-to-embed' | 'action.copy-as-png.short' | 'action.copy-as-png' | 'action.copy-as-svg.short' | 'action.copy-as-svg' | 'action.copy' | 'action.cut' | 'action.delete' | 'action.distribute-horizontal.short' | 'action.distribute-horizontal' | 'action.distribute-vertical.short' | 'action.distribute-vertical' | 'action.download-original' | 'action.duplicate' | 'action.edit-link' | 'action.exit-pen-mode' | 'action.export-all-as-png.short' | 'action.export-all-as-png' | 'action.export-all-as-svg.short' | 'action.export-all-as-svg' | 'action.export-as-png.short' | 'action.export-as-png' | 'action.export-as-svg.short' | 'action.export-as-svg' | 'action.fit-frame-to-content' | 'action.flatten-to-image' | 'action.flip-horizontal.short' | 'action.flip-horizontal' | 'action.flip-vertical.short' | 'action.flip-vertical' | 'action.fork-project-on-tldraw' | 'action.fork-project' | 'action.group' | 'action.insert-embed' | 'action.insert-media' | 'action.leave-shared-project' | 'action.new-project' | 'action.new-shared-project' | 'action.open-cursor-chat' | 'action.open-embed-link' | 'action.open-file' | 'action.open-kbd-shortcuts' | 'action.pack' | 'action.paste-error-description' | 'action.paste-error-title' | 'action.paste' | 'action.print' | 'action.redo' | 'action.remove-frame' | 'action.rename' | 'action.rotate-ccw' | 'action.rotate-cw' | 'action.save-copy' | 'action.select-all' | 'action.select-none' | 'action.send-backward' | 'action.send-to-back' | 'action.share-project' | 'action.stack-horizontal.short' | 'action.stack-horizontal' | 'action.stack-vertical.short' | 'action.stack-vertical' | 'action.stop-following' | 'action.stretch-horizontal.short' | 'action.stretch-horizontal' | 'action.stretch-vertical.short' | 'action.stretch-vertical' | 'action.toggle-auto-size' | 'action.toggle-dark-mode.menu' | 'action.toggle-dark-mode' | 'action.toggle-debug-mode.menu' | 'action.toggle-debug-mode' | 'action.toggle-dynamic-size-mode.menu' | 'action.toggle-dynamic-size-mode' | 'action.toggle-edge-scrolling.menu' | 'action.toggle-edge-scrolling' | 'action.toggle-focus-mode.menu' | 'action.toggle-focus-mode' | 'action.toggle-grid.menu' | 'action.toggle-grid' | 'action.toggle-keyboard-shortcuts.menu' | 'action.toggle-keyboard-shortcuts' | 'action.toggle-lock' | 'action.toggle-paste-at-cursor.menu' | 'action.toggle-paste-at-cursor' | 'action.toggle-reduce-motion.menu' | 'action.toggle-reduce-motion' | 'action.toggle-snap-mode.menu' | 'action.toggle-snap-mode' | 'action.toggle-tool-lock.menu' | 'action.toggle-tool-lock' | 'action.toggle-transparent.context-menu' | 'action.toggle-transparent.menu' | 'action.toggle-transparent' | 'action.toggle-wrap-mode.menu' | 'action.toggle-wrap-mode' | 'action.undo' | 'action.ungroup' | 'action.unlock-all' | 'action.zoom-in' | 'action.zoom-out' | 'action.zoom-to-100' | 'action.zoom-to-fit' | 'action.zoom-to-selection' | 'actions-menu.title' | 'align-style.end' | 'align-style.justify' | 'align-style.middle' | 'align-style.start' | 'app.loading' | 'arrow-kind-style.arc' | 'arrow-kind-style.elbow' | 'arrowheadEnd-style.arrow' | 'arrowheadEnd-style.bar' | 'arrowheadEnd-style.diamond' | 'arrowheadEnd-style.dot' | 'arrowheadEnd-style.inverted' | 'arrowheadEnd-style.none' | 'arrowheadEnd-style.pipe' | 'arrowheadEnd-style.square' | 'arrowheadEnd-style.triangle' | 'arrowheadStart-style.arrow' | 'arrowheadStart-style.bar' | 'arrowheadStart-style.diamond' | 'arrowheadStart-style.dot' | 'arrowheadStart-style.inverted' | 'arrowheadStart-style.none' | 'arrowheadStart-style.pipe' | 'arrowheadStart-style.square' | 'arrowheadStart-style.triangle' | 'assets.files.amount-too-many' | 'assets.files.size-too-big' | 'assets.files.type-not-allowed' | 'assets.files.upload-failed' | 'assets.url.failed' | 'color-style.black' | 'color-style.blue' | 'color-style.green' | 'color-style.grey' | 'color-style.light-blue' | 'color-style.light-green' | 'color-style.light-red' | 'color-style.light-violet' | 'color-style.orange' | 'color-style.red' | 'color-style.violet' | 'color-style.white' | 'color-style.yellow' | 'context-menu.arrange' | 'context-menu.copy-as' | 'context-menu.edit' | 'context-menu.export-all-as' | 'context-menu.export-as' | 'context-menu.move-to-page' | 'context-menu.reorder' | 'context-menu.title' | 'context.pages.new-page' | 'cursor-chat.type-to-chat' | 'dash-style.dashed' | 'dash-style.dotted' | 'dash-style.draw' | 'dash-style.solid' | 'document-name-menu.copy-link' | 'document.default-name' | 'edit-link-dialog.cancel' | 'edit-link-dialog.clear' | 'edit-link-dialog.detail' | 'edit-link-dialog.external-link' | 'edit-link-dialog.invalid-url' | 'edit-link-dialog.save' | 'edit-link-dialog.title' | 'edit-link-dialog.url' | 'embed-dialog.back' | 'embed-dialog.cancel' | 'embed-dialog.create' | 'embed-dialog.instruction' | 'embed-dialog.invalid-url' | 'embed-dialog.title' | 'embed-dialog.url' | 'file-system.confirm-clear.cancel' | 'file-system.confirm-clear.continue' | 'file-system.confirm-clear.description' | 'file-system.confirm-clear.dont-show-again' | 'file-system.confirm-clear.title' | 'file-system.confirm-open.cancel' | 'file-system.confirm-open.description' | 'file-system.confirm-open.dont-show-again' | 'file-system.confirm-open.open' | 'file-system.confirm-open.title' | 'file-system.file-open-error.file-format-version-too-new' | 'file-system.file-open-error.generic-corrupted-file' | 'file-system.file-open-error.not-a-tldraw-file' | 'file-system.file-open-error.title' | 'file-system.shared-document-file-open-error.description' | 'file-system.shared-document-file-open-error.title' | 'fill-style.fill' | 'fill-style.none' | 'fill-style.pattern' | 'fill-style.semi' | 'fill-style.solid' | 'focus-mode.toggle-focus-mode' | 'font-style.draw' | 'font-style.mono' | 'font-style.sans' | 'font-style.serif' | 'geo-style.arrow-down' | 'geo-style.arrow-left' | 'geo-style.arrow-right' | 'geo-style.arrow-up' | 'geo-style.check-box' | 'geo-style.cloud' | 'geo-style.diamond' | 'geo-style.ellipse' | 'geo-style.heart' | 'geo-style.hexagon' | 'geo-style.octagon' | 'geo-style.oval' | 'geo-style.pentagon' | 'geo-style.rectangle' | 'geo-style.rhombus' | 'geo-style.star' | 'geo-style.trapezoid' | 'geo-style.triangle' | 'geo-style.x-box' | 'handle.crop.bottom-left' | 'handle.crop.bottom-right' | 'handle.crop.bottom' | 'handle.crop.left' | 'handle.crop.right' | 'handle.crop.top-left' | 'handle.crop.top-right' | 'handle.crop.top' | 'handle.resize-bottom-left' | 'handle.resize-bottom-right' | 'handle.resize-bottom' | 'handle.resize-left' | 'handle.resize-right' | 'handle.resize-top-left' | 'handle.resize-top-right' | 'handle.resize-top' | 'handle.rotate.bottom_left_rotate' | 'handle.rotate.bottom_right_rotate' | 'handle.rotate.mobile_rotate' | 'handle.rotate.top_left_rotate' | 'handle.rotate.top_right_rotate' | 'help-menu.about' | 'help-menu.discord' | 'help-menu.github' | 'help-menu.import-tldr-file' | 'help-menu.keyboard-shortcuts' | 'help-menu.privacy' | 'help-menu.terms' | 'help-menu.title' | 'help-menu.twitter' | 'menu.copy-as' | 'menu.edit' | 'menu.export-as' | 'menu.file' | 'menu.language' | 'menu.preferences' | 'menu.theme' | 'menu.title' | 'menu.view' | 'navigation-zone.minimap' | 'navigation-zone.title' | 'navigation-zone.toggle-minimap' | 'navigation-zone.zoom' | 'opacity-style.0.1' | 'opacity-style.0.25' | 'opacity-style.0.5' | 'opacity-style.0.75' | 'opacity-style.1' | 'page-menu.create-new-page' | 'page-menu.edit-done' | 'page-menu.edit-start' | 'page-menu.go-to-page' | 'page-menu.max-page-count-reached' | 'page-menu.new-page-initial-name' | 'page-menu.submenu.delete' | 'page-menu.submenu.duplicate-page' | 'page-menu.submenu.move-down' | 'page-menu.submenu.move-up' | 'page-menu.submenu.rename' | 'page-menu.submenu.title' | 'page-menu.title' | 'people-menu.anonymous-user' | 'people-menu.avatar-color' | 'people-menu.change-color' | 'people-menu.change-name' | 'people-menu.follow' | 'people-menu.following' | 'people-menu.invite' | 'people-menu.leading' | 'people-menu.title' | 'people-menu.user' | 'share-menu.copied' | 'share-menu.copy-link-note' | 'share-menu.copy-link' | 'share-menu.copy-readonly-link-note' | 'share-menu.copy-readonly-link' | 'share-menu.create-snapshot-link' | 'share-menu.creating-project' | 'share-menu.fork-note' | 'share-menu.offline-note' | 'share-menu.project-too-large' | 'share-menu.save-note' | 'share-menu.share-project' | 'share-menu.snapshot-link-note' | 'share-menu.title' | 'share-menu.upload-failed' | 'sharing.confirm-leave.cancel' | 'sharing.confirm-leave.description' | 'sharing.confirm-leave.dont-show-again' | 'sharing.confirm-leave.leave' | 'sharing.confirm-leave.title' | 'shortcuts-dialog.a11y' | 'shortcuts-dialog.collaboration' | 'shortcuts-dialog.edit' | 'shortcuts-dialog.file' | 'shortcuts-dialog.preferences' | 'shortcuts-dialog.text-formatting' | 'shortcuts-dialog.title' | 'shortcuts-dialog.tools' | 'shortcuts-dialog.transform' | 'shortcuts-dialog.view' | 'size-style.l' | 'size-style.m' | 'size-style.s' | 'size-style.xl' | 'spline-style.cubic' | 'spline-style.line' | 'status.offline' | 'style-panel.align' | 'style-panel.arrow-kind' | 'style-panel.arrowhead-end' | 'style-panel.arrowhead-start' | 'style-panel.arrowheads' | 'style-panel.color' | 'style-panel.dash' | 'style-panel.fill' | 'style-panel.font' | 'style-panel.geo' | 'style-panel.label-align' | 'style-panel.mixed' | 'style-panel.opacity' | 'style-panel.position' | 'style-panel.size' | 'style-panel.spline' | 'style-panel.title' | 'style-panel.vertical-align' | 'theme.dark' | 'theme.light' | 'theme.system' | 'toast.close' | 'toast.error.copy-fail.desc' | 'toast.error.copy-fail.title' | 'toast.error.export-fail.desc' | 'toast.error.export-fail.title' | 'toast.error' | 'toast.info' | 'toast.success' | 'toast.warning' | 'tool-panel.more' | 'tool-panel.title' | 'tool.arrow-down' | 'tool.arrow-left' | 'tool.arrow-right' | 'tool.arrow-up' | 'tool.arrow' | 'tool.aspect-ratio.circle' | 'tool.aspect-ratio.landscape' | 'tool.aspect-ratio.original' | 'tool.aspect-ratio.portrait' | 'tool.aspect-ratio.square' | 'tool.aspect-ratio.wide' | 'tool.aspect-ratio' | 'tool.bookmark' | 'tool.check-box' | 'tool.cloud' | 'tool.diamond' | 'tool.draw' | 'tool.ellipse' | 'tool.embed' | 'tool.eraser' | 'tool.flip-horz' | 'tool.flip-vert' | 'tool.frame' | 'tool.hand' | 'tool.heart' | 'tool.hexagon' | 'tool.highlight' | 'tool.image-crop' | 'tool.image-toolbar-title' | 'tool.image-zoom' | 'tool.laser' | 'tool.line' | 'tool.media-alt-text-confirm' | 'tool.media-alt-text-desc' | 'tool.media-alt-text' | 'tool.media' | 'tool.note' | 'tool.octagon' | 'tool.oval' | 'tool.pentagon' | 'tool.pointer-down' | 'tool.rectangle' | 'tool.replace-media' | 'tool.rhombus' | 'tool.rich-text-bold' | 'tool.rich-text-bulletList' | 'tool.rich-text-code' | 'tool.rich-text-header' | 'tool.rich-text-highlight' | 'tool.rich-text-italic' | 'tool.rich-text-link-remove' | 'tool.rich-text-link-visit' | 'tool.rich-text-link' | 'tool.rich-text-orderedList' | 'tool.rich-text-strikethrough' | 'tool.rich-text-toolbar-title' | 'tool.rotate-cw' | 'tool.select' | 'tool.star' | 'tool.text' | 'tool.trapezoid' | 'tool.triangle' | 'tool.x-box' | 'ui.checked' | 'ui.close' | 'ui.unchecked' | 'verticalAlign-style.end' | 'verticalAlign-style.middle' | 'verticalAlign-style.start' | 'vscode.file-open.backup-failed' | 'vscode.file-open.backup-saved' | 'vscode.file-open.backup' | 'vscode.file-open.desc' | 'vscode.file-open.dont-show-again' | 'vscode.file-open.open';
4100
+ export declare type TLUiTranslationKey = 'a11y.adjust-shape-styles' | 'a11y.enlarge-shape' | 'a11y.enter-leave-container' | 'a11y.move-shape-faster' | 'a11y.move-shape' | 'a11y.multiple-shapes' | 'a11y.open-context-menu' | 'a11y.open-keyboard-shortcuts' | 'a11y.pan-camera' | 'a11y.repeat-shape' | 'a11y.rotate-shape-ccw-fine' | 'a11y.rotate-shape-ccw' | 'a11y.rotate-shape-cw-fine' | 'a11y.rotate-shape-cw' | 'a11y.select-shape-direction' | 'a11y.select-shape' | 'a11y.shape-image' | 'a11y.shape-index' | 'a11y.shape-video' | 'a11y.shrink-shape' | 'a11y.skip-to-main-content' | 'a11y.status' | 'action.align-bottom' | 'action.align-center-horizontal.short' | 'action.align-center-horizontal' | 'action.align-center-vertical.short' | 'action.align-center-vertical' | 'action.align-left' | 'action.align-right' | 'action.align-top' | 'action.back-to-content' | 'action.bring-forward' | 'action.bring-to-front' | 'action.convert-to-bookmark' | 'action.convert-to-embed' | 'action.copy-as-png.short' | 'action.copy-as-png' | 'action.copy-as-svg.short' | 'action.copy-as-svg' | 'action.copy' | 'action.cut' | 'action.delete' | 'action.distribute-horizontal.short' | 'action.distribute-horizontal' | 'action.distribute-vertical.short' | 'action.distribute-vertical' | 'action.download-original' | 'action.duplicate' | 'action.edit-link' | 'action.exit-pen-mode' | 'action.export-all-as-png.short' | 'action.export-all-as-png' | 'action.export-all-as-svg.short' | 'action.export-all-as-svg' | 'action.export-as-png.short' | 'action.export-as-png' | 'action.export-as-svg.short' | 'action.export-as-svg' | 'action.fit-frame-to-content' | 'action.flatten-to-image' | 'action.flip-horizontal.short' | 'action.flip-horizontal' | 'action.flip-vertical.short' | 'action.flip-vertical' | 'action.fork-project-on-tldraw' | 'action.fork-project' | 'action.group' | 'action.insert-embed' | 'action.insert-media' | 'action.leave-shared-project' | 'action.new-project' | 'action.new-shared-project' | 'action.open-cursor-chat' | 'action.open-embed-link' | 'action.open-file' | 'action.open-kbd-shortcuts' | 'action.pack' | 'action.paste-error-description' | 'action.paste-error-title' | 'action.paste' | 'action.print' | 'action.redo' | 'action.remove-frame' | 'action.rename' | 'action.rotate-ccw' | 'action.rotate-cw' | 'action.save-copy' | 'action.select-all' | 'action.select-none' | 'action.send-backward' | 'action.send-to-back' | 'action.share-project' | 'action.stack-horizontal.short' | 'action.stack-horizontal' | 'action.stack-vertical.short' | 'action.stack-vertical' | 'action.stop-following' | 'action.stretch-horizontal.short' | 'action.stretch-horizontal' | 'action.stretch-vertical.short' | 'action.stretch-vertical' | 'action.toggle-auto-size' | 'action.toggle-dark-mode.menu' | 'action.toggle-dark-mode' | 'action.toggle-debug-mode.menu' | 'action.toggle-debug-mode' | 'action.toggle-dynamic-size-mode.menu' | 'action.toggle-dynamic-size-mode' | 'action.toggle-edge-scrolling.menu' | 'action.toggle-edge-scrolling' | 'action.toggle-focus-mode.menu' | 'action.toggle-focus-mode' | 'action.toggle-grid.menu' | 'action.toggle-grid' | 'action.toggle-keyboard-shortcuts.menu' | 'action.toggle-keyboard-shortcuts' | 'action.toggle-lock' | 'action.toggle-paste-at-cursor.menu' | 'action.toggle-paste-at-cursor' | 'action.toggle-reduce-motion.menu' | 'action.toggle-reduce-motion' | 'action.toggle-snap-mode.menu' | 'action.toggle-snap-mode' | 'action.toggle-tool-lock.menu' | 'action.toggle-tool-lock' | 'action.toggle-transparent.context-menu' | 'action.toggle-transparent.menu' | 'action.toggle-transparent' | 'action.toggle-ui-labels.menu' | 'action.toggle-ui-labels' | 'action.toggle-wrap-mode.menu' | 'action.toggle-wrap-mode' | 'action.undo' | 'action.ungroup' | 'action.unlock-all' | 'action.zoom-in' | 'action.zoom-out' | 'action.zoom-to-100' | 'action.zoom-to-fit' | 'action.zoom-to-selection' | 'actions-menu.title' | 'align-style.end' | 'align-style.justify' | 'align-style.middle' | 'align-style.start' | 'app.loading' | 'arrow-kind-style.arc' | 'arrow-kind-style.elbow' | 'arrowheadEnd-style.arrow' | 'arrowheadEnd-style.bar' | 'arrowheadEnd-style.diamond' | 'arrowheadEnd-style.dot' | 'arrowheadEnd-style.inverted' | 'arrowheadEnd-style.none' | 'arrowheadEnd-style.pipe' | 'arrowheadEnd-style.square' | 'arrowheadEnd-style.triangle' | 'arrowheadStart-style.arrow' | 'arrowheadStart-style.bar' | 'arrowheadStart-style.diamond' | 'arrowheadStart-style.dot' | 'arrowheadStart-style.inverted' | 'arrowheadStart-style.none' | 'arrowheadStart-style.pipe' | 'arrowheadStart-style.square' | 'arrowheadStart-style.triangle' | 'assets.files.amount-too-many' | 'assets.files.size-too-big' | 'assets.files.type-not-allowed' | 'assets.files.upload-failed' | 'assets.url.failed' | 'color-style.black' | 'color-style.blue' | 'color-style.green' | 'color-style.grey' | 'color-style.light-blue' | 'color-style.light-green' | 'color-style.light-red' | 'color-style.light-violet' | 'color-style.orange' | 'color-style.red' | 'color-style.violet' | 'color-style.white' | 'color-style.yellow' | 'context-menu.arrange' | 'context-menu.copy-as' | 'context-menu.edit' | 'context-menu.export-all-as' | 'context-menu.export-as' | 'context-menu.move-to-page' | 'context-menu.reorder' | 'context-menu.title' | 'context.pages.new-page' | 'cursor-chat.type-to-chat' | 'dash-style.dashed' | 'dash-style.dotted' | 'dash-style.draw' | 'dash-style.solid' | 'document-name-menu.copy-link' | 'document.default-name' | 'edit-link-dialog.cancel' | 'edit-link-dialog.clear' | 'edit-link-dialog.detail' | 'edit-link-dialog.external-link' | 'edit-link-dialog.invalid-url' | 'edit-link-dialog.save' | 'edit-link-dialog.title' | 'edit-link-dialog.url' | 'embed-dialog.back' | 'embed-dialog.cancel' | 'embed-dialog.create' | 'embed-dialog.instruction' | 'embed-dialog.invalid-url' | 'embed-dialog.title' | 'embed-dialog.url' | 'file-system.confirm-clear.cancel' | 'file-system.confirm-clear.continue' | 'file-system.confirm-clear.description' | 'file-system.confirm-clear.dont-show-again' | 'file-system.confirm-clear.title' | 'file-system.confirm-open.cancel' | 'file-system.confirm-open.description' | 'file-system.confirm-open.dont-show-again' | 'file-system.confirm-open.open' | 'file-system.confirm-open.title' | 'file-system.file-open-error.file-format-version-too-new' | 'file-system.file-open-error.generic-corrupted-file' | 'file-system.file-open-error.not-a-tldraw-file' | 'file-system.file-open-error.title' | 'file-system.shared-document-file-open-error.description' | 'file-system.shared-document-file-open-error.title' | 'fill-style.fill' | 'fill-style.none' | 'fill-style.pattern' | 'fill-style.semi' | 'fill-style.solid' | 'focus-mode.toggle-focus-mode' | 'font-style.draw' | 'font-style.mono' | 'font-style.sans' | 'font-style.serif' | 'geo-style.arrow-down' | 'geo-style.arrow-left' | 'geo-style.arrow-right' | 'geo-style.arrow-up' | 'geo-style.check-box' | 'geo-style.cloud' | 'geo-style.diamond' | 'geo-style.ellipse' | 'geo-style.heart' | 'geo-style.hexagon' | 'geo-style.octagon' | 'geo-style.oval' | 'geo-style.pentagon' | 'geo-style.rectangle' | 'geo-style.rhombus' | 'geo-style.star' | 'geo-style.trapezoid' | 'geo-style.triangle' | 'geo-style.x-box' | 'handle.crop.bottom-left' | 'handle.crop.bottom-right' | 'handle.crop.bottom' | 'handle.crop.left' | 'handle.crop.right' | 'handle.crop.top-left' | 'handle.crop.top-right' | 'handle.crop.top' | 'handle.resize-bottom-left' | 'handle.resize-bottom-right' | 'handle.resize-bottom' | 'handle.resize-left' | 'handle.resize-right' | 'handle.resize-top-left' | 'handle.resize-top-right' | 'handle.resize-top' | 'handle.rotate.bottom_left_rotate' | 'handle.rotate.bottom_right_rotate' | 'handle.rotate.mobile_rotate' | 'handle.rotate.top_left_rotate' | 'handle.rotate.top_right_rotate' | 'help-menu.about' | 'help-menu.discord' | 'help-menu.github' | 'help-menu.import-tldr-file' | 'help-menu.keyboard-shortcuts' | 'help-menu.privacy' | 'help-menu.terms' | 'help-menu.title' | 'help-menu.twitter' | 'menu.accessibility' | 'menu.copy-as' | 'menu.edit' | 'menu.export-as' | 'menu.file' | 'menu.language' | 'menu.preferences' | 'menu.theme' | 'menu.title' | 'menu.view' | 'navigation-zone.minimap' | 'navigation-zone.title' | 'navigation-zone.toggle-minimap' | 'navigation-zone.zoom' | 'opacity-style.0.1' | 'opacity-style.0.25' | 'opacity-style.0.5' | 'opacity-style.0.75' | 'opacity-style.1' | 'page-menu.create-new-page' | 'page-menu.edit-done' | 'page-menu.edit-start' | 'page-menu.go-to-page' | 'page-menu.max-page-count-reached' | 'page-menu.new-page-initial-name' | 'page-menu.submenu.delete' | 'page-menu.submenu.duplicate-page' | 'page-menu.submenu.move-down' | 'page-menu.submenu.move-up' | 'page-menu.submenu.rename' | 'page-menu.submenu.title' | 'page-menu.title' | 'people-menu.anonymous-user' | 'people-menu.avatar-color' | 'people-menu.change-color' | 'people-menu.change-name' | 'people-menu.follow' | 'people-menu.following' | 'people-menu.invite' | 'people-menu.leading' | 'people-menu.title' | 'people-menu.user' | 'share-menu.copied' | 'share-menu.copy-link-note' | 'share-menu.copy-link' | 'share-menu.copy-readonly-link-note' | 'share-menu.copy-readonly-link' | 'share-menu.create-snapshot-link' | 'share-menu.creating-project' | 'share-menu.fork-note' | 'share-menu.offline-note' | 'share-menu.project-too-large' | 'share-menu.save-note' | 'share-menu.share-project' | 'share-menu.snapshot-link-note' | 'share-menu.title' | 'share-menu.upload-failed' | 'sharing.confirm-leave.cancel' | 'sharing.confirm-leave.description' | 'sharing.confirm-leave.dont-show-again' | 'sharing.confirm-leave.leave' | 'sharing.confirm-leave.title' | 'shortcuts-dialog.a11y' | 'shortcuts-dialog.collaboration' | 'shortcuts-dialog.edit' | 'shortcuts-dialog.file' | 'shortcuts-dialog.preferences' | 'shortcuts-dialog.text-formatting' | 'shortcuts-dialog.title' | 'shortcuts-dialog.tools' | 'shortcuts-dialog.transform' | 'shortcuts-dialog.view' | 'size-style.l' | 'size-style.m' | 'size-style.s' | 'size-style.xl' | 'spline-style.cubic' | 'spline-style.line' | 'status.offline' | 'style-panel.align' | 'style-panel.arrow-kind' | 'style-panel.arrowhead-end' | 'style-panel.arrowhead-start' | 'style-panel.arrowheads' | 'style-panel.color' | 'style-panel.dash' | 'style-panel.fill' | 'style-panel.font' | 'style-panel.geo' | 'style-panel.label-align' | 'style-panel.mixed' | 'style-panel.opacity' | 'style-panel.position' | 'style-panel.size' | 'style-panel.spline' | 'style-panel.title' | 'style-panel.vertical-align' | 'theme.dark' | 'theme.light' | 'theme.system' | 'toast.close' | 'toast.error.copy-fail.desc' | 'toast.error.copy-fail.title' | 'toast.error.export-fail.desc' | 'toast.error.export-fail.title' | 'toast.error' | 'toast.info' | 'toast.success' | 'toast.warning' | 'tool-panel.more' | 'tool-panel.title' | 'tool.arrow-down' | 'tool.arrow-left' | 'tool.arrow-right' | 'tool.arrow-up' | 'tool.arrow' | 'tool.aspect-ratio.circle' | 'tool.aspect-ratio.landscape' | 'tool.aspect-ratio.original' | 'tool.aspect-ratio.portrait' | 'tool.aspect-ratio.square' | 'tool.aspect-ratio.wide' | 'tool.aspect-ratio' | 'tool.bookmark' | 'tool.check-box' | 'tool.cloud' | 'tool.diamond' | 'tool.draw' | 'tool.ellipse' | 'tool.embed' | 'tool.eraser' | 'tool.flip-horz' | 'tool.flip-vert' | 'tool.frame' | 'tool.hand' | 'tool.heart' | 'tool.hexagon' | 'tool.highlight' | 'tool.image-crop' | 'tool.image-toolbar-title' | 'tool.image-zoom' | 'tool.laser' | 'tool.line' | 'tool.media-alt-text-confirm' | 'tool.media-alt-text-desc' | 'tool.media-alt-text' | 'tool.media' | 'tool.note' | 'tool.octagon' | 'tool.oval' | 'tool.pentagon' | 'tool.pointer-down' | 'tool.rectangle' | 'tool.replace-media' | 'tool.rhombus' | 'tool.rich-text-bold' | 'tool.rich-text-bulletList' | 'tool.rich-text-code' | 'tool.rich-text-header' | 'tool.rich-text-highlight' | 'tool.rich-text-italic' | 'tool.rich-text-link-remove' | 'tool.rich-text-link-visit' | 'tool.rich-text-link' | 'tool.rich-text-orderedList' | 'tool.rich-text-strikethrough' | 'tool.rich-text-toolbar-title' | 'tool.rotate-cw' | 'tool.select' | 'tool.star' | 'tool.text' | 'tool.trapezoid' | 'tool.triangle' | 'tool.x-box' | 'ui.checked' | 'ui.close' | 'ui.unchecked' | 'verticalAlign-style.end' | 'verticalAlign-style.middle' | 'verticalAlign-style.start' | 'vscode.file-open.backup-failed' | 'vscode.file-open.backup-saved' | 'vscode.file-open.backup' | 'vscode.file-open.desc' | 'vscode.file-open.dont-show-again' | 'vscode.file-open.open';
3932
4101
 
3933
4102
  /** @public */
3934
4103
  export declare interface TLUiTranslationProviderProps {
@@ -4055,12 +4224,23 @@ export declare function ToggleReduceMotionItem(): JSX_2.Element;
4055
4224
  /** @public @react */
4056
4225
  export declare function ToggleSnapModeItem(): JSX_2.Element;
4057
4226
 
4227
+ /** @public @react */
4228
+ export declare function ToggleToolLockedButton({ activeToolId }: ToggleToolLockedButtonProps): JSX_2.Element | null;
4229
+
4230
+ /** @public */
4231
+ export declare interface ToggleToolLockedButtonProps {
4232
+ activeToolId?: string;
4233
+ }
4234
+
4058
4235
  /** @public @react */
4059
4236
  export declare function ToggleToolLockItem(): JSX_2.Element;
4060
4237
 
4061
4238
  /** @public @react */
4062
4239
  export declare function ToggleTransparentBgMenuItem(): JSX_2.Element;
4063
4240
 
4241
+ /** @public @react */
4242
+ export declare function ToggleUiLabelsItem(): JSX_2.Element;
4243
+
4064
4244
  /** @public @react */
4065
4245
  export declare function ToggleWrapModeItem(): JSX_2.Element;
4066
4246
 
@@ -4294,6 +4474,9 @@ export declare function useShowCollaborationUi(): boolean;
4294
4474
  /** @public */
4295
4475
  export declare function useTldrawUiComponents(): TLUiComponents;
4296
4476
 
4477
+ /** @public */
4478
+ export declare function useTldrawUiOrientation(): TldrawUiOrientationContext;
4479
+
4297
4480
  /** @public */
4298
4481
  export declare function useToasts(): TLUiToastsContextType;
4299
4482
 
@@ -4317,6 +4500,12 @@ export declare function useTranslation(): (id?: Exclude<string, TLUiTranslationK
4317
4500
  /** @public */
4318
4501
  export declare function useUiEvents(): TLUiEventContextType;
4319
4502
 
4503
+ /**
4504
+ * Returns true if the number of UNLOCKED selected shapes is at least min or at most max.
4505
+ * @public
4506
+ */
4507
+ export declare function useUnlockedSelectedShapesCount(min?: number, max?: number): boolean | number;
4508
+
4320
4509
  /** @public */
4321
4510
  export declare interface VideoShapeOptions {
4322
4511
  /**
package/dist-cjs/index.js CHANGED
@@ -22,6 +22,7 @@ __export(index_exports, {
22
22
  ARROW_LABEL_FONT_SIZES: () => import_default_shape_constants.ARROW_LABEL_FONT_SIZES,
23
23
  ASPECT_RATIO_OPTIONS: () => import_crop.ASPECT_RATIO_OPTIONS,
24
24
  ASPECT_RATIO_TO_VALUE: () => import_crop.ASPECT_RATIO_TO_VALUE,
25
+ AccessibilityMenu: () => import_AccessibilityMenu.AccessibilityMenu,
25
26
  AlignMenuItems: () => import_DefaultActionsMenuContent.AlignMenuItems,
26
27
  ArrangeMenuSubmenu: () => import_menu_items.ArrangeMenuSubmenu,
27
28
  ArrowBindingUtil: () => import_ArrowBindingUtil.ArrowBindingUtil,
@@ -139,6 +140,7 @@ __export(index_exports, {
139
140
  LineShapeTool: () => import_LineShapeTool.LineShapeTool,
140
141
  LineShapeUtil: () => import_LineShapeUtil.LineShapeUtil,
141
142
  LineToolbarItem: () => import_DefaultToolbarContent.LineToolbarItem,
143
+ LockGroup: () => import_DefaultMainMenuContent.LockGroup,
142
144
  MiscMenuGroup: () => import_DefaultMainMenuContent.MiscMenuGroup,
143
145
  MobileStylePanel: () => import_MobileStylePanel.MobileStylePanel,
144
146
  MoveToPageMenu: () => import_menu_items.MoveToPageMenu,
@@ -195,6 +197,7 @@ __export(index_exports, {
195
197
  TextToolbarItem: () => import_DefaultToolbarContent.TextToolbarItem,
196
198
  Tldraw: () => import_Tldraw.Tldraw,
197
199
  TldrawArrowHints: () => import_TldrawOverlays.TldrawArrowHints,
200
+ TldrawCropHandles: () => import_TldrawCropHandles.TldrawCropHandles,
198
201
  TldrawHandles: () => import_TldrawHandles.TldrawHandles,
199
202
  TldrawImage: () => import_TldrawImage.TldrawImage,
200
203
  TldrawOverlays: () => import_TldrawOverlays.TldrawOverlays,
@@ -208,6 +211,7 @@ __export(index_exports, {
208
211
  TldrawUiButtonIcon: () => import_TldrawUiButtonIcon.TldrawUiButtonIcon,
209
212
  TldrawUiButtonLabel: () => import_TldrawUiButtonLabel.TldrawUiButtonLabel,
210
213
  TldrawUiButtonPicker: () => import_TldrawUiButtonPicker.TldrawUiButtonPicker,
214
+ TldrawUiColumn: () => import_layout.TldrawUiColumn,
211
215
  TldrawUiComponentsProvider: () => import_components.TldrawUiComponentsProvider,
212
216
  TldrawUiContextProvider: () => import_TldrawUiContextProvider.TldrawUiContextProvider,
213
217
  TldrawUiContextualToolbar: () => import_TldrawUiContextualToolbar.TldrawUiContextualToolbar,
@@ -227,6 +231,7 @@ __export(index_exports, {
227
231
  TldrawUiDropdownMenuSubTrigger: () => import_TldrawUiDropdownMenu.TldrawUiDropdownMenuSubTrigger,
228
232
  TldrawUiDropdownMenuTrigger: () => import_TldrawUiDropdownMenu.TldrawUiDropdownMenuTrigger,
229
233
  TldrawUiEventsProvider: () => import_events.TldrawUiEventsProvider,
234
+ TldrawUiGrid: () => import_layout.TldrawUiGrid,
230
235
  TldrawUiIcon: () => import_TldrawUiIcon.TldrawUiIcon,
231
236
  TldrawUiInput: () => import_TldrawUiInput.TldrawUiInput,
232
237
  TldrawUiKbd: () => import_TldrawUiKbd.TldrawUiKbd,
@@ -238,15 +243,19 @@ __export(index_exports, {
238
243
  TldrawUiMenuItem: () => import_TldrawUiMenuItem.TldrawUiMenuItem,
239
244
  TldrawUiMenuSubmenu: () => import_TldrawUiMenuSubmenu.TldrawUiMenuSubmenu,
240
245
  TldrawUiMenuToolItem: () => import_TldrawUiMenuToolItem.TldrawUiMenuToolItem,
246
+ TldrawUiOrientationProvider: () => import_layout.TldrawUiOrientationProvider,
241
247
  TldrawUiPopover: () => import_TldrawUiPopover.TldrawUiPopover,
242
248
  TldrawUiPopoverContent: () => import_TldrawUiPopover.TldrawUiPopoverContent,
243
249
  TldrawUiPopoverTrigger: () => import_TldrawUiPopover.TldrawUiPopoverTrigger,
250
+ TldrawUiRow: () => import_layout.TldrawUiRow,
244
251
  TldrawUiSlider: () => import_TldrawUiSlider.TldrawUiSlider,
245
252
  TldrawUiToastsProvider: () => import_toasts.TldrawUiToastsProvider,
246
253
  TldrawUiToolbar: () => import_TldrawUiToolbar.TldrawUiToolbar,
247
254
  TldrawUiToolbarButton: () => import_TldrawUiToolbar.TldrawUiToolbarButton,
248
255
  TldrawUiToolbarToggleGroup: () => import_TldrawUiToolbar.TldrawUiToolbarToggleGroup,
249
256
  TldrawUiToolbarToggleItem: () => import_TldrawUiToolbar.TldrawUiToolbarToggleItem,
257
+ TldrawUiTooltip: () => import_TldrawUiTooltip.TldrawUiTooltip,
258
+ TldrawUiTooltipProvider: () => import_TldrawUiTooltip.TldrawUiTooltipProvider,
250
259
  TldrawUiTranslationProvider: () => import_useTranslation.TldrawUiTranslationProvider,
251
260
  ToggleAutoSizeMenuItem: () => import_menu_items.ToggleAutoSizeMenuItem,
252
261
  ToggleDebugModeItem: () => import_menu_items.ToggleDebugModeItem,
@@ -260,7 +269,9 @@ __export(index_exports, {
260
269
  ToggleReduceMotionItem: () => import_menu_items.ToggleReduceMotionItem,
261
270
  ToggleSnapModeItem: () => import_menu_items.ToggleSnapModeItem,
262
271
  ToggleToolLockItem: () => import_menu_items.ToggleToolLockItem,
272
+ ToggleToolLockedButton: () => import_ToggleToolLockedButton.ToggleToolLockedButton,
263
273
  ToggleTransparentBgMenuItem: () => import_menu_items.ToggleTransparentBgMenuItem,
274
+ ToggleUiLabelsItem: () => import_menu_items.ToggleUiLabelsItem,
264
275
  ToggleWrapModeItem: () => import_menu_items.ToggleWrapModeItem,
265
276
  ToolbarItem: () => import_DefaultToolbarContent.ToolbarItem,
266
277
  TrapezoidToolbarItem: () => import_DefaultToolbarContent.TrapezoidToolbarItem,
@@ -307,11 +318,14 @@ __export(index_exports, {
307
318
  getArrowBindings: () => import_shared.getArrowBindings,
308
319
  getArrowInfo: () => import_shared.getArrowInfo,
309
320
  getArrowTerminalsInArrowSpace: () => import_shared.getArrowTerminalsInArrowSpace,
321
+ getAssetInfo: () => import_defaultExternalContentHandlers.getAssetInfo,
310
322
  getCropBox: () => import_crop.getCropBox,
311
323
  getDefaultCrop: () => import_crop.getDefaultCrop,
312
324
  getEmbedInfo: () => import_embeds.getEmbedInfo,
325
+ getHitShapeOnCanvasPointerDown: () => import_getHitShapeOnCanvasPointerDown.getHitShapeOnCanvasPointerDown,
313
326
  getMediaAssetInfoPartial: () => import_defaultExternalContentHandlers.getMediaAssetInfoPartial,
314
327
  getUncroppedSize: () => import_crop.getUncroppedSize,
328
+ onDragFromToolbarToCreateShape: () => import_useTools.onDragFromToolbarToCreateShape,
315
329
  parseAndLoadDocument: () => import_file.parseAndLoadDocument,
316
330
  parseTldrawJsonFile: () => import_file.parseTldrawJsonFile,
317
331
  preloadFont: () => import_preload_font.preloadFont,
@@ -360,18 +374,22 @@ __export(index_exports, {
360
374
  useSelectedShapesAnnouncer: () => import_A11y.useSelectedShapesAnnouncer,
361
375
  useShowCollaborationUi: () => import_useCollaborationStatus.useShowCollaborationUi,
362
376
  useTldrawUiComponents: () => import_components.useTldrawUiComponents,
377
+ useTldrawUiOrientation: () => import_layout.useTldrawUiOrientation,
363
378
  useToasts: () => import_toasts.useToasts,
364
379
  useTools: () => import_useTools.useTools,
365
380
  useTranslation: () => import_useTranslation2.useTranslation,
366
- useUiEvents: () => import_events.useUiEvents
381
+ useUiEvents: () => import_events.useUiEvents,
382
+ useUnlockedSelectedShapesCount: () => import_menu_hooks.useUnlockedSelectedShapesCount
367
383
  });
368
384
  module.exports = __toCommonJS(index_exports);
369
385
  var import_editor = require("@tldraw/editor");
370
386
  var import_PathBuilder = require("./lib/shapes/shared/PathBuilder");
371
387
  var import_usePrefersReducedMotion = require("./lib/shapes/shared/usePrefersReducedMotion");
372
388
  var import_A11y = require("./lib/ui/components/A11y");
389
+ var import_AccessibilityMenu = require("./lib/ui/components/AccessibilityMenu");
373
390
  var import_ColorSchemeMenu = require("./lib/ui/components/ColorSchemeMenu");
374
391
  var import_Dialogs = require("./lib/ui/components/Dialogs");
392
+ var import_layout = require("./lib/ui/components/primitives/layout");
375
393
  var import_TldrawUiMenuActionCheckboxItem = require("./lib/ui/components/primitives/menus/TldrawUiMenuActionCheckboxItem");
376
394
  var import_TldrawUiMenuActionItem = require("./lib/ui/components/primitives/menus/TldrawUiMenuActionItem");
377
395
  var import_TldrawUiMenuToolItem = require("./lib/ui/components/primitives/menus/TldrawUiMenuToolItem");
@@ -379,6 +397,7 @@ var import_Toasts = require("./lib/ui/components/Toasts");
379
397
  var import_useTranslation = require("./lib/ui/hooks/useTranslation/useTranslation");
380
398
  __reExport(index_exports, require("@tldraw/editor"), module.exports);
381
399
  var import_ArrowBindingUtil = require("./lib/bindings/arrow/ArrowBindingUtil");
400
+ var import_TldrawCropHandles = require("./lib/canvas/TldrawCropHandles");
382
401
  var import_TldrawHandles = require("./lib/canvas/TldrawHandles");
383
402
  var import_TldrawOverlays = require("./lib/canvas/TldrawOverlays");
384
403
  var import_TldrawScribble = require("./lib/canvas/TldrawScribble");
@@ -428,6 +447,7 @@ var import_TldrawImage = require("./lib/TldrawImage");
428
447
  var import_EraserTool = require("./lib/tools/EraserTool/EraserTool");
429
448
  var import_HandTool = require("./lib/tools/HandTool/HandTool");
430
449
  var import_LaserTool = require("./lib/tools/LaserTool/LaserTool");
450
+ var import_getHitShapeOnCanvasPointerDown = require("./lib/tools/selection-logic/getHitShapeOnCanvasPointerDown");
431
451
  var import_SelectTool = require("./lib/tools/SelectTool/SelectTool");
432
452
  var import_ZoomTool = require("./lib/tools/ZoomTool/ZoomTool");
433
453
  var import_assetUrls = require("./lib/ui/assetUrls");
@@ -474,6 +494,7 @@ var import_TldrawUiKbd = require("./lib/ui/components/primitives/TldrawUiKbd");
474
494
  var import_TldrawUiPopover = require("./lib/ui/components/primitives/TldrawUiPopover");
475
495
  var import_TldrawUiSlider = require("./lib/ui/components/primitives/TldrawUiSlider");
476
496
  var import_TldrawUiToolbar = require("./lib/ui/components/primitives/TldrawUiToolbar");
497
+ var import_TldrawUiTooltip = require("./lib/ui/components/primitives/TldrawUiTooltip");
477
498
  var import_DefaultQuickActions = require("./lib/ui/components/QuickActions/DefaultQuickActions");
478
499
  var import_DefaultQuickActionsContent = require("./lib/ui/components/QuickActions/DefaultQuickActionsContent");
479
500
  var import_DefaultSharePanel = require("./lib/ui/components/SharePanel/DefaultSharePanel");
@@ -490,6 +511,7 @@ var import_DefaultToolbarContent = require("./lib/ui/components/Toolbar/DefaultT
490
511
  var import_DefaultVideoToolbar = require("./lib/ui/components/Toolbar/DefaultVideoToolbar");
491
512
  var import_DefaultVideoToolbarContent = require("./lib/ui/components/Toolbar/DefaultVideoToolbarContent");
492
513
  var import_OverflowingToolbar = require("./lib/ui/components/Toolbar/OverflowingToolbar");
514
+ var import_ToggleToolLockedButton = require("./lib/ui/components/Toolbar/ToggleToolLockedButton");
493
515
  var import_CenteredTopPanelContainer = require("./lib/ui/components/TopPanel/CenteredTopPanelContainer");
494
516
  var import_DefaultTopPanel = require("./lib/ui/components/TopPanel/DefaultTopPanel");
495
517
  var import_DefaultZoomMenu = require("./lib/ui/components/ZoomMenu/DefaultZoomMenu");
@@ -534,7 +556,7 @@ var import_buildFromV1Document = require("./lib/utils/tldr/buildFromV1Document")
534
556
  var import_file = require("./lib/utils/tldr/file");
535
557
  (0, import_editor.registerTldrawLibraryVersion)(
536
558
  "tldraw",
537
- "3.15.0",
559
+ "3.16.0-canary.03ed24d72068",
538
560
  "cjs"
539
561
  );
540
562
  //# sourceMappingURL=index.js.map