tldraw 3.16.0-canary.f60032f16651 → 3.16.0-canary.faec5de49906

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 (460) hide show
  1. package/dist-cjs/index.d.ts +323 -106
  2. package/dist-cjs/index.js +45 -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 +5 -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/elbow/ElbowArrowDebug.js +3 -3
  15. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  16. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +3 -3
  17. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  18. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  19. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  20. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +20 -13
  21. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  22. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  23. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  24. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +3 -2
  25. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  26. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +2 -1
  27. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
  28. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +5 -1
  29. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  30. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +6 -3
  31. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +2 -2
  32. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +5 -1
  33. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  34. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +6 -5
  35. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  36. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +1 -3
  37. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +2 -2
  38. package/dist-cjs/lib/shapes/shared/ShapeFill.js +4 -4
  39. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  40. package/dist-cjs/lib/shapes/shared/freehand/svg.js.map +2 -2
  41. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js +0 -2
  42. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js.map +2 -2
  43. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js +0 -2
  44. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js.map +2 -2
  45. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js +10 -1
  46. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js.map +2 -2
  47. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +2 -2
  48. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  49. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  50. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  51. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +25 -1
  52. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  53. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +12 -0
  54. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  55. package/dist-cjs/lib/ui/TldrawUi.js +27 -12
  56. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  57. package/dist-cjs/lib/ui/assetUrls.js +13 -10
  58. package/dist-cjs/lib/ui/assetUrls.js.map +2 -2
  59. package/dist-cjs/lib/ui/components/AccessibilityMenu.js +35 -0
  60. package/dist-cjs/lib/ui/components/AccessibilityMenu.js.map +7 -0
  61. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +12 -3
  62. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  63. package/dist-cjs/lib/ui/components/{FollowingIndicator.js → DefaultFollowingIndicator.js} +6 -6
  64. package/dist-cjs/lib/ui/components/DefaultFollowingIndicator.js.map +7 -0
  65. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +3 -2
  66. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
  67. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +6 -6
  68. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +1 -1
  69. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +3 -3
  70. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  71. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  72. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  73. package/dist-cjs/lib/ui/components/MobileStylePanel.js +5 -3
  74. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  75. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +1 -1
  76. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
  77. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +2 -1
  78. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  79. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +3 -2
  80. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
  81. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
  82. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
  83. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +11 -4
  84. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  85. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +249 -279
  86. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  87. package/dist-cjs/lib/ui/components/{primitives/TldrawUiButtonPicker.js → StylePanel/StylePanelButtonPicker.js} +52 -56
  88. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +7 -0
  89. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js +68 -0
  90. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js.map +7 -0
  91. package/dist-cjs/lib/ui/components/StylePanel/{DoubleDropdownPicker.js → StylePanelDoubleDropdownPicker.js} +26 -25
  92. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js.map +7 -0
  93. package/dist-cjs/lib/ui/components/StylePanel/{DropdownPicker.js → StylePanelDropdownPicker.js} +47 -43
  94. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js.map +7 -0
  95. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js +28 -0
  96. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js.map +7 -0
  97. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js +3 -2
  98. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
  99. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +39 -10
  100. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  101. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -21
  102. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  103. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js +15 -3
  104. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js.map +2 -2
  105. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js +3 -3
  106. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js.map +2 -2
  107. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +189 -80
  108. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  109. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +5 -4
  110. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  111. package/dist-cjs/lib/ui/components/menu-items.js +6 -0
  112. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  113. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +10 -1
  114. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  115. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +3 -2
  116. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
  117. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +18 -5
  118. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  119. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +32 -7
  120. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  121. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +294 -0
  122. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +7 -0
  123. package/dist-cjs/lib/ui/components/primitives/layout.js +76 -0
  124. package/dist-cjs/lib/ui/components/primitives/layout.js.map +7 -0
  125. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  126. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
  127. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  128. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +17 -31
  129. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  130. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js +3 -2
  131. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js.map +2 -2
  132. package/dist-cjs/lib/ui/context/actions.js +38 -10
  133. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  134. package/dist-cjs/lib/ui/context/components.js +2 -0
  135. package/dist-cjs/lib/ui/context/components.js.map +2 -2
  136. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  137. package/dist-cjs/lib/ui/hooks/useExportAs.js +3 -2
  138. package/dist-cjs/lib/ui/hooks/useExportAs.js.map +2 -2
  139. package/dist-cjs/lib/ui/hooks/useTools.js +22 -4
  140. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  141. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  142. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +6 -1
  143. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  144. package/dist-cjs/lib/ui/kbd-utils.js +9 -3
  145. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  146. package/dist-cjs/lib/ui/version.js +3 -3
  147. package/dist-cjs/lib/ui/version.js.map +1 -1
  148. package/dist-cjs/lib/utils/export/copyAs.js +1 -2
  149. package/dist-cjs/lib/utils/export/copyAs.js.map +2 -2
  150. package/dist-cjs/lib/utils/export/export.js +0 -20
  151. package/dist-cjs/lib/utils/export/export.js.map +2 -2
  152. package/dist-cjs/lib/utils/export/exportAs.js +1 -2
  153. package/dist-cjs/lib/utils/export/exportAs.js.map +2 -2
  154. package/dist-esm/index.d.mts +323 -106
  155. package/dist-esm/index.mjs +83 -29
  156. package/dist-esm/index.mjs.map +2 -2
  157. package/dist-esm/lib/Tldraw.mjs +14 -4
  158. package/dist-esm/lib/Tldraw.mjs.map +2 -2
  159. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  160. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  161. package/dist-esm/lib/defaultExternalContentHandlers.mjs +5 -4
  162. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  163. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +4 -3
  164. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  165. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +6 -0
  166. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +3 -3
  167. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  168. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  169. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +4 -3
  170. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  171. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  172. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  173. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +21 -13
  174. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  175. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  176. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  177. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +4 -2
  178. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  179. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +2 -1
  180. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  181. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +6 -1
  182. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  183. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +6 -3
  184. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +2 -2
  185. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +6 -1
  186. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  187. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +7 -5
  188. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  189. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +1 -3
  190. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  191. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +5 -4
  192. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  193. package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
  194. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs +0 -2
  195. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
  196. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs +0 -2
  197. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs.map +2 -2
  198. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs +10 -1
  199. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs.map +2 -2
  200. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +3 -2
  201. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  202. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  203. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  204. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +26 -1
  205. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  206. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +13 -0
  207. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  208. package/dist-esm/lib/ui/TldrawUi.mjs +29 -14
  209. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  210. package/dist-esm/lib/ui/assetUrls.mjs +13 -10
  211. package/dist-esm/lib/ui/assetUrls.mjs.map +2 -2
  212. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs +19 -0
  213. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs.map +7 -0
  214. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +12 -3
  215. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  216. package/dist-esm/lib/ui/components/{FollowingIndicator.mjs → DefaultFollowingIndicator.mjs} +3 -3
  217. package/dist-esm/lib/ui/components/DefaultFollowingIndicator.mjs.map +7 -0
  218. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +3 -2
  219. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
  220. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +6 -6
  221. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +1 -1
  222. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +3 -5
  223. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  224. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  225. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  226. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +6 -3
  227. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  228. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +1 -1
  229. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
  230. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +2 -1
  231. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  232. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +3 -2
  233. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
  234. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
  235. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
  236. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +16 -5
  237. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  238. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +251 -283
  239. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  240. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +126 -0
  241. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +7 -0
  242. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs +48 -0
  243. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs.map +7 -0
  244. package/dist-esm/lib/ui/components/StylePanel/{DoubleDropdownPicker.mjs → StylePanelDoubleDropdownPicker.mjs} +23 -22
  245. package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs.map +7 -0
  246. package/dist-esm/lib/ui/components/StylePanel/{DropdownPicker.mjs → StylePanelDropdownPicker.mjs} +44 -40
  247. package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs.map +7 -0
  248. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs +8 -0
  249. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs.map +7 -0
  250. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs +3 -2
  251. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
  252. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +39 -10
  253. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  254. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -21
  255. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  256. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs +15 -3
  257. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs.map +2 -2
  258. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs +3 -3
  259. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs.map +2 -2
  260. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -81
  261. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  262. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +5 -4
  263. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  264. package/dist-esm/lib/ui/components/menu-items.mjs +6 -0
  265. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  266. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +10 -1
  267. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  268. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +3 -2
  269. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
  270. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +18 -5
  271. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  272. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +32 -7
  273. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  274. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +272 -0
  275. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +7 -0
  276. package/dist-esm/lib/ui/components/primitives/layout.mjs +46 -0
  277. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +7 -0
  278. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  279. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
  280. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  281. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +17 -31
  282. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  283. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs +3 -2
  284. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs.map +2 -2
  285. package/dist-esm/lib/ui/context/actions.mjs +38 -10
  286. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  287. package/dist-esm/lib/ui/context/components.mjs +2 -0
  288. package/dist-esm/lib/ui/context/components.mjs.map +2 -2
  289. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  290. package/dist-esm/lib/ui/hooks/useExportAs.mjs +3 -2
  291. package/dist-esm/lib/ui/hooks/useExportAs.mjs.map +2 -2
  292. package/dist-esm/lib/ui/hooks/useTools.mjs +23 -4
  293. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  294. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +6 -1
  295. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  296. package/dist-esm/lib/ui/kbd-utils.mjs +9 -3
  297. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  298. package/dist-esm/lib/ui/version.mjs +3 -3
  299. package/dist-esm/lib/ui/version.mjs.map +1 -1
  300. package/dist-esm/lib/utils/export/copyAs.mjs +1 -2
  301. package/dist-esm/lib/utils/export/copyAs.mjs.map +2 -2
  302. package/dist-esm/lib/utils/export/export.mjs +0 -20
  303. package/dist-esm/lib/utils/export/export.mjs.map +2 -2
  304. package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
  305. package/dist-esm/lib/utils/export/exportAs.mjs.map +2 -2
  306. package/package.json +11 -34
  307. package/src/index.ts +62 -22
  308. package/src/lib/Tldraw.tsx +15 -2
  309. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  310. package/src/lib/defaultExternalContentHandlers.ts +12 -4
  311. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +2 -1
  312. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +4 -3
  313. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +48 -6
  314. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +4 -3
  315. package/src/lib/shapes/arrow/arrowLabel.ts +8 -0
  316. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  317. package/src/lib/shapes/draw/DrawShapeTool.test.ts +0 -5
  318. package/src/lib/shapes/draw/DrawShapeUtil.tsx +4 -3
  319. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  320. package/src/lib/shapes/frame/FrameShapeUtil.tsx +30 -14
  321. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  322. package/src/lib/shapes/geo/GeoShapeUtil.tsx +4 -2
  323. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  324. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +7 -1
  325. package/src/lib/shapes/image/ImageShapeUtil.tsx +6 -3
  326. package/src/lib/shapes/line/LineShapeUtil.test.tsx +4 -3
  327. package/src/lib/shapes/line/LineShapeUtil.tsx +6 -1
  328. package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
  329. package/src/lib/shapes/note/NoteShapeUtil.tsx +10 -4
  330. package/src/lib/shapes/shared/PlainTextLabel.tsx +0 -6
  331. package/src/lib/shapes/shared/ShapeFill.tsx +5 -4
  332. package/src/lib/shapes/shared/freehand/svg.ts +2 -0
  333. package/src/lib/shapes/shared/useEditablePlainText.ts +0 -6
  334. package/src/lib/shapes/shared/useImageOrVideoAsset.ts +0 -7
  335. package/src/lib/shapes/shared/usePrefersReducedMotion.tsx +11 -1
  336. package/src/lib/shapes/text/TextShapeTool.test.ts +6 -5
  337. package/src/lib/shapes/text/TextShapeUtil.tsx +3 -2
  338. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  339. package/src/lib/tools/EraserTool/childStates/Erasing.ts +34 -1
  340. package/src/lib/tools/EraserTool/childStates/Pointing.ts +20 -0
  341. package/src/lib/ui/TldrawUi.tsx +33 -12
  342. package/src/lib/ui/assetUrls.ts +13 -10
  343. package/src/lib/ui/components/AccessibilityMenu.tsx +20 -0
  344. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +15 -3
  345. package/src/lib/ui/components/{FollowingIndicator.tsx → DefaultFollowingIndicator.tsx} +2 -1
  346. package/src/lib/ui/components/DefaultMenuPanel.tsx +4 -3
  347. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +6 -6
  348. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +4 -4
  349. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  350. package/src/lib/ui/components/MobileStylePanel.tsx +9 -6
  351. package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +1 -1
  352. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +3 -2
  353. package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +4 -3
  354. package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
  355. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +28 -12
  356. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +261 -343
  357. package/src/lib/ui/components/{primitives/TldrawUiButtonPicker.tsx → StylePanel/StylePanelButtonPicker.tsx} +66 -50
  358. package/src/lib/ui/components/StylePanel/StylePanelContext.tsx +63 -0
  359. package/src/lib/ui/components/StylePanel/{DoubleDropdownPicker.tsx → StylePanelDoubleDropdownPicker.tsx} +31 -22
  360. package/src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx +119 -0
  361. package/src/lib/ui/components/StylePanel/StylePanelSubheading.tsx +9 -0
  362. package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +4 -3
  363. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +33 -16
  364. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -23
  365. package/src/lib/ui/components/Toolbar/DefaultVideoToolbarContent.tsx +12 -4
  366. package/src/lib/ui/components/Toolbar/LinkEditor.tsx +5 -5
  367. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +212 -61
  368. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +14 -11
  369. package/src/lib/ui/components/menu-items.tsx +8 -0
  370. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +6 -1
  371. package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +4 -2
  372. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +52 -32
  373. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +54 -12
  374. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +365 -0
  375. package/src/lib/ui/components/primitives/layout.tsx +107 -0
  376. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
  377. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
  378. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +24 -33
  379. package/src/lib/ui/context/TldrawUiContextProvider.tsx +23 -20
  380. package/src/lib/ui/context/actions.tsx +38 -10
  381. package/src/lib/ui/context/components.tsx +3 -0
  382. package/src/lib/ui/context/events.tsx +2 -1
  383. package/src/lib/ui/hooks/useExportAs.ts +3 -2
  384. package/src/lib/ui/hooks/useTools.tsx +26 -4
  385. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +5 -0
  386. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +6 -1
  387. package/src/lib/ui/kbd-utils.ts +10 -3
  388. package/src/lib/ui/version.ts +3 -3
  389. package/src/lib/ui.css +424 -293
  390. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +5 -5
  391. package/src/lib/utils/export/copyAs.ts +1 -24
  392. package/src/lib/utils/export/export.ts +0 -36
  393. package/src/lib/utils/export/exportAs.ts +1 -32
  394. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +4 -4
  395. package/src/test/A11y.test.tsx +3 -2
  396. package/src/test/ClickManager.test.ts +7 -6
  397. package/src/test/Editor.test.tsx +20 -19
  398. package/src/test/EraserTool.test.ts +184 -13
  399. package/src/test/HandTool.test.ts +10 -9
  400. package/src/test/HighlightShape.test.ts +2 -1
  401. package/src/test/SelectTool.test.ts +3 -2
  402. package/src/test/TLUserPreferences.test.ts +4 -3
  403. package/src/test/TestEditor.ts +13 -15
  404. package/src/test/TldrawEditor.test.tsx +11 -10
  405. package/src/test/ZoomTool.test.ts +7 -6
  406. package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
  407. package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
  408. package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
  409. package/src/test/arrows-megabus.test.tsx +5 -4
  410. package/src/test/bindings.test.tsx +24 -37
  411. package/src/test/bookmark-shapes.test.ts +1 -8
  412. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +23 -7
  413. package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
  414. package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
  415. package/src/test/commands/alignShapes.test.tsx +25 -24
  416. package/src/test/commands/animationSpeed.test.ts +2 -1
  417. package/src/test/commands/centerOnPoint.test.ts +3 -2
  418. package/src/test/commands/clipboard.test.ts +3 -2
  419. package/src/test/commands/createShapes.test.ts +2 -1
  420. package/src/test/commands/deleteShapes.test.ts +2 -1
  421. package/src/test/commands/distributeShapes.test.tsx +11 -10
  422. package/src/test/commands/getSvgString.test.ts +2 -1
  423. package/src/test/commands/packShapes.test.ts +5 -4
  424. package/src/test/commands/resizeShape.test.ts +2 -1
  425. package/src/test/commands/rotateShapes.test.ts +7 -6
  426. package/src/test/commands/setCamera.test.ts +4 -3
  427. package/src/test/commands/setCurrentPage.test.ts +3 -2
  428. package/src/test/commands/stackShapes.test.ts +11 -10
  429. package/src/test/commands/stretch.test.tsx +13 -12
  430. package/src/test/createDeepLink.test.tsx +2 -1
  431. package/src/test/cropping.test.ts +3 -2
  432. package/src/test/custom-clipping.test.ts +436 -0
  433. package/src/test/drawing.test.ts +2 -1
  434. package/src/test/flipShapes.test.ts +4 -3
  435. package/src/test/frames.test.ts +25 -24
  436. package/src/test/getCulledShapes.test.tsx +74 -4
  437. package/src/test/groups.test.tsx +1 -1
  438. package/src/test/handleDeepLink.test.tsx +2 -1
  439. package/src/test/maxShapes.test.ts +3 -2
  440. package/src/test/modifiers.test.ts +5 -4
  441. package/src/test/navigation.test.ts +12 -11
  442. package/src/test/panning.test.ts +2 -1
  443. package/src/test/perf/perf.test.ts +2 -1
  444. package/src/test/registerDeepLinkListener.test.tsx +10 -9
  445. package/src/test/resizing.test.ts +39 -38
  446. package/src/test/select.test.tsx +4 -3
  447. package/src/test/selection-omnibus.test.ts +11 -10
  448. package/src/test/shapeutils.test.ts +4 -3
  449. package/src/test/translating.test.ts +9 -8
  450. package/tldraw.css +732 -583
  451. package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +0 -7
  452. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +0 -7
  453. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +0 -7
  454. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +0 -7
  455. package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +0 -7
  456. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +0 -7
  457. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +0 -7
  458. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +0 -115
  459. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +0 -7
  460. 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,6 +2113,16 @@ 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
 
