tldraw 3.16.0-canary.ed8bd30c0f28 → 3.16.0-canary.f20b7a478e22

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 (525) hide show
  1. package/dist-cjs/index.d.ts +359 -109
  2. package/dist-cjs/index.js +46 -14
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/Tldraw.js +12 -2
  5. package/dist-cjs/lib/Tldraw.js.map +2 -2
  6. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
  7. package/dist-cjs/lib/canvas/TldrawScribble.js.map +2 -2
  8. package/dist-cjs/lib/defaultExternalContentHandlers.js +15 -4
  9. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  10. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +3 -3
  11. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  12. package/dist-cjs/lib/shapes/arrow/arrowLabel.js +6 -0
  13. package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +3 -3
  14. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +1 -1
  15. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
  16. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
  17. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  18. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js +4 -4
  19. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js.map +2 -2
  20. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +3 -3
  21. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  22. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  23. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  24. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +20 -13
  25. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  26. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  27. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  28. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +2 -2
  29. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +2 -2
  30. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +3 -2
  31. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  32. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +2 -1
  33. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
  34. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +5 -1
  35. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  36. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +6 -3
  37. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +2 -2
  38. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +5 -1
  39. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  40. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +6 -5
  41. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  42. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js +4 -4
  43. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js.map +2 -2
  44. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +1 -3
  45. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +2 -2
  46. package/dist-cjs/lib/shapes/shared/ShapeFill.js +4 -4
  47. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  48. package/dist-cjs/lib/shapes/shared/freehand/svg.js.map +2 -2
  49. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js +3 -4
  50. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js.map +2 -2
  51. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js +0 -2
  52. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js.map +2 -2
  53. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js +10 -1
  54. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js.map +2 -2
  55. package/dist-cjs/lib/shapes/text/PlainTextArea.js +2 -2
  56. package/dist-cjs/lib/shapes/text/PlainTextArea.js.map +2 -2
  57. package/dist-cjs/lib/shapes/text/RichTextArea.js +3 -3
  58. package/dist-cjs/lib/shapes/text/RichTextArea.js.map +2 -2
  59. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +2 -2
  60. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  61. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  62. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  63. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +25 -1
  64. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  65. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +12 -0
  66. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  67. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
  68. package/dist-cjs/lib/ui/TldrawUi.js +27 -12
  69. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  70. package/dist-cjs/lib/ui/assetUrls.js +13 -10
  71. package/dist-cjs/lib/ui/assetUrls.js.map +2 -2
  72. package/dist-cjs/lib/ui/components/A11y.js +1 -1
  73. package/dist-cjs/lib/ui/components/A11y.js.map +2 -2
  74. package/dist-cjs/lib/ui/components/AccessibilityMenu.js +35 -0
  75. package/dist-cjs/lib/ui/components/AccessibilityMenu.js.map +7 -0
  76. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +12 -3
  77. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  78. package/dist-cjs/lib/ui/components/{FollowingIndicator.js → DefaultFollowingIndicator.js} +6 -6
  79. package/dist-cjs/lib/ui/components/DefaultFollowingIndicator.js.map +7 -0
  80. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +3 -2
  81. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
  82. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +6 -6
  83. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +1 -1
  84. package/dist-cjs/lib/ui/components/LanguageMenu.js +1 -0
  85. package/dist-cjs/lib/ui/components/LanguageMenu.js.map +2 -2
  86. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +3 -3
  87. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  88. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js +1 -0
  89. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js.map +2 -2
  90. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  91. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  92. package/dist-cjs/lib/ui/components/MobileStylePanel.js +5 -3
  93. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  94. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +1 -1
  95. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
  96. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +3 -2
  97. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  98. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +3 -2
  99. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
  100. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
  101. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
  102. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +11 -4
  103. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  104. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +249 -279
  105. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  106. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js +147 -0
  107. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +7 -0
  108. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js +68 -0
  109. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js.map +7 -0
  110. package/dist-cjs/lib/ui/components/StylePanel/{DoubleDropdownPicker.js → StylePanelDoubleDropdownPicker.js} +26 -25
  111. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js.map +7 -0
  112. package/dist-cjs/lib/ui/components/StylePanel/{DropdownPicker.js → StylePanelDropdownPicker.js} +47 -43
  113. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js.map +7 -0
  114. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js +28 -0
  115. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js.map +7 -0
  116. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js +2 -0
  117. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
  118. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +39 -10
  119. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  120. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -21
  121. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  122. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js +15 -3
  123. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js.map +2 -2
  124. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js +2 -1
  125. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js.map +2 -2
  126. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +189 -80
  127. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  128. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +10 -5
  129. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  130. package/dist-cjs/lib/ui/components/menu-items.js +6 -0
  131. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  132. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +11 -2
  133. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  134. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js +5 -3
  135. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js.map +2 -2
  136. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +3 -2
  137. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
  138. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +18 -5
  139. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  140. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +33 -7
  141. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  142. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +306 -0
  143. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +7 -0
  144. package/dist-cjs/lib/ui/components/primitives/layout.js +76 -0
  145. package/dist-cjs/lib/ui/components/primitives/layout.js.map +7 -0
  146. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js +3 -0
  147. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js.map +2 -2
  148. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  149. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
  150. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  151. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +154 -20
  152. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  153. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js +3 -2
  154. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js.map +2 -2
  155. package/dist-cjs/lib/ui/context/actions.js +44 -10
  156. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  157. package/dist-cjs/lib/ui/context/components.js +2 -0
  158. package/dist-cjs/lib/ui/context/components.js.map +2 -2
  159. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  160. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +1 -1
  161. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
  162. package/dist-cjs/lib/ui/hooks/useExportAs.js +3 -2
  163. package/dist-cjs/lib/ui/hooks/useExportAs.js.map +2 -2
  164. package/dist-cjs/lib/ui/hooks/useTools.js +94 -9
  165. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  166. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  167. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +8 -1
  168. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  169. package/dist-cjs/lib/ui/kbd-utils.js +9 -3
  170. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  171. package/dist-cjs/lib/ui/version.js +3 -3
  172. package/dist-cjs/lib/ui/version.js.map +1 -1
  173. package/dist-cjs/lib/utils/export/copyAs.js +1 -2
  174. package/dist-cjs/lib/utils/export/copyAs.js.map +2 -2
  175. package/dist-cjs/lib/utils/export/export.js +0 -20
  176. package/dist-cjs/lib/utils/export/export.js.map +2 -2
  177. package/dist-cjs/lib/utils/export/exportAs.js +1 -2
  178. package/dist-cjs/lib/utils/export/exportAs.js.map +2 -2
  179. package/dist-esm/index.d.mts +359 -109
  180. package/dist-esm/index.mjs +85 -29
  181. package/dist-esm/index.mjs.map +2 -2
  182. package/dist-esm/lib/Tldraw.mjs +14 -4
  183. package/dist-esm/lib/Tldraw.mjs.map +2 -2
  184. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  185. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  186. package/dist-esm/lib/defaultExternalContentHandlers.mjs +15 -4
  187. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  188. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +4 -3
  189. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  190. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +6 -0
  191. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +3 -3
  192. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +1 -1
  193. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
  194. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  195. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  196. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs +5 -5
  197. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs.map +2 -2
  198. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +4 -3
  199. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  200. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  201. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  202. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +21 -13
  203. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  204. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  205. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  206. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +3 -3
  207. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +2 -2
  208. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +4 -2
  209. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  210. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +2 -1
  211. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  212. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +6 -1
  213. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  214. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +6 -3
  215. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +2 -2
  216. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +6 -1
  217. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  218. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +7 -5
  219. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  220. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs +5 -5
  221. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs.map +2 -2
  222. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +1 -3
  223. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  224. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +5 -4
  225. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  226. package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
  227. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs +4 -5
  228. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
  229. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs +0 -2
  230. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs.map +2 -2
  231. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs +10 -1
  232. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs.map +2 -2
  233. package/dist-esm/lib/shapes/text/PlainTextArea.mjs +3 -3
  234. package/dist-esm/lib/shapes/text/PlainTextArea.mjs.map +2 -2
  235. package/dist-esm/lib/shapes/text/RichTextArea.mjs +3 -4
  236. package/dist-esm/lib/shapes/text/RichTextArea.mjs.map +2 -2
  237. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +3 -2
  238. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  239. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  240. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  241. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +26 -1
  242. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  243. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +13 -0
  244. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  245. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
  246. package/dist-esm/lib/ui/TldrawUi.mjs +29 -14
  247. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  248. package/dist-esm/lib/ui/assetUrls.mjs +13 -10
  249. package/dist-esm/lib/ui/assetUrls.mjs.map +2 -2
  250. package/dist-esm/lib/ui/components/A11y.mjs +2 -2
  251. package/dist-esm/lib/ui/components/A11y.mjs.map +2 -2
  252. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs +19 -0
  253. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs.map +7 -0
  254. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +12 -3
  255. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  256. package/dist-esm/lib/ui/components/{FollowingIndicator.mjs → DefaultFollowingIndicator.mjs} +3 -3
  257. package/dist-esm/lib/ui/components/DefaultFollowingIndicator.mjs.map +7 -0
  258. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +3 -2
  259. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
  260. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +6 -6
  261. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +1 -1
  262. package/dist-esm/lib/ui/components/LanguageMenu.mjs +1 -0
  263. package/dist-esm/lib/ui/components/LanguageMenu.mjs.map +2 -2
  264. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +3 -5
  265. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  266. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs +1 -0
  267. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs.map +2 -2
  268. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  269. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  270. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +6 -3
  271. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  272. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +1 -1
  273. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
  274. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +4 -3
  275. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  276. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +3 -2
  277. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
  278. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
  279. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
  280. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +16 -5
  281. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  282. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +251 -283
  283. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  284. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +135 -0
  285. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +7 -0
  286. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs +48 -0
  287. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs.map +7 -0
  288. package/dist-esm/lib/ui/components/StylePanel/{DoubleDropdownPicker.mjs → StylePanelDoubleDropdownPicker.mjs} +23 -22
  289. package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs.map +7 -0
  290. package/dist-esm/lib/ui/components/StylePanel/{DropdownPicker.mjs → StylePanelDropdownPicker.mjs} +44 -40
  291. package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs.map +7 -0
  292. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs +8 -0
  293. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs.map +7 -0
  294. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs +2 -0
  295. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
  296. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +39 -10
  297. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  298. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -21
  299. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  300. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs +15 -3
  301. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs.map +2 -2
  302. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs +2 -1
  303. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs.map +2 -2
  304. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -81
  305. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  306. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +10 -5
  307. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  308. package/dist-esm/lib/ui/components/menu-items.mjs +6 -0
  309. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  310. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +12 -3
  311. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  312. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs +6 -4
  313. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs.map +2 -2
  314. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +3 -2
  315. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
  316. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +18 -5
  317. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  318. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +33 -7
  319. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  320. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +284 -0
  321. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +7 -0
  322. package/dist-esm/lib/ui/components/primitives/layout.mjs +46 -0
  323. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +7 -0
  324. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs +3 -0
  325. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs.map +2 -2
  326. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  327. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
  328. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  329. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +162 -22
  330. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  331. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs +3 -2
  332. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs.map +2 -2
  333. package/dist-esm/lib/ui/context/actions.mjs +44 -10
  334. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  335. package/dist-esm/lib/ui/context/components.mjs +2 -0
  336. package/dist-esm/lib/ui/context/components.mjs.map +2 -2
  337. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  338. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +2 -2
  339. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
  340. package/dist-esm/lib/ui/hooks/useExportAs.mjs +3 -2
  341. package/dist-esm/lib/ui/hooks/useExportAs.mjs.map +2 -2
  342. package/dist-esm/lib/ui/hooks/useTools.mjs +102 -10
  343. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  344. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +8 -1
  345. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  346. package/dist-esm/lib/ui/kbd-utils.mjs +9 -3
  347. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  348. package/dist-esm/lib/ui/version.mjs +3 -3
  349. package/dist-esm/lib/ui/version.mjs.map +1 -1
  350. package/dist-esm/lib/utils/export/copyAs.mjs +1 -2
  351. package/dist-esm/lib/utils/export/copyAs.mjs.map +2 -2
  352. package/dist-esm/lib/utils/export/export.mjs +0 -20
  353. package/dist-esm/lib/utils/export/export.mjs.map +2 -2
  354. package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
  355. package/dist-esm/lib/utils/export/exportAs.mjs.map +2 -2
  356. package/package.json +11 -34
  357. package/src/index.ts +64 -22
  358. package/src/lib/Tldraw.tsx +15 -2
  359. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  360. package/src/lib/defaultExternalContentHandlers.ts +26 -4
  361. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +2 -1
  362. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +6 -5
  363. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +48 -6
  364. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +4 -3
  365. package/src/lib/shapes/arrow/arrowLabel.ts +8 -0
  366. package/src/lib/shapes/arrow/arrowTargetState.ts +2 -1
  367. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  368. package/src/lib/shapes/bookmark/BookmarkShapeUtil.tsx +5 -5
  369. package/src/lib/shapes/draw/DrawShapeTool.test.ts +0 -5
  370. package/src/lib/shapes/draw/DrawShapeUtil.tsx +4 -3
  371. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  372. package/src/lib/shapes/frame/FrameShapeUtil.tsx +30 -14
  373. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  374. package/src/lib/shapes/frame/components/FrameLabelInput.tsx +3 -3
  375. package/src/lib/shapes/geo/GeoShapeUtil.tsx +4 -2
  376. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  377. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +7 -1
  378. package/src/lib/shapes/image/ImageShapeUtil.tsx +6 -3
  379. package/src/lib/shapes/line/LineShapeUtil.test.tsx +4 -3
  380. package/src/lib/shapes/line/LineShapeUtil.tsx +6 -1
  381. package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
  382. package/src/lib/shapes/note/NoteShapeUtil.tsx +10 -4
  383. package/src/lib/shapes/shared/HyperlinkButton.tsx +5 -5
  384. package/src/lib/shapes/shared/PlainTextLabel.tsx +0 -6
  385. package/src/lib/shapes/shared/ShapeFill.tsx +5 -4
  386. package/src/lib/shapes/shared/freehand/svg.ts +2 -0
  387. package/src/lib/shapes/shared/useEditablePlainText.ts +5 -9
  388. package/src/lib/shapes/shared/useImageOrVideoAsset.ts +0 -7
  389. package/src/lib/shapes/shared/usePrefersReducedMotion.tsx +11 -1
  390. package/src/lib/shapes/text/PlainTextArea.tsx +3 -3
  391. package/src/lib/shapes/text/RichTextArea.tsx +3 -4
  392. package/src/lib/shapes/text/TextShapeTool.test.ts +6 -5
  393. package/src/lib/shapes/text/TextShapeUtil.tsx +3 -2
  394. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  395. package/src/lib/tools/EraserTool/childStates/Erasing.ts +34 -1
  396. package/src/lib/tools/EraserTool/childStates/Pointing.ts +20 -0
  397. package/src/lib/tools/SelectTool/childStates/Translating.ts +0 -1
  398. package/src/lib/ui/TldrawUi.tsx +33 -12
  399. package/src/lib/ui/assetUrls.ts +13 -10
  400. package/src/lib/ui/components/A11y.tsx +2 -2
  401. package/src/lib/ui/components/AccessibilityMenu.tsx +20 -0
  402. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +15 -3
  403. package/src/lib/ui/components/{FollowingIndicator.tsx → DefaultFollowingIndicator.tsx} +2 -1
  404. package/src/lib/ui/components/DefaultMenuPanel.tsx +4 -3
  405. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +6 -6
  406. package/src/lib/ui/components/LanguageMenu.tsx +1 -0
  407. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +4 -4
  408. package/src/lib/ui/components/Minimap/DefaultMinimap.tsx +1 -0
  409. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  410. package/src/lib/ui/components/MobileStylePanel.tsx +9 -6
  411. package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +1 -1
  412. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +5 -4
  413. package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +4 -3
  414. package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
  415. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +28 -12
  416. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +261 -343
  417. package/src/lib/ui/components/{primitives/TldrawUiButtonPicker.tsx → StylePanel/StylePanelButtonPicker.tsx} +73 -50
  418. package/src/lib/ui/components/StylePanel/StylePanelContext.tsx +63 -0
  419. package/src/lib/ui/components/StylePanel/{DoubleDropdownPicker.tsx → StylePanelDoubleDropdownPicker.tsx} +31 -22
  420. package/src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx +119 -0
  421. package/src/lib/ui/components/StylePanel/StylePanelSubheading.tsx +9 -0
  422. package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +2 -0
  423. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +33 -16
  424. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -23
  425. package/src/lib/ui/components/Toolbar/DefaultVideoToolbarContent.tsx +12 -4
  426. package/src/lib/ui/components/Toolbar/LinkEditor.tsx +1 -0
  427. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +212 -61
  428. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +21 -11
  429. package/src/lib/ui/components/menu-items.tsx +8 -0
  430. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +8 -3
  431. package/src/lib/ui/components/primitives/TldrawUiInput.tsx +6 -3
  432. package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +4 -2
  433. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +52 -32
  434. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +55 -12
  435. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +379 -0
  436. package/src/lib/ui/components/primitives/layout.tsx +107 -0
  437. package/src/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.tsx +4 -0
  438. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
  439. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
  440. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +221 -19
  441. package/src/lib/ui/context/TldrawUiContextProvider.tsx +23 -20
  442. package/src/lib/ui/context/actions.tsx +51 -10
  443. package/src/lib/ui/context/components.tsx +3 -0
  444. package/src/lib/ui/context/events.tsx +3 -1
  445. package/src/lib/ui/hooks/useClipboardEvents.ts +2 -2
  446. package/src/lib/ui/hooks/useExportAs.ts +3 -2
  447. package/src/lib/ui/hooks/useTools.tsx +140 -10
  448. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +7 -0
  449. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +8 -1
  450. package/src/lib/ui/kbd-utils.ts +10 -3
  451. package/src/lib/ui/version.ts +3 -3
  452. package/src/lib/ui.css +434 -293
  453. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +5 -5
  454. package/src/lib/utils/export/copyAs.ts +1 -24
  455. package/src/lib/utils/export/export.ts +0 -36
  456. package/src/lib/utils/export/exportAs.ts +1 -32
  457. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +4 -4
  458. package/src/test/A11y.test.tsx +3 -2
  459. package/src/test/ClickManager.test.ts +7 -6
  460. package/src/test/Editor.test.tsx +20 -19
  461. package/src/test/EraserTool.test.ts +184 -13
  462. package/src/test/HandTool.test.ts +10 -9
  463. package/src/test/HighlightShape.test.ts +2 -1
  464. package/src/test/SelectTool.test.ts +3 -2
  465. package/src/test/TLUserPreferences.test.ts +4 -3
  466. package/src/test/TestEditor.ts +13 -15
  467. package/src/test/TldrawEditor.test.tsx +11 -10
  468. package/src/test/ZoomTool.test.ts +7 -6
  469. package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
  470. package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
  471. package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
  472. package/src/test/arrows-megabus.test.tsx +17 -10
  473. package/src/test/bindings.test.tsx +24 -37
  474. package/src/test/bookmark-shapes.test.ts +1 -8
  475. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +23 -7
  476. package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
  477. package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
  478. package/src/test/commands/alignShapes.test.tsx +25 -24
  479. package/src/test/commands/animationSpeed.test.ts +2 -1
  480. package/src/test/commands/centerOnPoint.test.ts +3 -2
  481. package/src/test/commands/clipboard.test.ts +3 -2
  482. package/src/test/commands/createShapes.test.ts +2 -1
  483. package/src/test/commands/deleteShapes.test.ts +2 -1
  484. package/src/test/commands/distributeShapes.test.tsx +11 -10
  485. package/src/test/commands/getSvgString.test.ts +2 -1
  486. package/src/test/commands/packShapes.test.ts +5 -4
  487. package/src/test/commands/resizeShape.test.ts +2 -1
  488. package/src/test/commands/rotateShapes.test.ts +7 -6
  489. package/src/test/commands/setCamera.test.ts +4 -3
  490. package/src/test/commands/setCurrentPage.test.ts +3 -2
  491. package/src/test/commands/stackShapes.test.ts +11 -10
  492. package/src/test/commands/stretch.test.tsx +13 -12
  493. package/src/test/createDeepLink.test.tsx +2 -1
  494. package/src/test/cropping.test.ts +3 -2
  495. package/src/test/custom-clipping.test.ts +436 -0
  496. package/src/test/drawing.test.ts +2 -1
  497. package/src/test/flipShapes.test.ts +4 -3
  498. package/src/test/frames.test.ts +25 -24
  499. package/src/test/getCulledShapes.test.tsx +74 -4
  500. package/src/test/groups.test.tsx +1 -1
  501. package/src/test/handleDeepLink.test.tsx +2 -1
  502. package/src/test/inner-outer-margin.test.ts +315 -0
  503. package/src/test/maxShapes.test.ts +3 -2
  504. package/src/test/modifiers.test.ts +5 -4
  505. package/src/test/navigation.test.ts +12 -11
  506. package/src/test/panning.test.ts +2 -1
  507. package/src/test/perf/perf.test.ts +2 -1
  508. package/src/test/registerDeepLinkListener.test.tsx +10 -9
  509. package/src/test/resizing.test.ts +39 -38
  510. package/src/test/select.test.tsx +4 -3
  511. package/src/test/selection-omnibus.test.ts +11 -10
  512. package/src/test/shapeutils.test.ts +4 -3
  513. package/src/test/translating.test.ts +9 -8
  514. package/tldraw.css +742 -583
  515. package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +0 -7
  516. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +0 -7
  517. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +0 -7
  518. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js +0 -142
  519. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +0 -7
  520. package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +0 -7
  521. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +0 -7
  522. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +0 -7
  523. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +0 -115
  524. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +0 -7
  525. package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +0 -109
@@ -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';
@@ -65,7 +68,6 @@ import { TLClickEventInfo } from '@tldraw/editor';
65
68
  import { TLContent } from '@tldraw/editor';
66
69
  import { TLCropInfo } from '@tldraw/editor';
67
70
  import { TLDefaultColorStyle } from '@tldraw/editor';
68
- import { TLDefaultColorTheme } from '@tldraw/editor';
69
71
  import { TLDefaultColorThemeColor } from '@tldraw/editor';
70
72
  import { TLDefaultDashStyle } from '@tldraw/editor';
71
73
  import { TLDefaultFillStyle } from '@tldraw/editor';
@@ -148,6 +150,9 @@ export declare interface A11yProviderProps {
148
150
  children: React.ReactNode;
149
151
  }
150
152
 
153
+ /** @public @react */
154
+ export declare function AccessibilityMenu(): JSX_2.Element;
155
+
151
156
  /** @public */
152
157
  export declare interface ActionsProviderProps {
153
158
  overrides?(editor: Editor, actions: TLUiActionsContextType, helpers: TLUiOverrideHelpers): TLUiActionsContextType;
@@ -187,9 +192,6 @@ export declare class ArrowBindingUtil extends BindingUtil<TLArrowBinding> {
187
192
  /** @public @react */
188
193
  export declare function ArrowDownToolbarItem(): JSX_2.Element;
189
194
 
190
- /** @public @react */
191
- export declare function ArrowheadStylePickerSet({ styles }: StylePickerSetProps): JSX_2.Element | null;
192
-
193
195
  /** @public @react */
194
196
  export declare function ArrowLeftToolbarItem(): JSX_2.Element;
195
197
 
@@ -494,9 +496,6 @@ export declare function CloudToolbarItem(): JSX_2.Element;
494
496
  /** @public @react */
495
497
  export declare function ColorSchemeMenu(): JSX_2.Element;
496
498
 
497
- /** @public @react */
498
- export declare function CommonStylePickerSet({ styles, theme }: ThemeStylePickerSetProps): JSX_2.Element;
499
-
500
499
  /**
501
500
  * Contains the size within the given box size
502
501
  *
@@ -528,14 +527,6 @@ export declare function ConvertToEmbedMenuItem(): JSX_2.Element | null;
528
527
  */
529
528
  export declare function copyAs(editor: Editor, ids: TLShapeId[], opts: CopyAsOptions): Promise<void>;
530
529
 
531
- /**
532
- * @deprecated The format parameter is now part of the opts object.
533
- * @public
534
- */
535
- export declare function copyAs(editor: Editor, ids: TLShapeId[], format: TLCopyType, opts?: TLImageExportOptions & {
536
- format?: undefined;
537
- }): Promise<void>;
538
-
539
530
  /** @public @react */
540
531
  export declare function CopyAsMenuGroup(): JSX_2.Element;
541
532
 
@@ -847,6 +838,9 @@ export declare let defaultEditorAssetUrls: TLEditorAssetUrls;
847
838
  /** @public */
848
839
  export declare type DefaultEmbedDefinitionType = (typeof DEFAULT_EMBED_DEFINITIONS)[number]['type'];
849
840
 
841
+ /** @public @react */
842
+ export declare function DefaultFollowingIndicator(): JSX_2.Element | null;
843
+
850
844
  /** @public */
851
845
  export declare const DefaultFontFaces: TLDefaultFonts;
852
846
 
@@ -990,7 +984,7 @@ export declare function DefaultSharePanel(): JSX_2.Element;
990
984
  export declare const DefaultStylePanel: NamedExoticComponent<TLUiStylePanelProps>;
991
985
 
992
986
  /** @public @react */
993
- export declare function DefaultStylePanelContent({ styles }: TLUiStylePanelContentProps): JSX_2.Element | null;
987
+ export declare function DefaultStylePanelContent(): JSX_2.Element;
994
988
 
995
989
  /** @public @react */
996
990
  export declare const DefaultToasts: NamedExoticComponent<object>;
@@ -1011,6 +1005,11 @@ export declare function DefaultToolbarContent(): JSX_2.Element;
1011
1005
  /** @public */
1012
1006
  export declare interface DefaultToolbarProps {
1013
1007
  children?: ReactNode;
1008
+ orientation?: 'horizontal' | 'vertical';
1009
+ minItems?: number;
1010
+ minSizePx?: number;
1011
+ maxItems?: number;
1012
+ maxSizePx?: number;
1014
1013
  }
1015
1014
 
1016
1015
  /** @public */
@@ -1478,12 +1477,6 @@ export declare interface ExampleDialogProps {
1478
1477
  */
1479
1478
  export declare function exportAs(editor: Editor, ids: TLShapeId[], opts: ExportAsOptions): Promise<void>;
1480
1479
 
1481
- /**
1482
- * @deprecated The format & name parameters are now part of the opts object.
1483
- * @public
1484
- */
1485
- export declare function exportAs(editor: Editor, ids: TLShapeId[], format?: TLExportType, name?: string, opts?: TLImageExportOptions): Promise<void>;
1486
-
1487
1480
  /** @public */
1488
1481
  export declare interface ExportAsOptions extends TLImageExportOptions {
1489
1482
  /** {@inheritdoc @tldraw/editor#TLImageExportOptions.format} */
@@ -1495,23 +1488,6 @@ export declare interface ExportAsOptions extends TLImageExportOptions {
1495
1488
  /** @public @react */
1496
1489
  export declare function ExportFileContentSubMenu(): JSX_2.Element;
1497
1490
 
1498
- /**
1499
- * Export the given shapes as a blob.
1500
- * @param editor - The editor instance.
1501
- * @param ids - The ids of the shapes to export.
1502
- * @param format - The format to export as.
1503
- * @param opts - Rendering options.
1504
- * @returns A promise that resolves to a blob.
1505
- * @deprecated Use {@link @tldraw/editor#Editor.toImage} instead.
1506
- * @public
1507
- */
1508
- export declare function exportToBlob({ editor, ids, format, opts, }: {
1509
- editor: Editor;
1510
- format: TLExportType;
1511
- ids: TLShapeId[];
1512
- opts?: TLImageExportOptions;
1513
- }): Promise<Blob>;
1514
-
1515
1491
  /** @public @react */
1516
1492
  export declare function ExtrasGroup(): JSX_2.Element;
1517
1493
 
@@ -1568,6 +1544,7 @@ export declare class FrameShapeUtil extends BaseBoxShapeUtil<TLFrameShape> {
1568
1544
  canEdit(): boolean;
1569
1545
  canResize(): boolean;
1570
1546
  canResizeChildren(): boolean;
1547
+ isExportBoundsContainer(): boolean;
1571
1548
  getDefaultProps(): TLFrameShape['props'];
1572
1549
  getAriaDescriptor(shape: TLFrameShape): string;
1573
1550
  getGeometry(shape: TLFrameShape): Geometry2d;
@@ -1576,6 +1553,7 @@ export declare class FrameShapeUtil extends BaseBoxShapeUtil<TLFrameShape> {
1576
1553
  toSvg(shape: TLFrameShape, ctx: SvgExportContext): JSX_2.Element;
1577
1554
  indicator(shape: TLFrameShape): JSX_2.Element;
1578
1555
  providesBackgroundForChildren(): boolean;
1556
+ getClipPath(shape: TLFrameShape): Vec[];
1579
1557
  canReceiveNewChildrenOfType(shape: TLShape): boolean;
1580
1558
  onResize(shape: any, info: TLResizeInfo<any>): any;
1581
1559
  getInterpolatedProps(startShape: TLFrameShape, endShape: TLFrameShape, t: number): TLFrameShapeProps;
@@ -1724,9 +1702,6 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1724
1702
  getInterpolatedProps(startShape: TLGeoShape, endShape: TLGeoShape, t: number): TLGeoShapeProps;
1725
1703
  }
1726
1704
 
1727
- /** @public @react */
1728
- export declare function GeoStylePickerSet({ styles }: StylePickerSetProps): JSX_2.Element | null;
1729
-
1730
1705
  /** @public */
1731
1706
  export declare function getArrowBindings(editor: Editor, shape: TLArrowShape): TLArrowBindings;
1732
1707
 
@@ -1769,6 +1744,29 @@ export declare function getHitShapeOnCanvasPointerDown(editor: Editor, hitLabels
1769
1744
  /** @public */
1770
1745
  export declare function getMediaAssetInfoPartial(file: File, assetId: TLAssetId, isImageType: boolean, isVideoType: boolean, maxImageDimension?: number): Promise<TLImageAsset | TLVideoAsset>;
1771
1746
 
1747
+ /**
1748
+ * ## getStrokePoints
1749
+ *
1750
+ * Get an array of points as objects with an adjusted point, pressure, vector, distance, and
1751
+ * runningLength.
1752
+ *
1753
+ * @param points - An array of points (as `[x, y, pressure]` or `{x, y, pressure}`). Pressure is
1754
+ * optional in both cases.
1755
+ * @param options - An object with options.
1756
+ * @public
1757
+ */
1758
+ export declare function getStrokePoints(rawInputPoints: VecLike[], options?: StrokeOptions): StrokePoint[];
1759
+
1760
+ /**
1761
+ * Turn an array of stroke points into a path of quadradic curves.
1762
+ *
1763
+ * @param points - The stroke points returned from perfect-freehand
1764
+ * @param closed - Whether the shape is closed
1765
+ *
1766
+ * @public
1767
+ */
1768
+ export declare function getSvgPathFromStrokePoints(points: StrokePoint[], closed?: boolean): string;
1769
+
1772
1770
  /**
1773
1771
  * Original (uncropped) width and height of shape.
1774
1772
  *
@@ -1864,6 +1862,7 @@ export declare class ImageShapeUtil extends BaseBoxShapeUtil<TLImageShape> {
1864
1862
  static migrations: TLPropsMigrations;
1865
1863
  isAspectRatioLocked(): boolean;
1866
1864
  canCrop(): boolean;
1865
+ isExportBoundsContainer(): boolean;
1867
1866
  getDefaultProps(): TLImageShape['props'];
1868
1867
  getGeometry(shape: TLImageShape): Geometry2d;
1869
1868
  getAriaDescriptor(shape: TLImageShape): string;
@@ -2114,21 +2113,57 @@ export declare class NoteShapeUtil extends ShapeUtil<TLNoteShape> {
2114
2113
  /** @public @react */
2115
2114
  export declare function NoteToolbarItem(): JSX_2.Element;
2116
2115
 
2116
+ /**
2117
+ * Checks if a file is allowed to be uploaded. If it is not, it will show a toast explaining why to the user.
2118
+ *
2119
+ * @param file - The file to check
2120
+ * @param options - The options for the external content handler
2121
+ * @returns True if the file is allowed, false otherwise
2122
+ * @public
2123
+ */
2124
+ export declare function notifyIfFileNotAllowed(file: File, options: TLDefaultExternalContentHandlerOpts): boolean;
2125
+
2117
2126
  /** @public @react */
2118
2127
  export declare function OfflineIndicator(): JSX_2.Element;
2119
2128
 
2120
- /** @public @react */
2121
- export declare function OpacitySlider(): JSX_2.Element | null;
2129
+ /**
2130
+ * A helper method to use in {@link TLUiToolItem#onDragStart} to create a shape by dragging it from
2131
+ * the toolbar.
2132
+ * @public
2133
+ */
2134
+ export declare function onDragFromToolbarToCreateShape(editor: Editor, info: TLPointerEventInfo, opts: OnDragFromToolbarToCreateShapesOpts): void;
2135
+
2136
+ /**
2137
+ * Options for {@link onDragFromToolbarToCreateShape}.
2138
+ * @public
2139
+ */
2140
+ export declare interface OnDragFromToolbarToCreateShapesOpts {
2141
+ /**
2142
+ * Create the shape being dragged. You don't need to worry about positioning it, as it'll be
2143
+ * immediately updated with the correct position.
2144
+ */
2145
+ createShape(id: TLShapeId): void;
2146
+ /**
2147
+ * Called once the drag interaction has finished.
2148
+ */
2149
+ onDragEnd?(id: TLShapeId): void;
2150
+ }
2122
2151
 
2123
2152
  /** @public @react */
2124
2153
  export declare function OvalToolbarItem(): JSX_2.Element;
2125
2154
 
2126
2155
  /** @public @react */
2127
- export declare function OverflowingToolbar({ children }: OverflowingToolbarProps): JSX_2.Element;
2156
+ export declare function OverflowingToolbar({ children, orientation, sizingParentClassName, minItems, minSizePx, maxItems, maxSizePx, }: OverflowingToolbarProps): JSX_2.Element;
2128
2157
 
2129
2158
  /** @public */
2130
2159
  export declare interface OverflowingToolbarProps {
2131
2160
  children: React.ReactNode;
2161
+ orientation: 'horizontal' | 'vertical';
2162
+ sizingParentClassName: string;
2163
+ minItems: number;
2164
+ minSizePx: number;
2165
+ maxItems: number;
2166
+ maxSizePx: number;
2132
2167
  }
2133
2168
 
2134
2169
  /** @public @react */
@@ -2505,9 +2540,6 @@ export declare interface SolidPathBuilderOpts extends BasePathBuilderOpts {
2505
2540
 
2506
2541
  /* Excluded from this release type: Spinner */
2507
2542
 
2508
- /** @public @react */
2509
- export declare function SplineStylePickerSet({ styles }: StylePickerSetProps): JSX_2.Element | null;
2510
-
2511
2543
  /** @public @react */
2512
2544
  export declare function StackMenuItems(): JSX_2.Element;
2513
2545
 
@@ -2517,11 +2549,172 @@ export declare function StarToolbarItem(): JSX_2.Element;
2517
2549
  /** @public */
2518
2550
  export declare const STROKE_SIZES: Record<TLDefaultSizeStyle, number>;
2519
2551
 
2552
+ /**
2553
+ * The options object for `getStroke` or `getStrokePoints`.
2554
+ *
2555
+ * @public
2556
+ */
2557
+ export declare interface StrokeOptions {
2558
+ /** The base size (diameter) of the stroke. */
2559
+ size?: number;
2560
+ /** The effect of pressure on the stroke's size. */
2561
+ thinning?: number;
2562
+ /** How much to soften the stroke's edges. */
2563
+ smoothing?: number;
2564
+ streamline?: number;
2565
+ /** An easing function to apply to each point's pressure. */
2566
+ easing?(pressure: number): number;
2567
+ /** Whether to simulate pressure based on velocity. */
2568
+ simulatePressure?: boolean;
2569
+ /** Cap, taper and easing for the start of the line. */
2570
+ start?: {
2571
+ cap?: boolean;
2572
+ easing?(distance: number): number;
2573
+ taper?: boolean | number;
2574
+ };
2575
+ /** Cap, taper and easing for the end of the line. */
2576
+ end?: {
2577
+ cap?: boolean;
2578
+ easing?(distance: number): number;
2579
+ taper?: boolean | number;
2580
+ };
2581
+ /** Whether to handle the points as a completed stroke. */
2582
+ last?: boolean;
2583
+ }
2584
+
2585
+ /**
2586
+ * The points returned by `getStrokePoints`, and the input for `getStrokeOutlinePoints`
2587
+ *
2588
+ * @public
2589
+ */
2590
+ export declare interface StrokePoint {
2591
+ point: Vec;
2592
+ input: Vec;
2593
+ vector: Vec;
2594
+ pressure: number;
2595
+ distance: number;
2596
+ runningLength: number;
2597
+ radius: number;
2598
+ }
2599
+
2600
+ /** @public @react */
2601
+ export declare function StylePanelArrowheadPicker(): JSX_2.Element | null;
2602
+
2603
+ /** @public @react */
2604
+ export declare function StylePanelArrowKindPicker(): JSX_2.Element | null;
2605
+
2520
2606
  /** @public */
2521
- export declare interface StylePickerSetProps {
2607
+ export declare const StylePanelButtonPicker: <T extends string>(props: StylePanelButtonPickerProps<T>) => ReactElement;
2608
+
2609
+ /** @public */
2610
+ export declare interface StylePanelButtonPickerProps<T extends string> {
2611
+ title: string;
2612
+ uiType: string;
2613
+ style: StyleProp<T>;
2614
+ value: SharedStyle<T>;
2615
+ items: StyleValuesForUi<T>;
2616
+ onValueChange?(style: StyleProp<T>, value: T): void;
2617
+ onHistoryMark?(id: string): void;
2618
+ }
2619
+
2620
+ /** @public @react */
2621
+ export declare function StylePanelColorPicker(): JSX_2.Element | null;
2622
+
2623
+ /** @public */
2624
+ export declare interface StylePanelContext {
2522
2625
  styles: ReadonlySharedStyleMap;
2626
+ showUiLabels: boolean;
2627
+ onHistoryMark(id: string): void;
2628
+ onValueChange<T>(style: StyleProp<T>, value: T): void;
2629
+ }
2630
+
2631
+ /** @public @react */
2632
+ export declare function StylePanelContextProvider({ children, styles }: StylePanelContextProviderProps): JSX_2.Element;
2633
+
2634
+ /** @public */
2635
+ export declare interface StylePanelContextProviderProps {
2636
+ children: React.ReactNode;
2637
+ styles: ReadonlySharedStyleMap;
2638
+ }
2639
+
2640
+ /** @public @react */
2641
+ export declare function StylePanelDashPicker(): JSX_2.Element | null;
2642
+
2643
+ /** @public @react */
2644
+ export declare const StylePanelDoubleDropdownPicker: <T extends string>(props: StylePanelDoubleDropdownPickerProps<T>) => React_2.JSX.Element;
2645
+
2646
+ /** @public */
2647
+ export declare interface StylePanelDoubleDropdownPickerProps<T extends string> {
2648
+ uiTypeA: string;
2649
+ uiTypeB: string;
2650
+ label: Exclude<string, TLUiTranslationKey> | TLUiTranslationKey;
2651
+ labelA: Exclude<string, TLUiTranslationKey> | TLUiTranslationKey;
2652
+ labelB: Exclude<string, TLUiTranslationKey> | TLUiTranslationKey;
2653
+ itemsA: StyleValuesForUi<T>;
2654
+ itemsB: StyleValuesForUi<T>;
2655
+ styleA: StyleProp<T>;
2656
+ styleB: StyleProp<T>;
2657
+ valueA: SharedStyle<T>;
2658
+ valueB: SharedStyle<T>;
2659
+ onValueChange?(style: StyleProp<T>, value: T): void;
2660
+ }
2661
+
2662
+ /** @public @react */
2663
+ export declare const StylePanelDropdownPicker: <T extends string>(props: StylePanelDropdownPickerProps<T>) => React_2.JSX.Element;
2664
+
2665
+ /** @public */
2666
+ export declare interface StylePanelDropdownPickerProps<T extends string> {
2667
+ id: string;
2668
+ label?: Exclude<string, TLUiTranslationKey> | TLUiTranslationKey;
2669
+ uiType: string;
2670
+ stylePanelType: string;
2671
+ style: StyleProp<T>;
2672
+ value: SharedStyle<T>;
2673
+ items: StyleValuesForUi<T>;
2674
+ type: 'icon' | 'menu' | 'tool';
2675
+ onValueChange?(style: StyleProp<T>, value: T): void;
2523
2676
  }
2524
2677
 
2678
+ /** @public @react */
2679
+ export declare function StylePanelFillPicker(): JSX_2.Element | null;
2680
+
2681
+ /** @public @react */
2682
+ export declare function StylePanelFontPicker(): JSX_2.Element | null;
2683
+
2684
+ /** @public @react */
2685
+ export declare function StylePanelGeoShapePicker(): JSX_2.Element | null;
2686
+
2687
+ /** @public @react */
2688
+ export declare function StylePanelLabelAlignPicker(): JSX_2.Element | null;
2689
+
2690
+ /** @public @react */
2691
+ export declare function StylePanelOpacityPicker(): JSX_2.Element | null;
2692
+
2693
+ /** @public @react */
2694
+ export declare function StylePanelSection({ children }: StylePanelSectionProps): JSX_2.Element;
2695
+
2696
+ /** @public */
2697
+ export declare interface StylePanelSectionProps {
2698
+ children: React_3.ReactNode;
2699
+ }
2700
+
2701
+ /** @public @react */
2702
+ export declare function StylePanelSizePicker(): JSX_2.Element | null;
2703
+
2704
+ /** @public @react */
2705
+ export declare function StylePanelSplinePicker(): JSX_2.Element | null;
2706
+
2707
+ /** @public @react */
2708
+ export declare function StylePanelSubheading({ children }: StylePanelSubheadingProps): JSX_2.Element;
2709
+
2710
+ /** @public */
2711
+ export declare interface StylePanelSubheadingProps {
2712
+ children: React.ReactNode;
2713
+ }
2714
+
2715
+ /** @public @react */
2716
+ export declare function StylePanelTextAlignPicker(): JSX_2.Element | null;
2717
+
2525
2718
  /** @public */
2526
2719
  export declare type StyleValuesForUi<T> = readonly {
2527
2720
  readonly icon: string | TLUiIconJsx;
@@ -2561,12 +2754,6 @@ export declare interface TextAreaProps {
2561
2754
  */
2562
2755
  export declare const TextDirection: Extension<any, any>;
2563
2756
 
2564
- /**
2565
- * @deprecated Use `PlainTextLabel` instead.
2566
- * @public
2567
- */
2568
- export declare const TextLabel: React_3.NamedExoticComponent<PlainTextLabelProps>;
2569
-
2570
2757
  /** @public */
2571
2758
  export declare interface TextShapeOptions {
2572
2759
  /** How much addition padding should be added to the horizontal geometry of the shape when binding to an arrow? */
@@ -2644,18 +2831,9 @@ export declare class TextShapeUtil extends ShapeUtil<TLTextShape> {
2644
2831
  } | undefined;
2645
2832
  }
2646
2833
 
2647
- /** @public @react */
2648
- export declare function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps): JSX_2.Element | null;
2649
-
2650
2834
  /** @public @react */
2651
2835
  export declare function TextToolbarItem(): JSX_2.Element;
2652
2836
 
2653
- /** @public */
2654
- export declare interface ThemeStylePickerSetProps {
2655
- styles: ReadonlySharedStyleMap;
2656
- theme: TLDefaultColorTheme;
2657
- }
2658
-
2659
2837
  /**
2660
2838
  * Default extensions for the TipTap editor.
2661
2839
  *
@@ -2912,8 +3090,12 @@ export declare function TldrawUiButtonIcon({ icon, small, invertIcon }: TLUiButt
2912
3090
  /** @public @react */
2913
3091
  export declare function TldrawUiButtonLabel({ children }: TLUiButtonLabelProps): JSX_2.Element;
2914
3092
 
2915
- /** @public */
2916
- export declare const TldrawUiButtonPicker: <T extends string>(props: TLUiButtonPickerProps<T>) => ReactElement;
3093
+ /**
3094
+ * A column, usually of UI controls like buttons, select dropdown, checkboxes, etc.
3095
+ *
3096
+ * @public @react
3097
+ */
3098
+ export declare const TldrawUiColumn: ForwardRefExoticComponent<TLUiLayoutProps & RefAttributes<HTMLDivElement>>;
2917
3099
 
2918
3100
  /** @public @react */
2919
3101
  export declare function TldrawUiComponentsProvider({ overrides, children, }: TLUiComponentsProviderProps): JSX_2.Element;
@@ -2977,9 +3159,19 @@ export declare function TldrawUiDropdownMenuTrigger({ children, ...rest }: TLUiD
2977
3159
  /** @public @react */
2978
3160
  export declare function TldrawUiEventsProvider({ onEvent, children }: EventsProviderProps): JSX_2.Element;
2979
3161
 
3162
+ /**
3163
+ * A tight grid 4 elements wide, usually of UI controls like buttons, select dropdown, checkboxes,
3164
+ * etc.
3165
+ *
3166
+ * @public @react */
3167
+ export declare const TldrawUiGrid: ForwardRefExoticComponent<TLUiLayoutProps & RefAttributes<HTMLDivElement>>;
3168
+
2980
3169
  /** @public @react */
2981
3170
  export declare const TldrawUiIcon: NamedExoticComponent<TLUiIconProps>;
2982
3171
 
3172
+ /** @public @react */
3173
+ export declare function TldrawUiInFrontOfTheCanvas(): JSX_2.Element;
3174
+
2983
3175
  /** @public @react */
2984
3176
  export declare const TldrawUiInput: React_2.ForwardRefExoticComponent<TLUiInputProps & React_2.RefAttributes<HTMLInputElement>>;
2985
3177
 
@@ -2993,7 +3185,7 @@ export declare function TldrawUiMenuActionCheckboxItem({ actionId, ...rest }: TL
2993
3185
  export declare function TldrawUiMenuActionItem({ actionId, ...rest }: TLUiMenuActionItemProps): JSX_2.Element | null;
2994
3186
 
2995
3187
  /** @public @react */
2996
- export declare function TldrawUiMenuCheckboxItem<TranslationKey extends string = string, IconType extends string = string>({ id, kbd, label, readonlyOk, onSelect, toggle, disabled, checked, }: TLUiMenuCheckboxItemProps<TranslationKey, IconType>): JSX_2.Element | null;
3188
+ export declare function TldrawUiMenuCheckboxItem<TranslationKey extends string = string, IconType extends string = string>({ id, kbd, label, lang, readonlyOk, onSelect, toggle, disabled, checked, }: TLUiMenuCheckboxItemProps<TranslationKey, IconType>): JSX_2.Element | null;
2997
3189
 
2998
3190
  /** @public @react */
2999
3191
  export declare function TldrawUiMenuContextProvider({ type, sourceId, children, }: TLUiMenuContextProviderProps): JSX_2.Element;
@@ -3002,7 +3194,7 @@ export declare function TldrawUiMenuContextProvider({ type, sourceId, children,
3002
3194
  export declare function TldrawUiMenuGroup({ id, label, className, children }: TLUiMenuGroupProps): boolean | JSX_2.Element | Iterable<ReactNode> | null | number | string | undefined;
3003
3195
 
3004
3196
  /** @public @react */
3005
- 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;
3197
+ 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;
3006
3198
 
3007
3199
  /** @public @react */
3008
3200
  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;
@@ -3010,8 +3202,24 @@ export declare function TldrawUiMenuSubmenu<Translation extends string = string>
3010
3202
  /** @public @react */
3011
3203
  export declare function TldrawUiMenuToolItem({ toolId, ...rest }: TLUiMenuToolItemProps): JSX_2.Element | null;
3012
3204
 
3205
+ /** @public */
3206
+ export declare interface TldrawUiOrientationContext {
3207
+ orientation: 'horizontal' | 'vertical';
3208
+ tooltipSide: 'bottom' | 'left' | 'right' | 'top';
3209
+ }
3210
+
3013
3211
  /** @public @react */
3014
- export declare function TldrawUiPopover({ id, children, onOpenChange, open }: TLUiPopoverProps): JSX_2.Element;
3212
+ export declare function TldrawUiOrientationProvider({ children, orientation, tooltipSide, }: TldrawUiOrientationProviderProps): JSX_2.Element;
3213
+
3214
+ /** @public */
3215
+ export declare interface TldrawUiOrientationProviderProps {
3216
+ children: ReactNode;
3217
+ orientation: 'horizontal' | 'vertical';
3218
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3219
+ }
3220
+
3221
+ /** @public @react */
3222
+ export declare function TldrawUiPopover({ id, children, onOpenChange, open, className }: TLUiPopoverProps): JSX_2.Element;
3015
3223
 
3016
3224
  /** @public @react */
3017
3225
  export declare function TldrawUiPopoverContent({ side, children, align, sideOffset, alignOffset, disableEscapeKeyDown, autoFocusFirstButton, }: TLUiPopoverContentProps): JSX_2.Element;
@@ -3041,6 +3249,13 @@ export declare interface TldrawUiProps extends TLUiContextProviderProps {
3041
3249
  assetUrls?: TLUiAssetUrlOverrides;
3042
3250
  }
3043
3251
 
3252
+ /**
3253
+ * A row, usually of UI controls like buttons, select dropdown, checkboxes, etc.
3254
+ *
3255
+ * @public @react
3256
+ */
3257
+ export declare const TldrawUiRow: ForwardRefExoticComponent<TLUiLayoutProps & RefAttributes<HTMLDivElement>>;
3258
+
3044
3259
  /** @public @react */
3045
3260
  export declare const TldrawUiSlider: React_3.ForwardRefExoticComponent<TLUiSliderProps & React_3.RefAttributes<HTMLDivElement>>;
3046
3261
 
@@ -3054,10 +3269,32 @@ export declare const TldrawUiToolbar: React_3.ForwardRefExoticComponent<TLUiTool
3054
3269
  export declare const TldrawUiToolbarButton: React_3.ForwardRefExoticComponent<TLUiToolbarButtonProps & React_3.RefAttributes<HTMLButtonElement>>;
3055
3270
 
3056
3271
  /** @public @react */
3057
- export declare const TldrawUiToolbarToggleGroup: ({ children, className, type, ...props }: TLUiToolbarToggleGroupProps) => JSX_2.Element;
3272
+ export declare const TldrawUiToolbarToggleGroup: ({ children, className, type, asChild, ...props }: TLUiToolbarToggleGroupProps) => JSX_2.Element;
3273
+
3274
+ /** @public @react */
3275
+ export declare const TldrawUiToolbarToggleItem: ({ children, className, type, value, tooltip, ...props }: TLUiToolbarToggleItemProps) => JSX_2.Element;
3058
3276
 
3059
3277
  /** @public @react */
3060
- export declare const TldrawUiToolbarToggleItem: ({ children, className, type, value, ...props }: TLUiToolbarToggleItemProps) => JSX_2.Element;
3278
+ export declare const TldrawUiTooltip: React_3.ForwardRefExoticComponent<TldrawUiTooltipProps & React_3.RefAttributes<HTMLButtonElement>>;
3279
+
3280
+ /** @public */
3281
+ export declare interface TldrawUiTooltipProps {
3282
+ children: React_3.ReactNode;
3283
+ content?: React_3.ReactNode | string;
3284
+ side?: 'bottom' | 'left' | 'right' | 'top';
3285
+ sideOffset?: number;
3286
+ disabled?: boolean;
3287
+ showOnMobile?: boolean;
3288
+ delayDuration?: number;
3289
+ }
3290
+
3291
+ /** @public @react */
3292
+ export declare function TldrawUiTooltipProvider({ children }: TldrawUiTooltipProviderProps): JSX_2.Element;
3293
+
3294
+ /** @public */
3295
+ export declare interface TldrawUiTooltipProviderProps {
3296
+ children: React_3.ReactNode;
3297
+ }
3061
3298
 
3062
3299
  /* Excluded from this release type: TldrawUiTranslationProvider */
3063
3300
 
@@ -3219,18 +3456,6 @@ export declare interface TLUiButtonLabelProps {
3219
3456
  children?: ReactNode;
3220
3457
  }
3221
3458
 
3222
- /** @public */
3223
- export declare interface TLUiButtonPickerProps<T extends string> {
3224
- title: string;
3225
- uiType: string;
3226
- style: StyleProp<T>;
3227
- value: SharedStyle<T>;
3228
- items: StyleValuesForUi<T>;
3229
- theme: TLDefaultColorTheme;
3230
- onValueChange(style: StyleProp<T>, value: T): void;
3231
- onHistoryMark?(id: string): void;
3232
- }
3233
-
3234
3459
  /** @public */
3235
3460
  export declare interface TLUiButtonProps extends React_2.HTMLAttributes<HTMLButtonElement> {
3236
3461
  disabled?: boolean;
@@ -3265,6 +3490,7 @@ export declare interface TLUiComponents {
3265
3490
  Dialogs?: ComponentType | null;
3266
3491
  Toasts?: ComponentType | null;
3267
3492
  A11y?: ComponentType | null;
3493
+ FollowingIndicator?: ComponentType | null;
3268
3494
  }
3269
3495
 
3270
3496
  /** @public */
@@ -3572,6 +3798,7 @@ export declare interface TLUiEventMap {
3572
3798
  'toggle-lock': null;
3573
3799
  'toggle-reduce-motion': null;
3574
3800
  'toggle-keyboard-shortcuts': null;
3801
+ 'toggle-ui-labels': null;
3575
3802
  'toggle-edge-scrolling': null;
3576
3803
  'color-scheme': {
3577
3804
  value: string;
@@ -3589,11 +3816,14 @@ export declare interface TLUiEventMap {
3589
3816
  'flatten-to-image': null;
3590
3817
  'a11y-repeat-shape-announce': null;
3591
3818
  'open-url': {
3592
- url: string;
3819
+ destinationUrl: string;
3593
3820
  };
3594
3821
  'open-context-menu': null;
3595
3822
  'adjust-shape-styles': null;
3596
3823
  'copy-link': null;
3824
+ 'drag-tool': {
3825
+ id: string;
3826
+ };
3597
3827
  'image-replace': null;
3598
3828
  'video-replace': null;
3599
3829
  'open-kbd-shortcuts': null;
@@ -3667,6 +3897,7 @@ export declare interface TLUiInputProps {
3667
3897
  shouldManuallyMaintainScrollPositionWhenFocused?: boolean;
3668
3898
  value?: string;
3669
3899
  'data-testid'?: string;
3900
+ 'aria-label'?: string;
3670
3901
  }
3671
3902
 
3672
3903
  /** @public */
@@ -3680,6 +3911,13 @@ export declare type TLUiKeyboardShortcutsDialogProps = TLUiDialogProps & {
3680
3911
  children?: ReactNode;
3681
3912
  };
3682
3913
 
3914
+ /** @public */
3915
+ export declare interface TLUiLayoutProps extends HTMLAttributes<HTMLDivElement> {
3916
+ children: ReactNode;
3917
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3918
+ asChild?: boolean;
3919
+ }
3920
+
3683
3921
  /** @public */
3684
3922
  export declare interface TLUiMainMenuProps {
3685
3923
  children?: ReactNode;
@@ -3704,6 +3942,7 @@ export declare interface TLUiMenuCheckboxItemProps<TranslationKey extends string
3704
3942
  label?: {
3705
3943
  [key: string]: TranslationKey;
3706
3944
  } | TranslationKey;
3945
+ lang?: string;
3707
3946
  readonlyOk?: boolean;
3708
3947
  onSelect(source: TLUiEventSource): Promise<void> | void;
3709
3948
  toggle?: boolean;
@@ -3719,7 +3958,7 @@ export declare interface TLUiMenuContextProviderProps {
3719
3958
  }
3720
3959
 
3721
3960
  /** @public */
3722
- export declare type TLUiMenuContextType = 'context-menu' | 'helper-buttons' | 'icons' | 'keyboard-shortcuts' | 'menu' | 'panel' | 'small-icons' | 'toolbar-overflow' | 'toolbar';
3961
+ export declare type TLUiMenuContextType = 'context-menu' | 'helper-buttons' | 'icons' | 'keyboard-shortcuts' | 'menu' | 'small-icons' | 'toolbar-overflow' | 'toolbar';
3723
3962
 
3724
3963
  /** @public */
3725
3964
  export declare interface TLUiMenuGroupProps<TranslationKey extends string = string> {
@@ -3779,6 +4018,10 @@ export declare interface TLUiMenuItemProps<TranslationKey extends string = strin
3779
4018
  * Whether the item is selected.
3780
4019
  */
3781
4020
  isSelected?: boolean;
4021
+ /**
4022
+ * The function to call when the item is dragged. If this is provided, the item will be draggable.
4023
+ */
4024
+ onDragStart?(source: TLUiEventSource, info: TLPointerEventInfo): void;
3782
4025
  }
3783
4026
 
3784
4027
  /** @public */
@@ -3824,6 +4067,7 @@ export declare interface TLUiPopoverProps {
3824
4067
  open?: boolean;
3825
4068
  children: React_3.ReactNode;
3826
4069
  onOpenChange?(isOpen: boolean): void;
4070
+ className?: string;
3827
4071
  }
3828
4072
 
3829
4073
  /** @public */
@@ -3849,19 +4093,15 @@ export declare interface TLUiSliderProps {
3849
4093
  label: string;
3850
4094
  title: string;
3851
4095
  onValueChange(value: number): void;
3852
- onHistoryMark(id: string): void;
4096
+ onHistoryMark?(id: string): void;
3853
4097
  'data-testid'?: string;
3854
4098
  ariaValueModifier?: number;
3855
4099
  }
3856
4100
 
3857
- /** @public */
3858
- export declare interface TLUiStylePanelContentProps {
3859
- styles: ReturnType<typeof useRelevantStyles>;
3860
- }
3861
-
3862
4101
  /** @public */
3863
4102
  export declare interface TLUiStylePanelProps {
3864
4103
  isMobile?: boolean;
4104
+ styles?: null | ReadonlySharedStyleMap;
3865
4105
  children?: ReactNode;
3866
4106
  }
3867
4107
 
@@ -3909,6 +4149,7 @@ export declare interface TLUiToolbarButtonProps extends React_3.HTMLAttributes<H
3909
4149
  disabled?: boolean;
3910
4150
  isActive?: boolean;
3911
4151
  type: 'icon' | 'menu' | 'tool';
4152
+ tooltip?: string;
3912
4153
  }
3913
4154
 
3914
4155
  /** @public */
@@ -3917,6 +4158,8 @@ export declare interface TLUiToolbarProps extends React_3.HTMLAttributes<HTMLDiv
3917
4158
  className?: string;
3918
4159
  dir?: 'ltr' | 'rtl';
3919
4160
  label: string;
4161
+ orientation?: 'grid' | 'horizontal' | 'vertical';
4162
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3920
4163
  }
3921
4164
 
3922
4165
  /** @public */
@@ -3927,6 +4170,7 @@ export declare interface TLUiToolbarToggleGroupProps extends React_3.HTMLAttribu
3927
4170
  value: any;
3928
4171
  defaultValue?: any;
3929
4172
  type: 'multiple' | 'single';
4173
+ asChild?: boolean;
3930
4174
  }
3931
4175
 
3932
4176
  /** @public */
@@ -3935,6 +4179,7 @@ export declare interface TLUiToolbarToggleItemProps extends React_3.HTMLAttribut
3935
4179
  className?: string;
3936
4180
  type: 'icon' | 'tool';
3937
4181
  value: string;
4182
+ tooltip?: React_3.ReactNode;
3938
4183
  }
3939
4184
 
3940
4185
  /** @public */
@@ -3944,6 +4189,7 @@ export declare interface TLUiToolItem<TranslationKey extends string = string, Ic
3944
4189
  shortcutsLabel?: TranslationKey;
3945
4190
  icon: IconType | TLUiIconJsx;
3946
4191
  onSelect(source: TLUiEventSource): void;
4192
+ onDragStart?(source: TLUiEventSource, info: TLPointerEventInfo): void;
3947
4193
  /**
3948
4194
  * The keyboard shortcut for this tool. This is a string that can be a single key,
3949
4195
  * or a combination of keys.
@@ -3979,7 +4225,7 @@ export declare interface TLUiTranslation {
3979
4225
  export declare type TLUiTranslationContextType = TLUiTranslation;
3980
4226
 
3981
4227
  /** @public */
3982
- 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-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';
4228
+ 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.maximum-size' | '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-2' | '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.selected' | '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-confirm' | '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';
3983
4229
 
3984
4230
  /** @public */
3985
4231
  export declare interface TLUiTranslationProviderProps {
@@ -4120,6 +4366,9 @@ export declare function ToggleToolLockItem(): JSX_2.Element;
4120
4366
  /** @public @react */
4121
4367
  export declare function ToggleTransparentBgMenuItem(): JSX_2.Element;
4122
4368
 
4369
+ /** @public @react */
4370
+ export declare function ToggleUiLabelsItem(): JSX_2.Element;
4371
+
4123
4372
  /** @public @react */
4124
4373
  export declare function ToggleWrapModeItem(): JSX_2.Element;
4125
4374
 
@@ -4158,13 +4407,6 @@ export declare function useA11y(): TLUiA11yContextType;
4158
4407
  /** @public */
4159
4408
  export declare function useActions(): TLUiActionsContextType;
4160
4409
 
4161
- /**
4162
- * @deprecated Use {@link useImageOrVideoAsset} instead.
4163
- *
4164
- * @public
4165
- */
4166
- export declare const useAsset: typeof useImageOrVideoAsset;
4167
-
4168
4410
  /* Excluded from this release type: useAssetUrls */
4169
4411
 
4170
4412
  /** @public */
@@ -4219,7 +4461,11 @@ export declare function useDefaultHelpers(): {
4219
4461
  copy: (source: TLUiEventSource) => Promise<void>;
4220
4462
  copyAs: (ids: TLShapeId[], format?: TLCopyType) => void;
4221
4463
  cut: (source: TLUiEventSource) => Promise<void>;
4222
- exportAs: (ids: TLShapeId[], format: TLExportType | undefined, name: string | undefined) => void;
4464
+ exportAs: (ids: TLShapeId[], opts?: {
4465
+ format?: TLExportType;
4466
+ name?: string;
4467
+ scale?: number;
4468
+ }) => void;
4223
4469
  getEmbedDefinition: (url: string) => TLEmbedResult;
4224
4470
  insertMedia: () => Promise<void>;
4225
4471
  isMobile: boolean;
@@ -4241,7 +4487,7 @@ export declare function useEditablePlainText(shapeId: TLShapeId, type: string, t
4241
4487
  handleChange: ({ plaintext }: {
4242
4488
  plaintext: string;
4243
4489
  }) => void;
4244
- handleDoubleClick: (e: any) => any;
4490
+ handleDoubleClick: (e: React_3.MouseEvent) => void;
4245
4491
  handleFocus: () => void;
4246
4492
  handleInputPointerDown: (e: React_3.PointerEvent) => void;
4247
4493
  handleKeyDown: (e: KeyboardEvent) => void;
@@ -4258,7 +4504,7 @@ export declare function useEditableRichText(shapeId: TLShapeId, type: string, ri
4258
4504
  handleChange: ({ richText }: {
4259
4505
  richText: TLRichText;
4260
4506
  }) => void;
4261
- handleDoubleClick: (e: any) => any;
4507
+ handleDoubleClick: (e: React.MouseEvent) => void;
4262
4508
  handleFocus: () => void;
4263
4509
  handleInputPointerDown: (e: React.PointerEvent) => void;
4264
4510
  handleKeyDown: (e: KeyboardEvent) => void;
@@ -4269,14 +4515,12 @@ export declare function useEditableRichText(shapeId: TLShapeId, type: string, ri
4269
4515
  rInput: RefObject<HTMLDivElement>;
4270
4516
  };
4271
4517
 
4272
- /**
4273
- * @deprecated Use `useEditablePlainText` instead.
4274
- * @public
4275
- */
4276
- export declare const useEditableText: typeof useEditablePlainText;
4277
-
4278
4518
  /** @public */
4279
- export declare function useExportAs(): (ids: TLShapeId[], format: TLExportType | undefined, name: string | undefined) => void;
4519
+ export declare function useExportAs(): (ids: TLShapeId[], opts?: {
4520
+ format?: TLExportType;
4521
+ name?: string;
4522
+ scale?: number;
4523
+ }) => void;
4280
4524
 
4281
4525
  /**
4282
4526
  * This is a handy helper hook that resolves an asset to an optimized URL for a given shape, or its
@@ -4350,9 +4594,15 @@ export declare const useSelectedShapesAnnouncer: () => void;
4350
4594
  /** @public */
4351
4595
  export declare function useShowCollaborationUi(): boolean;
4352
4596
 
4597
+ /** @public */
4598
+ export declare function useStylePanelContext(): StylePanelContext;
4599
+
4353
4600
  /** @public */
4354
4601
  export declare function useTldrawUiComponents(): TLUiComponents;
4355
4602
 
4603
+ /** @public */
4604
+ export declare function useTldrawUiOrientation(): TldrawUiOrientationContext;
4605
+
4356
4606
  /** @public */
4357
4607
  export declare function useToasts(): TLUiToastsContextType;
4358
4608