@@ -2140,18 +2149,21 @@ export declare interface OnDragFromToolbarToCreateShapesOpts {
2140
2149
  onDragEnd?(id: TLShapeId): void;
2141
2150
  }
2142
2151
 
2143
- /** @public @react */
2144
- export declare function OpacitySlider(): JSX_2.Element | null;
2145
-
2146
2152
  /** @public @react */
2147
2153
  export declare function OvalToolbarItem(): JSX_2.Element;
2148
2154
 
2149
2155
  /** @public @react */
2150
- 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;
2151
2157
 
2152
2158
  /** @public */
2153
2159
  export declare interface OverflowingToolbarProps {
2154
2160
  children: React.ReactNode;
2161
+ orientation: 'horizontal' | 'vertical';
2162
+ sizingParentClassName: string;
2163
+ minItems: number;
2164
+ minSizePx: number;
2165
+ maxItems: number;
2166
+ maxSizePx: number;
2155
2167
  }
2156
2168
 
2157
2169
  /** @public @react */
@@ -2528,9 +2540,6 @@ export declare interface SolidPathBuilderOpts extends BasePathBuilderOpts {
2528
2540
 
2529
2541
  /* Excluded from this release type: Spinner */
2530
2542
 
2531
- /** @public @react */
2532
- export declare function SplineStylePickerSet({ styles }: StylePickerSetProps): JSX_2.Element | null;
2533
-
2534
2543
  /** @public @react */
2535
2544
  export declare function StackMenuItems(): JSX_2.Element;
2536
2545
 
@@ -2540,11 +2549,172 @@ export declare function StarToolbarItem(): JSX_2.Element;
2540
2549
  /** @public */
2541
2550
  export declare const STROKE_SIZES: Record<TLDefaultSizeStyle, number>;
2542
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
+
2606
+ /** @public */
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 {
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
+
2543
2634
  /** @public */
2544
- export declare interface StylePickerSetProps {
2635
+ export declare interface StylePanelContextProviderProps {
2636
+ children: React.ReactNode;
2545
2637
  styles: ReadonlySharedStyleMap;
2546
2638
  }
2547
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;
2676
+ }
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
+
2548
2718
  /** @public */
2549
2719
  export declare type StyleValuesForUi<T> = readonly {
2550
2720
  readonly icon: string | TLUiIconJsx;
@@ -2584,12 +2754,6 @@ export declare interface TextAreaProps {
2584
2754
  */
2585
2755
  export declare const TextDirection: Extension<any, any>;
2586
2756
 
2587
- /**
2588
- * @deprecated Use `PlainTextLabel` instead.
2589
- * @public
2590
- */
2591
- export declare const TextLabel: React_3.NamedExoticComponent<PlainTextLabelProps>;
2592
-
2593
2757
  /** @public */
2594
2758
  export declare interface TextShapeOptions {
2595
2759
  /** How much addition padding should be added to the horizontal geometry of the shape when binding to an arrow? */
@@ -2667,18 +2831,9 @@ export declare class TextShapeUtil extends ShapeUtil<TLTextShape> {
2667
2831
  } | undefined;
2668
2832
  }
2669
2833
 
2670
- /** @public @react */
2671
- export declare function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps): JSX_2.Element | null;
2672
-
2673
2834
  /** @public @react */
2674
2835
  export declare function TextToolbarItem(): JSX_2.Element;
2675
2836
 
2676
- /** @public */
2677
- export declare interface ThemeStylePickerSetProps {
2678
- styles: ReadonlySharedStyleMap;
2679
- theme: TLDefaultColorTheme;
2680
- }
2681
-
2682
2837
  /**
2683
2838
  * Default extensions for the TipTap editor.
2684
2839
  *
@@ -2935,8 +3090,12 @@ export declare function TldrawUiButtonIcon({ icon, small, invertIcon }: TLUiButt
2935
3090
  /** @public @react */
2936
3091
  export declare function TldrawUiButtonLabel({ children }: TLUiButtonLabelProps): JSX_2.Element;
2937
3092
 
2938
- /** @public */
2939
- 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>>;
2940
3099
 
2941
3100
  /** @public @react */
2942
3101
  export declare function TldrawUiComponentsProvider({ overrides, children, }: TLUiComponentsProviderProps): JSX_2.Element;
@@ -3000,9 +3159,19 @@ export declare function TldrawUiDropdownMenuTrigger({ children, ...rest }: TLUiD
3000
3159
  /** @public @react */
3001
3160
  export declare function TldrawUiEventsProvider({ onEvent, children }: EventsProviderProps): JSX_2.Element;
3002
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
+
3003
3169
  /** @public @react */
3004
3170
  export declare const TldrawUiIcon: NamedExoticComponent<TLUiIconProps>;
3005
3171
 
3172
+ /** @public @react */
3173
+ export declare function TldrawUiInFrontOfTheCanvas(): JSX_2.Element;
3174
+
3006
3175
  /** @public @react */
3007
3176
  export declare const TldrawUiInput: React_2.ForwardRefExoticComponent<TLUiInputProps & React_2.RefAttributes<HTMLInputElement>>;
3008
3177
 
@@ -3033,8 +3202,24 @@ export declare function TldrawUiMenuSubmenu<Translation extends string = string>
3033
3202
  /** @public @react */
3034
3203
  export declare function TldrawUiMenuToolItem({ toolId, ...rest }: TLUiMenuToolItemProps): JSX_2.Element | null;
3035
3204
 
3205
+ /** @public */
3206
+ export declare interface TldrawUiOrientationContext {
3207
+ orientation: 'horizontal' | 'vertical';
3208
+ tooltipSide: 'bottom' | 'left' | 'right' | 'top';
3209
+ }
3210
+
3211
+ /** @public @react */
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
+
3036
3221
  /** @public @react */
3037
- export declare function TldrawUiPopover({ id, children, onOpenChange, open }: TLUiPopoverProps): JSX_2.Element;
3222
+ export declare function TldrawUiPopover({ id, children, onOpenChange, open, className }: TLUiPopoverProps): JSX_2.Element;
3038
3223
 
3039
3224
  /** @public @react */
3040
3225
  export declare function TldrawUiPopoverContent({ side, children, align, sideOffset, alignOffset, disableEscapeKeyDown, autoFocusFirstButton, }: TLUiPopoverContentProps): JSX_2.Element;
@@ -3064,6 +3249,13 @@ export declare interface TldrawUiProps extends TLUiContextProviderProps {
3064
3249
  assetUrls?: TLUiAssetUrlOverrides;
3065
3250
  }
3066
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
+
3067
3259
  /** @public @react */
3068
3260
  export declare const TldrawUiSlider: React_3.ForwardRefExoticComponent<TLUiSliderProps & React_3.RefAttributes<HTMLDivElement>>;
3069
3261
 
@@ -3077,10 +3269,32 @@ export declare const TldrawUiToolbar: React_3.ForwardRefExoticComponent<TLUiTool
3077
3269
  export declare const TldrawUiToolbarButton: React_3.ForwardRefExoticComponent<TLUiToolbarButtonProps & React_3.RefAttributes<HTMLButtonElement>>;
3078
3270
 
3079
3271
  /** @public @react */
3080
- 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;
3276
+
3277
+ /** @public @react */
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
+ }
3081
3290
 
3082
3291
  /** @public @react */
3083
- export declare const TldrawUiToolbarToggleItem: ({ children, className, type, value, ...props }: TLUiToolbarToggleItemProps) => JSX_2.Element;
3292
+ export declare function TldrawUiTooltipProvider({ children }: TldrawUiTooltipProviderProps): JSX_2.Element;
3293
+
3294
+ /** @public */
3295
+ export declare interface TldrawUiTooltipProviderProps {
3296
+ children: React_3.ReactNode;
3297
+ }
3084
3298
 
3085
3299
  /* Excluded from this release type: TldrawUiTranslationProvider */
3086
3300
 
@@ -3242,18 +3456,6 @@ export declare interface TLUiButtonLabelProps {
3242
3456
  children?: ReactNode;
3243
3457
  }
3244
3458
 
3245
- /** @public */
3246
- export declare interface TLUiButtonPickerProps<T extends string> {
3247
- title: string;
3248
- uiType: string;
3249
- style: StyleProp<T>;
3250
- value: SharedStyle<T>;
3251
- items: StyleValuesForUi<T>;
3252
- theme: TLDefaultColorTheme;
3253
- onValueChange(style: StyleProp<T>, value: T): void;
3254
- onHistoryMark?(id: string): void;
3255
- }
3256
-
3257
3459
  /** @public */
3258
3460
  export declare interface TLUiButtonProps extends React_2.HTMLAttributes<HTMLButtonElement> {
3259
3461
  disabled?: boolean;
@@ -3288,6 +3490,7 @@ export declare interface TLUiComponents {
3288
3490
  Dialogs?: ComponentType | null;
3289
3491
  Toasts?: ComponentType | null;
3290
3492
  A11y?: ComponentType | null;
3493
+ FollowingIndicator?: ComponentType | null;
3291
3494
  }
3292
3495
 
3293
3496
  /** @public */
@@ -3595,6 +3798,7 @@ export declare interface TLUiEventMap {
3595
3798
  'toggle-lock': null;
3596
3799
  'toggle-reduce-motion': null;
3597
3800
  'toggle-keyboard-shortcuts': null;
3801
+ 'toggle-ui-labels': null;
3598
3802
  'toggle-edge-scrolling': null;
3599
3803
  'color-scheme': {
3600
3804
  value: string;
@@ -3612,7 +3816,7 @@ export declare interface TLUiEventMap {
3612
3816
  'flatten-to-image': null;
3613
3817
  'a11y-repeat-shape-announce': null;
3614
3818
  'open-url': {
3615
- url: string;
3819
+ destinationUrl: string;
3616
3820
  };
3617
3821
  'open-context-menu': null;
3618
3822
  'adjust-shape-styles': null;
@@ -3706,6 +3910,13 @@ export declare type TLUiKeyboardShortcutsDialogProps = TLUiDialogProps & {
3706
3910
  children?: ReactNode;
3707
3911
  };
3708
3912
 
3913
+ /** @public */
3914
+ export declare interface TLUiLayoutProps extends HTMLAttributes<HTMLDivElement> {
3915
+ children: ReactNode;
3916
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3917
+ asChild?: boolean;
3918
+ }
3919
+
3709
3920
  /** @public */
3710
3921
  export declare interface TLUiMainMenuProps {
3711
3922
  children?: ReactNode;
@@ -3745,7 +3956,7 @@ export declare interface TLUiMenuContextProviderProps {
3745
3956
  }
3746
3957
 
3747
3958
  /** @public */
3748
- export declare type TLUiMenuContextType = 'context-menu' | 'helper-buttons' | 'icons' | 'keyboard-shortcuts' | 'menu' | 'panel' | 'small-icons' | 'toolbar-overflow' | 'toolbar';
3959
+ export declare type TLUiMenuContextType = 'context-menu' | 'helper-buttons' | 'icons' | 'keyboard-shortcuts' | 'menu' | 'small-icons' | 'toolbar-overflow' | 'toolbar';
3749
3960
 
3750
3961
  /** @public */
3751
3962
  export declare interface TLUiMenuGroupProps<TranslationKey extends string = string> {
@@ -3854,6 +4065,7 @@ export declare interface TLUiPopoverProps {
3854
4065
  open?: boolean;
3855
4066
  children: React_3.ReactNode;
3856
4067
  onOpenChange?(isOpen: boolean): void;
4068
+ className?: string;
3857
4069
  }
3858
4070
 
3859
4071
  /** @public */
@@ -3879,19 +4091,15 @@ export declare interface TLUiSliderProps {
3879
4091
  label: string;
3880
4092
  title: string;
3881
4093
  onValueChange(value: number): void;
3882
- onHistoryMark(id: string): void;
4094
+ onHistoryMark?(id: string): void;
3883
4095
  'data-testid'?: string;
3884
4096
  ariaValueModifier?: number;
3885
4097
  }
3886
4098
 
3887
- /** @public */
3888
- export declare interface TLUiStylePanelContentProps {
3889
- styles: ReturnType<typeof useRelevantStyles>;
3890
- }
3891
-
3892
4099
  /** @public */
3893
4100
  export declare interface TLUiStylePanelProps {
3894
4101
  isMobile?: boolean;
4102
+ styles?: null | ReadonlySharedStyleMap;
3895
4103
  children?: ReactNode;
3896
4104
  }
3897
4105
 
@@ -3939,6 +4147,7 @@ export declare interface TLUiToolbarButtonProps extends React_3.HTMLAttributes<H
3939
4147
  disabled?: boolean;
3940
4148
  isActive?: boolean;
3941
4149
  type: 'icon' | 'menu' | 'tool';
4150
+ tooltip?: string;
3942
4151
  }
3943
4152
 
3944
4153
  /** @public */
@@ -3947,6 +4156,8 @@ export declare interface TLUiToolbarProps extends React_3.HTMLAttributes<HTMLDiv
3947
4156
  className?: string;
3948
4157
  dir?: 'ltr' | 'rtl';
3949
4158
  label: string;
4159
+ orientation?: 'grid' | 'horizontal' | 'vertical';
4160
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3950
4161
  }
3951
4162
 
3952
4163
  /** @public */
@@ -3957,6 +4168,7 @@ export declare interface TLUiToolbarToggleGroupProps extends React_3.HTMLAttribu
3957
4168
  value: any;
3958
4169
  defaultValue?: any;
3959
4170
  type: 'multiple' | 'single';
4171
+ asChild?: boolean;
3960
4172
  }
3961
4173
 
3962
4174
  /** @public */
@@ -3965,6 +4177,7 @@ export declare interface TLUiToolbarToggleItemProps extends React_3.HTMLAttribut
3965
4177
  className?: string;
3966
4178
  type: 'icon' | 'tool';
3967
4179
  value: string;
4180
+ tooltip?: string;
3968
4181
  }
3969
4182
 
3970
4183
  /** @public */
@@ -4010,7 +4223,7 @@ export declare interface TLUiTranslation {
4010
4223
  export declare type TLUiTranslationContextType = TLUiTranslation;
4011
4224
 
4012
4225
  /** @public */
4013
- 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';
4226
+ export declare type TLUiTranslationKey = 'a11y.adjust-shape-styles' | 'a11y.enlarge-shape' | 'a11y.enter-leave-container' | 'a11y.move-shape-faster' | 'a11y.move-shape' | 'a11y.multiple-shapes' | 'a11y.open-context-menu' | 'a11y.open-keyboard-shortcuts' | 'a11y.pan-camera' | 'a11y.repeat-shape' | 'a11y.rotate-shape-ccw-fine' | 'a11y.rotate-shape-ccw' | 'a11y.rotate-shape-cw-fine' | 'a11y.rotate-shape-cw' | 'a11y.select-shape-direction' | 'a11y.select-shape' | 'a11y.shape-image' | 'a11y.shape-index' | 'a11y.shape-video' | 'a11y.shrink-shape' | 'a11y.skip-to-main-content' | 'a11y.status' | 'action.align-bottom' | 'action.align-center-horizontal.short' | 'action.align-center-horizontal' | 'action.align-center-vertical.short' | 'action.align-center-vertical' | 'action.align-left' | 'action.align-right' | 'action.align-top' | 'action.back-to-content' | 'action.bring-forward' | 'action.bring-to-front' | 'action.convert-to-bookmark' | 'action.convert-to-embed' | 'action.copy-as-png.short' | 'action.copy-as-png' | 'action.copy-as-svg.short' | 'action.copy-as-svg' | 'action.copy' | 'action.cut' | 'action.delete' | 'action.distribute-horizontal.short' | 'action.distribute-horizontal' | 'action.distribute-vertical.short' | 'action.distribute-vertical' | 'action.download-original' | 'action.duplicate' | 'action.edit-link' | 'action.exit-pen-mode' | 'action.export-all-as-png.short' | 'action.export-all-as-png' | 'action.export-all-as-svg.short' | 'action.export-all-as-svg' | 'action.export-as-png.short' | 'action.export-as-png' | 'action.export-as-svg.short' | 'action.export-as-svg' | 'action.fit-frame-to-content' | 'action.flatten-to-image' | 'action.flip-horizontal.short' | 'action.flip-horizontal' | 'action.flip-vertical.short' | 'action.flip-vertical' | 'action.fork-project-on-tldraw' | 'action.fork-project' | 'action.group' | 'action.insert-embed' | 'action.insert-media' | 'action.leave-shared-project' | 'action.new-project' | 'action.new-shared-project' | 'action.open-cursor-chat' | 'action.open-embed-link' | 'action.open-file' | 'action.open-kbd-shortcuts' | 'action.pack' | 'action.paste-error-description' | 'action.paste-error-title' | 'action.paste' | 'action.print' | 'action.redo' | 'action.remove-frame' | 'action.rename' | 'action.rotate-ccw' | 'action.rotate-cw' | 'action.save-copy' | 'action.select-all' | 'action.select-none' | 'action.send-backward' | 'action.send-to-back' | 'action.share-project' | 'action.stack-horizontal.short' | 'action.stack-horizontal' | 'action.stack-vertical.short' | 'action.stack-vertical' | 'action.stop-following' | 'action.stretch-horizontal.short' | 'action.stretch-horizontal' | 'action.stretch-vertical.short' | 'action.stretch-vertical' | 'action.toggle-auto-size' | 'action.toggle-dark-mode.menu' | 'action.toggle-dark-mode' | 'action.toggle-debug-mode.menu' | 'action.toggle-debug-mode' | 'action.toggle-dynamic-size-mode.menu' | 'action.toggle-dynamic-size-mode' | 'action.toggle-edge-scrolling.menu' | 'action.toggle-edge-scrolling' | 'action.toggle-focus-mode.menu' | 'action.toggle-focus-mode' | 'action.toggle-grid.menu' | 'action.toggle-grid' | 'action.toggle-keyboard-shortcuts.menu' | 'action.toggle-keyboard-shortcuts' | 'action.toggle-lock' | 'action.toggle-paste-at-cursor.menu' | 'action.toggle-paste-at-cursor' | 'action.toggle-reduce-motion.menu' | 'action.toggle-reduce-motion' | 'action.toggle-snap-mode.menu' | 'action.toggle-snap-mode' | 'action.toggle-tool-lock.menu' | 'action.toggle-tool-lock' | 'action.toggle-transparent.context-menu' | 'action.toggle-transparent.menu' | 'action.toggle-transparent' | 'action.toggle-ui-labels.menu' | 'action.toggle-ui-labels' | 'action.toggle-wrap-mode.menu' | 'action.toggle-wrap-mode' | 'action.undo' | 'action.ungroup' | 'action.unlock-all' | 'action.zoom-in' | 'action.zoom-out' | 'action.zoom-to-100' | 'action.zoom-to-fit' | 'action.zoom-to-selection' | 'actions-menu.title' | 'align-style.end' | 'align-style.justify' | 'align-style.middle' | 'align-style.start' | 'app.loading' | 'arrow-kind-style.arc' | 'arrow-kind-style.elbow' | 'arrowheadEnd-style.arrow' | 'arrowheadEnd-style.bar' | 'arrowheadEnd-style.diamond' | 'arrowheadEnd-style.dot' | 'arrowheadEnd-style.inverted' | 'arrowheadEnd-style.none' | 'arrowheadEnd-style.pipe' | 'arrowheadEnd-style.square' | 'arrowheadEnd-style.triangle' | 'arrowheadStart-style.arrow' | 'arrowheadStart-style.bar' | 'arrowheadStart-style.diamond' | 'arrowheadStart-style.dot' | 'arrowheadStart-style.inverted' | 'arrowheadStart-style.none' | 'arrowheadStart-style.pipe' | 'arrowheadStart-style.square' | 'arrowheadStart-style.triangle' | 'assets.files.amount-too-many' | 'assets.files.size-too-big' | 'assets.files.type-not-allowed' | 'assets.files.upload-failed' | 'assets.url.failed' | 'color-style.black' | 'color-style.blue' | 'color-style.green' | 'color-style.grey' | 'color-style.light-blue' | 'color-style.light-green' | 'color-style.light-red' | 'color-style.light-violet' | 'color-style.orange' | 'color-style.red' | 'color-style.violet' | 'color-style.white' | 'color-style.yellow' | 'context-menu.arrange' | 'context-menu.copy-as' | 'context-menu.edit' | 'context-menu.export-all-as' | 'context-menu.export-as' | 'context-menu.move-to-page' | 'context-menu.reorder' | 'context-menu.title' | 'context.pages.new-page' | 'cursor-chat.type-to-chat' | 'dash-style.dashed' | 'dash-style.dotted' | 'dash-style.draw' | 'dash-style.solid' | 'document-name-menu.copy-link' | 'document.default-name' | 'edit-link-dialog.cancel' | 'edit-link-dialog.clear' | 'edit-link-dialog.detail' | 'edit-link-dialog.external-link' | 'edit-link-dialog.invalid-url' | 'edit-link-dialog.save' | 'edit-link-dialog.title' | 'edit-link-dialog.url' | 'embed-dialog.back' | 'embed-dialog.cancel' | 'embed-dialog.create' | 'embed-dialog.instruction' | 'embed-dialog.invalid-url' | 'embed-dialog.title' | 'embed-dialog.url' | 'file-system.confirm-clear.cancel' | 'file-system.confirm-clear.continue' | 'file-system.confirm-clear.description' | 'file-system.confirm-clear.dont-show-again' | 'file-system.confirm-clear.title' | 'file-system.confirm-open.cancel' | 'file-system.confirm-open.description' | 'file-system.confirm-open.dont-show-again' | 'file-system.confirm-open.open' | 'file-system.confirm-open.title' | 'file-system.file-open-error.file-format-version-too-new' | 'file-system.file-open-error.generic-corrupted-file' | 'file-system.file-open-error.not-a-tldraw-file' | 'file-system.file-open-error.title' | 'file-system.shared-document-file-open-error.description' | 'file-system.shared-document-file-open-error.title' | 'fill-style.fill' | 'fill-style.none' | 'fill-style.pattern' | 'fill-style.semi' | 'fill-style.solid' | 'focus-mode.toggle-focus-mode' | 'font-style.draw' | 'font-style.mono' | 'font-style.sans' | 'font-style.serif' | 'geo-style.arrow-down' | 'geo-style.arrow-left' | 'geo-style.arrow-right' | 'geo-style.arrow-up' | 'geo-style.check-box' | 'geo-style.cloud' | 'geo-style.diamond' | 'geo-style.ellipse' | 'geo-style.heart' | 'geo-style.hexagon' | 'geo-style.octagon' | 'geo-style.oval' | 'geo-style.pentagon' | 'geo-style.rectangle' | 'geo-style.rhombus-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.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';
4014
4227
 
4015
4228
  /** @public */
4016
4229
  export declare interface TLUiTranslationProviderProps {
@@ -4151,6 +4364,9 @@ export declare function ToggleToolLockItem(): JSX_2.Element;
4151
4364
  /** @public @react */
4152
4365
  export declare function ToggleTransparentBgMenuItem(): JSX_2.Element;
4153
4366
 
4367
+ /** @public @react */
4368
+ export declare function ToggleUiLabelsItem(): JSX_2.Element;
4369
+
4154
4370
  /** @public @react */
4155
4371
  export declare function ToggleWrapModeItem(): JSX_2.Element;
4156
4372
 
@@ -4189,13 +4405,6 @@ export declare function useA11y(): TLUiA11yContextType;
4189
4405
  /** @public */
4190
4406
  export declare function useActions(): TLUiActionsContextType;
4191
4407
 
4192
- /**
4193
- * @deprecated Use {@link useImageOrVideoAsset} instead.
4194
- *
4195
- * @public
4196
- */
4197
- export declare const useAsset: typeof useImageOrVideoAsset;
4198
-
4199
4408
  /* Excluded from this release type: useAssetUrls */
4200
4409
 
4201
4410
  /** @public */
@@ -4250,7 +4459,11 @@ export declare function useDefaultHelpers(): {
4250
4459
  copy: (source: TLUiEventSource) => Promise<void>;
4251
4460
  copyAs: (ids: TLShapeId[], format?: TLCopyType) => void;
4252
4461
  cut: (source: TLUiEventSource) => Promise<void>;
4253
- exportAs: (ids: TLShapeId[], format: TLExportType | undefined, name: string | undefined) => void;
4462
+ exportAs: (ids: TLShapeId[], opts?: {
4463
+ format?: TLExportType;
4464
+ name?: string;
4465
+ scale?: number;
4466
+ }) => void;
4254
4467
  getEmbedDefinition: (url: string) => TLEmbedResult;
4255
4468
  insertMedia: () => Promise<void>;
4256
4469
  isMobile: boolean;
@@ -4300,14 +4513,12 @@ export declare function useEditableRichText(shapeId: TLShapeId, type: string, ri
4300
4513
  rInput: RefObject<HTMLDivElement>;
4301
4514
  };
4302
4515
 
4303
- /**
4304
- * @deprecated Use `useEditablePlainText` instead.
4305
- * @public
4306
- */
4307
- export declare const useEditableText: typeof useEditablePlainText;
4308
-
4309
4516
  /** @public */
4310
- export declare function useExportAs(): (ids: TLShapeId[], format: TLExportType | undefined, name: string | undefined) => void;
4517
+ export declare function useExportAs(): (ids: TLShapeId[], opts?: {
4518
+ format?: TLExportType;
4519
+ name?: string;
4520
+ scale?: number;
4521
+ }) => void;
4311
4522
 
4312
4523
  /**
4313
4524
  * This is a handy helper hook that resolves an asset to an optimized URL for a given shape, or its
@@ -4381,9 +4592,15 @@ export declare const useSelectedShapesAnnouncer: () => void;
4381
4592
  /** @public */
4382
4593
  export declare function useShowCollaborationUi(): boolean;
4383
4594
 
4595
+ /** @public */
4596
+ export declare function useStylePanelContext(): StylePanelContext;
4597
+
4384
4598
  /** @public */
4385
4599
  export declare function useTldrawUiComponents(): TLUiComponents;
4386
4600
 
4601
+ /** @public */
4602
+ export declare function useTldrawUiOrientation(): TldrawUiOrientationContext;
4603
+
4387
4604
  /** @public */
4388
4605
  export declare function useToasts(): TLUiToastsContextType;
4389
4606