tldraw 3.16.0-canary.5dac57cf9465 → 3.16.0-canary.5f8d98bccb38

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 (403) hide show
  1. package/dist-cjs/index.d.ts +299 -105
  2. package/dist-cjs/index.js +37 -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 +18 -12
  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 +2 -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 +4 -4
  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/text/TextShapeUtil.js +2 -2
  46. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  47. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  48. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  49. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +25 -1
  50. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  51. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +12 -0
  52. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  53. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
  54. package/dist-cjs/lib/ui/TldrawUi.js +27 -12
  55. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  56. package/dist-cjs/lib/ui/assetUrls.js +13 -10
  57. package/dist-cjs/lib/ui/assetUrls.js.map +2 -2
  58. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +10 -2
  59. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  60. package/dist-cjs/lib/ui/components/{FollowingIndicator.js → DefaultFollowingIndicator.js} +6 -6
  61. package/dist-cjs/lib/ui/components/DefaultFollowingIndicator.js.map +7 -0
  62. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +6 -6
  63. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +1 -1
  64. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  65. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  66. package/dist-cjs/lib/ui/components/MobileStylePanel.js +5 -3
  67. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  68. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +9 -4
  69. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  70. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +255 -316
  71. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  72. package/dist-cjs/lib/ui/components/{primitives/TldrawUiButtonPicker.js → StylePanel/StylePanelButtonPicker.js} +52 -45
  73. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +7 -0
  74. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js +68 -0
  75. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js.map +7 -0
  76. package/dist-cjs/lib/ui/components/StylePanel/{DoubleDropdownPicker.js → StylePanelDoubleDropdownPicker.js} +23 -22
  77. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js.map +7 -0
  78. package/dist-cjs/lib/ui/components/StylePanel/{DropdownPicker.js → StylePanelDropdownPicker.js} +24 -21
  79. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js.map +7 -0
  80. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js +28 -0
  81. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js.map +7 -0
  82. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js +3 -2
  83. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
  84. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +39 -10
  85. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  86. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -22
  87. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  88. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js +15 -3
  89. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js.map +2 -2
  90. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js +3 -3
  91. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js.map +2 -2
  92. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +188 -78
  93. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  94. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +10 -1
  95. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  96. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +17 -4
  97. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  98. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +17 -3
  99. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  100. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +167 -159
  101. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +2 -2
  102. package/dist-cjs/lib/ui/components/primitives/layout.js +30 -5
  103. package/dist-cjs/lib/ui/components/primitives/layout.js.map +2 -2
  104. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  105. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
  106. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  107. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +154 -19
  108. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  109. package/dist-cjs/lib/ui/context/actions.js +23 -10
  110. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  111. package/dist-cjs/lib/ui/context/components.js +2 -0
  112. package/dist-cjs/lib/ui/context/components.js.map +2 -2
  113. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  114. package/dist-cjs/lib/ui/hooks/useExportAs.js +3 -2
  115. package/dist-cjs/lib/ui/hooks/useExportAs.js.map +2 -2
  116. package/dist-cjs/lib/ui/hooks/useTools.js +94 -9
  117. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  118. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  119. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +4 -2
  120. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  121. package/dist-cjs/lib/ui/kbd-utils.js +9 -3
  122. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  123. package/dist-cjs/lib/ui/version.js +3 -3
  124. package/dist-cjs/lib/ui/version.js.map +1 -1
  125. package/dist-cjs/lib/utils/export/copyAs.js +1 -2
  126. package/dist-cjs/lib/utils/export/copyAs.js.map +2 -2
  127. package/dist-cjs/lib/utils/export/export.js +0 -20
  128. package/dist-cjs/lib/utils/export/export.js.map +2 -2
  129. package/dist-cjs/lib/utils/export/exportAs.js +1 -2
  130. package/dist-cjs/lib/utils/export/exportAs.js.map +2 -2
  131. package/dist-esm/index.d.mts +299 -105
  132. package/dist-esm/index.mjs +70 -30
  133. package/dist-esm/index.mjs.map +2 -2
  134. package/dist-esm/lib/Tldraw.mjs +14 -4
  135. package/dist-esm/lib/Tldraw.mjs.map +2 -2
  136. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  137. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  138. package/dist-esm/lib/defaultExternalContentHandlers.mjs +5 -4
  139. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  140. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +4 -3
  141. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  142. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +6 -0
  143. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +3 -3
  144. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  145. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  146. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +4 -3
  147. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  148. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  149. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  150. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +19 -12
  151. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  152. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  153. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  154. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +3 -2
  155. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  156. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +2 -1
  157. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  158. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +6 -1
  159. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  160. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +6 -3
  161. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +2 -2
  162. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +6 -1
  163. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  164. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +5 -4
  165. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  166. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +1 -3
  167. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  168. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +5 -4
  169. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  170. package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
  171. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs +0 -2
  172. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
  173. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs +0 -2
  174. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs.map +2 -2
  175. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +3 -2
  176. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  177. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  178. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  179. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +26 -1
  180. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  181. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +13 -0
  182. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  183. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
  184. package/dist-esm/lib/ui/TldrawUi.mjs +29 -14
  185. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  186. package/dist-esm/lib/ui/assetUrls.mjs +13 -10
  187. package/dist-esm/lib/ui/assetUrls.mjs.map +2 -2
  188. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +10 -2
  189. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  190. package/dist-esm/lib/ui/components/{FollowingIndicator.mjs → DefaultFollowingIndicator.mjs} +3 -3
  191. package/dist-esm/lib/ui/components/DefaultFollowingIndicator.mjs.map +7 -0
  192. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +6 -6
  193. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +1 -1
  194. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  195. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  196. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +6 -3
  197. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  198. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +14 -5
  199. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  200. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +257 -320
  201. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  202. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +126 -0
  203. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +7 -0
  204. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs +48 -0
  205. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs.map +7 -0
  206. package/dist-esm/lib/ui/components/StylePanel/{DoubleDropdownPicker.mjs → StylePanelDoubleDropdownPicker.mjs} +20 -19
  207. package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs.map +7 -0
  208. package/dist-esm/lib/ui/components/StylePanel/{DropdownPicker.mjs → StylePanelDropdownPicker.mjs} +21 -18
  209. package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs.map +7 -0
  210. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs +8 -0
  211. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs.map +7 -0
  212. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs +3 -2
  213. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
  214. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +39 -10
  215. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  216. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -22
  217. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  218. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs +15 -3
  219. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs.map +2 -2
  220. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs +3 -3
  221. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs.map +2 -2
  222. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -80
  223. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  224. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +10 -1
  225. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  226. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +17 -4
  227. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  228. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +18 -4
  229. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  230. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +176 -161
  231. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +2 -2
  232. package/dist-esm/lib/ui/components/primitives/layout.mjs +31 -6
  233. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +2 -2
  234. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  235. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
  236. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  237. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +162 -21
  238. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  239. package/dist-esm/lib/ui/context/actions.mjs +23 -10
  240. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  241. package/dist-esm/lib/ui/context/components.mjs +2 -0
  242. package/dist-esm/lib/ui/context/components.mjs.map +2 -2
  243. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  244. package/dist-esm/lib/ui/hooks/useExportAs.mjs +3 -2
  245. package/dist-esm/lib/ui/hooks/useExportAs.mjs.map +2 -2
  246. package/dist-esm/lib/ui/hooks/useTools.mjs +102 -10
  247. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  248. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +4 -2
  249. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  250. package/dist-esm/lib/ui/kbd-utils.mjs +9 -3
  251. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  252. package/dist-esm/lib/ui/version.mjs +3 -3
  253. package/dist-esm/lib/ui/version.mjs.map +1 -1
  254. package/dist-esm/lib/utils/export/copyAs.mjs +1 -2
  255. package/dist-esm/lib/utils/export/copyAs.mjs.map +2 -2
  256. package/dist-esm/lib/utils/export/export.mjs +0 -20
  257. package/dist-esm/lib/utils/export/export.mjs.map +2 -2
  258. package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
  259. package/dist-esm/lib/utils/export/exportAs.mjs.map +2 -2
  260. package/package.json +11 -34
  261. package/src/index.ts +51 -22
  262. package/src/lib/Tldraw.tsx +15 -2
  263. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  264. package/src/lib/defaultExternalContentHandlers.ts +12 -4
  265. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +2 -1
  266. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +4 -3
  267. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +7 -6
  268. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +4 -3
  269. package/src/lib/shapes/arrow/arrowLabel.ts +8 -0
  270. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  271. package/src/lib/shapes/draw/DrawShapeTool.test.ts +0 -5
  272. package/src/lib/shapes/draw/DrawShapeUtil.tsx +4 -3
  273. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  274. package/src/lib/shapes/frame/FrameShapeUtil.tsx +29 -14
  275. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  276. package/src/lib/shapes/geo/GeoShapeUtil.tsx +3 -2
  277. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  278. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +7 -1
  279. package/src/lib/shapes/image/ImageShapeUtil.tsx +6 -3
  280. package/src/lib/shapes/line/LineShapeUtil.test.tsx +4 -3
  281. package/src/lib/shapes/line/LineShapeUtil.tsx +6 -1
  282. package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
  283. package/src/lib/shapes/note/NoteShapeUtil.tsx +9 -4
  284. package/src/lib/shapes/shared/PlainTextLabel.tsx +0 -6
  285. package/src/lib/shapes/shared/ShapeFill.tsx +5 -4
  286. package/src/lib/shapes/shared/freehand/svg.ts +2 -0
  287. package/src/lib/shapes/shared/useEditablePlainText.ts +0 -6
  288. package/src/lib/shapes/shared/useImageOrVideoAsset.ts +0 -7
  289. package/src/lib/shapes/text/TextShapeTool.test.ts +6 -5
  290. package/src/lib/shapes/text/TextShapeUtil.tsx +3 -2
  291. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  292. package/src/lib/tools/EraserTool/childStates/Erasing.ts +34 -1
  293. package/src/lib/tools/EraserTool/childStates/Pointing.ts +20 -0
  294. package/src/lib/tools/SelectTool/childStates/Translating.ts +0 -1
  295. package/src/lib/ui/TldrawUi.tsx +33 -12
  296. package/src/lib/ui/assetUrls.ts +13 -10
  297. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +13 -2
  298. package/src/lib/ui/components/{FollowingIndicator.tsx → DefaultFollowingIndicator.tsx} +2 -1
  299. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +6 -6
  300. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  301. package/src/lib/ui/components/MobileStylePanel.tsx +9 -6
  302. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +27 -13
  303. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +260 -381
  304. package/src/lib/ui/components/{primitives/TldrawUiButtonPicker.tsx → StylePanel/StylePanelButtonPicker.tsx} +65 -51
  305. package/src/lib/ui/components/StylePanel/StylePanelContext.tsx +63 -0
  306. package/src/lib/ui/components/StylePanel/{DoubleDropdownPicker.tsx → StylePanelDoubleDropdownPicker.tsx} +28 -19
  307. package/src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx +119 -0
  308. package/src/lib/ui/components/StylePanel/StylePanelSubheading.tsx +9 -0
  309. package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +4 -3
  310. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +33 -16
  311. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -24
  312. package/src/lib/ui/components/Toolbar/DefaultVideoToolbarContent.tsx +12 -4
  313. package/src/lib/ui/components/Toolbar/LinkEditor.tsx +5 -5
  314. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +208 -56
  315. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +6 -1
  316. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +50 -30
  317. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +25 -5
  318. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +209 -181
  319. package/src/lib/ui/components/primitives/layout.tsx +79 -5
  320. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
  321. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
  322. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +221 -18
  323. package/src/lib/ui/context/actions.tsx +23 -10
  324. package/src/lib/ui/context/components.tsx +3 -0
  325. package/src/lib/ui/context/events.tsx +2 -1
  326. package/src/lib/ui/hooks/useExportAs.ts +3 -2
  327. package/src/lib/ui/hooks/useTools.tsx +140 -10
  328. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +2 -0
  329. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +4 -2
  330. package/src/lib/ui/kbd-utils.ts +10 -3
  331. package/src/lib/ui/version.ts +3 -3
  332. package/src/lib/ui.css +365 -245
  333. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +5 -5
  334. package/src/lib/utils/export/copyAs.ts +1 -24
  335. package/src/lib/utils/export/export.ts +0 -36
  336. package/src/lib/utils/export/exportAs.ts +1 -32
  337. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +4 -4
  338. package/src/test/A11y.test.tsx +3 -2
  339. package/src/test/ClickManager.test.ts +7 -6
  340. package/src/test/Editor.test.tsx +20 -19
  341. package/src/test/EraserTool.test.ts +184 -13
  342. package/src/test/HandTool.test.ts +10 -9
  343. package/src/test/HighlightShape.test.ts +2 -1
  344. package/src/test/SelectTool.test.ts +3 -2
  345. package/src/test/TLUserPreferences.test.ts +4 -3
  346. package/src/test/TestEditor.ts +13 -15
  347. package/src/test/TldrawEditor.test.tsx +11 -10
  348. package/src/test/ZoomTool.test.ts +7 -6
  349. package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
  350. package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
  351. package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
  352. package/src/test/arrows-megabus.test.tsx +5 -4
  353. package/src/test/bindings.test.tsx +24 -37
  354. package/src/test/bookmark-shapes.test.ts +1 -8
  355. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +23 -7
  356. package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
  357. package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
  358. package/src/test/commands/alignShapes.test.tsx +25 -24
  359. package/src/test/commands/animationSpeed.test.ts +2 -1
  360. package/src/test/commands/centerOnPoint.test.ts +3 -2
  361. package/src/test/commands/clipboard.test.ts +3 -2
  362. package/src/test/commands/createShapes.test.ts +2 -1
  363. package/src/test/commands/deleteShapes.test.ts +2 -1
  364. package/src/test/commands/distributeShapes.test.tsx +11 -10
  365. package/src/test/commands/getSvgString.test.ts +2 -1
  366. package/src/test/commands/packShapes.test.ts +5 -4
  367. package/src/test/commands/resizeShape.test.ts +2 -1
  368. package/src/test/commands/rotateShapes.test.ts +7 -6
  369. package/src/test/commands/setCamera.test.ts +4 -3
  370. package/src/test/commands/setCurrentPage.test.ts +3 -2
  371. package/src/test/commands/stackShapes.test.ts +11 -10
  372. package/src/test/commands/stretch.test.tsx +13 -12
  373. package/src/test/createDeepLink.test.tsx +2 -1
  374. package/src/test/cropping.test.ts +3 -2
  375. package/src/test/custom-clipping.test.ts +436 -0
  376. package/src/test/drawing.test.ts +2 -1
  377. package/src/test/flipShapes.test.ts +4 -3
  378. package/src/test/frames.test.ts +25 -24
  379. package/src/test/getCulledShapes.test.tsx +74 -4
  380. package/src/test/groups.test.tsx +1 -1
  381. package/src/test/handleDeepLink.test.tsx +2 -1
  382. package/src/test/maxShapes.test.ts +3 -2
  383. package/src/test/modifiers.test.ts +5 -4
  384. package/src/test/navigation.test.ts +12 -11
  385. package/src/test/panning.test.ts +2 -1
  386. package/src/test/perf/perf.test.ts +2 -1
  387. package/src/test/registerDeepLinkListener.test.tsx +10 -9
  388. package/src/test/resizing.test.ts +39 -38
  389. package/src/test/select.test.tsx +4 -3
  390. package/src/test/selection-omnibus.test.ts +11 -10
  391. package/src/test/shapeutils.test.ts +4 -3
  392. package/src/test/translating.test.ts +9 -8
  393. package/tldraw.css +673 -537
  394. package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +0 -7
  395. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +0 -7
  396. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +0 -7
  397. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +0 -7
  398. package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +0 -7
  399. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +0 -7
  400. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +0 -7
  401. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +0 -114
  402. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +0 -7
  403. package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +0 -110
@@ -68,7 +68,6 @@ import { TLClickEventInfo } from '@tldraw/editor';
68
68
  import { TLContent } from '@tldraw/editor';
69
69
  import { TLCropInfo } from '@tldraw/editor';
70
70
  import { TLDefaultColorStyle } from '@tldraw/editor';
71
- import { TLDefaultColorTheme } from '@tldraw/editor';
72
71
  import { TLDefaultColorThemeColor } from '@tldraw/editor';
73
72
  import { TLDefaultDashStyle } from '@tldraw/editor';
74
73
  import { TLDefaultFillStyle } from '@tldraw/editor';
@@ -193,9 +192,6 @@ export declare class ArrowBindingUtil extends BindingUtil<TLArrowBinding> {
193
192
  /** @public @react */
194
193
  export declare function ArrowDownToolbarItem(): JSX_2.Element;
195
194
 
196
- /** @public @react */
197
- export declare function ArrowheadStylePickerSet({ styles }: StylePickerSetProps): JSX_2.Element | null;
198
-
199
195
  /** @public @react */
200
196
  export declare function ArrowLeftToolbarItem(): JSX_2.Element;
201
197
 
@@ -500,9 +496,6 @@ export declare function CloudToolbarItem(): JSX_2.Element;
500
496
  /** @public @react */
501
497
  export declare function ColorSchemeMenu(): JSX_2.Element;
502
498
 
503
- /** @public @react */
504
- export declare function CommonStylePickerSet({ styles, theme }: ThemeStylePickerSetProps): JSX_2.Element;
505
-
506
499
  /**
507
500
  * Contains the size within the given box size
508
501
  *
@@ -534,14 +527,6 @@ export declare function ConvertToEmbedMenuItem(): JSX_2.Element | null;
534
527
  */
535
528
  export declare function copyAs(editor: Editor, ids: TLShapeId[], opts: CopyAsOptions): Promise<void>;
536
529
 
537
- /**
538
- * @deprecated The format parameter is now part of the opts object.
539
- * @public
540
- */
541
- export declare function copyAs(editor: Editor, ids: TLShapeId[], format: TLCopyType, opts?: TLImageExportOptions & {
542
- format?: undefined;
543
- }): Promise<void>;
544
-
545
530
  /** @public @react */
546
531
  export declare function CopyAsMenuGroup(): JSX_2.Element;
547
532
 
@@ -853,6 +838,9 @@ export declare let defaultEditorAssetUrls: TLEditorAssetUrls;
853
838
  /** @public */
854
839
  export declare type DefaultEmbedDefinitionType = (typeof DEFAULT_EMBED_DEFINITIONS)[number]['type'];
855
840
 
841
+ /** @public @react */
842
+ export declare function DefaultFollowingIndicator(): JSX_2.Element | null;
843
+
856
844
  /** @public */
857
845
  export declare const DefaultFontFaces: TLDefaultFonts;
858
846
 
@@ -996,7 +984,7 @@ export declare function DefaultSharePanel(): JSX_2.Element;
996
984
  export declare const DefaultStylePanel: NamedExoticComponent<TLUiStylePanelProps>;
997
985
 
998
986
  /** @public @react */
999
- export declare function DefaultStylePanelContent({ styles }: TLUiStylePanelContentProps): JSX_2.Element | null;
987
+ export declare function DefaultStylePanelContent(): JSX_2.Element;
1000
988
 
1001
989
  /** @public @react */
1002
990
  export declare const DefaultToasts: NamedExoticComponent<object>;
@@ -1017,6 +1005,11 @@ export declare function DefaultToolbarContent(): JSX_2.Element;
1017
1005
  /** @public */
1018
1006
  export declare interface DefaultToolbarProps {
1019
1007
  children?: ReactNode;
1008
+ orientation?: 'horizontal' | 'vertical';
1009
+ minItems?: number;
1010
+ minSizePx?: number;
1011
+ maxItems?: number;
1012
+ maxSizePx?: number;
1020
1013
  }
1021
1014
 
1022
1015
  /** @public */
@@ -1484,12 +1477,6 @@ export declare interface ExampleDialogProps {
1484
1477
  */
1485
1478
  export declare function exportAs(editor: Editor, ids: TLShapeId[], opts: ExportAsOptions): Promise<void>;
1486
1479
 
1487
- /**
1488
- * @deprecated The format & name parameters are now part of the opts object.
1489
- * @public
1490
- */
1491
- export declare function exportAs(editor: Editor, ids: TLShapeId[], format?: TLExportType, name?: string, opts?: TLImageExportOptions): Promise<void>;
1492
-
1493
1480
  /** @public */
1494
1481
  export declare interface ExportAsOptions extends TLImageExportOptions {
1495
1482
  /** {@inheritdoc @tldraw/editor#TLImageExportOptions.format} */
@@ -1501,23 +1488,6 @@ export declare interface ExportAsOptions extends TLImageExportOptions {
1501
1488
  /** @public @react */
1502
1489
  export declare function ExportFileContentSubMenu(): JSX_2.Element;
1503
1490
 
1504
- /**
1505
- * Export the given shapes as a blob.
1506
- * @param editor - The editor instance.
1507
- * @param ids - The ids of the shapes to export.
1508
- * @param format - The format to export as.
1509
- * @param opts - Rendering options.
1510
- * @returns A promise that resolves to a blob.
1511
- * @deprecated Use {@link @tldraw/editor#Editor.toImage} instead.
1512
- * @public
1513
- */
1514
- export declare function exportToBlob({ editor, ids, format, opts, }: {
1515
- editor: Editor;
1516
- format: TLExportType;
1517
- ids: TLShapeId[];
1518
- opts?: TLImageExportOptions;
1519
- }): Promise<Blob>;
1520
-
1521
1491
  /** @public @react */
1522
1492
  export declare function ExtrasGroup(): JSX_2.Element;
1523
1493
 
@@ -1574,6 +1544,7 @@ export declare class FrameShapeUtil extends BaseBoxShapeUtil<TLFrameShape> {
1574
1544
  canEdit(): boolean;
1575
1545
  canResize(): boolean;
1576
1546
  canResizeChildren(): boolean;
1547
+ isExportBoundsContainer(): boolean;
1577
1548
  getDefaultProps(): TLFrameShape['props'];
1578
1549
  getAriaDescriptor(shape: TLFrameShape): string;
1579
1550
  getGeometry(shape: TLFrameShape): Geometry2d;
@@ -1582,6 +1553,7 @@ export declare class FrameShapeUtil extends BaseBoxShapeUtil<TLFrameShape> {
1582
1553
  toSvg(shape: TLFrameShape, ctx: SvgExportContext): JSX_2.Element;
1583
1554
  indicator(shape: TLFrameShape): JSX_2.Element;
1584
1555
  providesBackgroundForChildren(): boolean;
1556
+ getClipPath(shape: TLFrameShape): Vec[];
1585
1557
  canReceiveNewChildrenOfType(shape: TLShape): boolean;
1586
1558
  onResize(shape: any, info: TLResizeInfo<any>): any;
1587
1559
  getInterpolatedProps(startShape: TLFrameShape, endShape: TLFrameShape, t: number): TLFrameShapeProps;
@@ -1730,9 +1702,6 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1730
1702
  getInterpolatedProps(startShape: TLGeoShape, endShape: TLGeoShape, t: number): TLGeoShapeProps;
1731
1703
  }
1732
1704
 
1733
- /** @public @react */
1734
- export declare function GeoStylePickerSet({ styles }: StylePickerSetProps): JSX_2.Element | null;
1735
-
1736
1705
  /** @public */
1737
1706
  export declare function getArrowBindings(editor: Editor, shape: TLArrowShape): TLArrowBindings;
1738
1707
 
@@ -1775,6 +1744,29 @@ export declare function getHitShapeOnCanvasPointerDown(editor: Editor, hitLabels
1775
1744
  /** @public */
1776
1745
  export declare function getMediaAssetInfoPartial(file: File, assetId: TLAssetId, isImageType: boolean, isVideoType: boolean, maxImageDimension?: number): Promise<TLImageAsset | TLVideoAsset>;
1777
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
+
1778
1770
  /**
1779
1771
  * Original (uncropped) width and height of shape.
1780
1772
  *
@@ -1870,6 +1862,7 @@ export declare class ImageShapeUtil extends BaseBoxShapeUtil<TLImageShape> {
1870
1862
  static migrations: TLPropsMigrations;
1871
1863
  isAspectRatioLocked(): boolean;
1872
1864
  canCrop(): boolean;
1865
+ isExportBoundsContainer(): boolean;
1873
1866
  getDefaultProps(): TLImageShape['props'];
1874
1867
  getGeometry(shape: TLImageShape): Geometry2d;
1875
1868
  getAriaDescriptor(shape: TLImageShape): string;
@@ -2120,21 +2113,57 @@ export declare class NoteShapeUtil extends ShapeUtil<TLNoteShape> {
2120
2113
  /** @public @react */
2121
2114
  export declare function NoteToolbarItem(): JSX_2.Element;
2122
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
+
2123
2126
  /** @public @react */
2124
2127
  export declare function OfflineIndicator(): JSX_2.Element;
2125
2128
 
2126
- /** @public @react */
2127
- 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
+ }
2128
2151
 
2129
2152
  /** @public @react */
2130
2153
  export declare function OvalToolbarItem(): JSX_2.Element;
2131
2154
 
2132
2155
  /** @public @react */
2133
- 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;
2134
2157
 
2135
2158
  /** @public */
2136
2159
  export declare interface OverflowingToolbarProps {
2137
2160
  children: React.ReactNode;
2161
+ orientation: 'horizontal' | 'vertical';
2162
+ sizingParentClassName: string;
2163
+ minItems: number;
2164
+ minSizePx: number;
2165
+ maxItems: number;
2166
+ maxSizePx: number;
2138
2167
  }
2139
2168
 
2140
2169
  /** @public @react */
@@ -2511,9 +2540,6 @@ export declare interface SolidPathBuilderOpts extends BasePathBuilderOpts {
2511
2540
 
2512
2541
  /* Excluded from this release type: Spinner */
2513
2542
 
2514
- /** @public @react */
2515
- export declare function SplineStylePickerSet({ styles }: StylePickerSetProps): JSX_2.Element | null;
2516
-
2517
2543
  /** @public @react */
2518
2544
  export declare function StackMenuItems(): JSX_2.Element;
2519
2545
 
@@ -2523,11 +2549,172 @@ export declare function StarToolbarItem(): JSX_2.Element;
2523
2549
  /** @public */
2524
2550
  export declare const STROKE_SIZES: Record<TLDefaultSizeStyle, number>;
2525
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
+
2526
2606
  /** @public */
2527
- 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 {
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;
2528
2637
  styles: ReadonlySharedStyleMap;
2529
2638
  }
2530
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
+
2531
2718
  /** @public */
2532
2719
  export declare type StyleValuesForUi<T> = readonly {
2533
2720
  readonly icon: string | TLUiIconJsx;
@@ -2567,12 +2754,6 @@ export declare interface TextAreaProps {
2567
2754
  */
2568
2755
  export declare const TextDirection: Extension<any, any>;
2569
2756
 
2570
- /**
2571
- * @deprecated Use `PlainTextLabel` instead.
2572
- * @public
2573
- */
2574
- export declare const TextLabel: React_3.NamedExoticComponent<PlainTextLabelProps>;
2575
-
2576
2757
  /** @public */
2577
2758
  export declare interface TextShapeOptions {
2578
2759
  /** How much addition padding should be added to the horizontal geometry of the shape when binding to an arrow? */
@@ -2650,18 +2831,9 @@ export declare class TextShapeUtil extends ShapeUtil<TLTextShape> {
2650
2831
  } | undefined;
2651
2832
  }
2652
2833
 
2653
- /** @public @react */
2654
- export declare function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps): JSX_2.Element | null;
2655
-
2656
2834
  /** @public @react */
2657
2835
  export declare function TextToolbarItem(): JSX_2.Element;
2658
2836
 
2659
- /** @public */
2660
- export declare interface ThemeStylePickerSetProps {
2661
- styles: ReadonlySharedStyleMap;
2662
- theme: TLDefaultColorTheme;
2663
- }
2664
-
2665
2837
  /**
2666
2838
  * Default extensions for the TipTap editor.
2667
2839
  *
@@ -2918,8 +3090,12 @@ export declare function TldrawUiButtonIcon({ icon, small, invertIcon }: TLUiButt
2918
3090
  /** @public @react */
2919
3091
  export declare function TldrawUiButtonLabel({ children }: TLUiButtonLabelProps): JSX_2.Element;
2920
3092
 
2921
- /** @public */
2922
- 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>>;
2923
3099
 
2924
3100
  /** @public @react */
2925
3101
  export declare function TldrawUiComponentsProvider({ overrides, children, }: TLUiComponentsProviderProps): JSX_2.Element;
@@ -2993,6 +3169,9 @@ export declare const TldrawUiGrid: ForwardRefExoticComponent<TLUiLayoutProps & R
2993
3169
  /** @public @react */
2994
3170
  export declare const TldrawUiIcon: NamedExoticComponent<TLUiIconProps>;
2995
3171
 
3172
+ /** @public @react */
3173
+ export declare function TldrawUiInFrontOfTheCanvas(): JSX_2.Element;
3174
+
2996
3175
  /** @public @react */
2997
3176
  export declare const TldrawUiInput: React_2.ForwardRefExoticComponent<TLUiInputProps & React_2.RefAttributes<HTMLInputElement>>;
2998
3177
 
@@ -3015,7 +3194,7 @@ export declare function TldrawUiMenuContextProvider({ type, sourceId, children,
3015
3194
  export declare function TldrawUiMenuGroup({ id, label, className, children }: TLUiMenuGroupProps): boolean | JSX_2.Element | Iterable<ReactNode> | null | number | string | undefined;
3016
3195
 
3017
3196
  /** @public @react */
3018
- 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;
3019
3198
 
3020
3199
  /** @public @react */
3021
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;
@@ -3023,6 +3202,22 @@ export declare function TldrawUiMenuSubmenu<Translation extends string = string>
3023
3202
  /** @public @react */
3024
3203
  export declare function TldrawUiMenuToolItem({ toolId, ...rest }: TLUiMenuToolItemProps): JSX_2.Element | null;
3025
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
+
3026
3221
  /** @public @react */
3027
3222
  export declare function TldrawUiPopover({ id, children, onOpenChange, open, className }: TLUiPopoverProps): JSX_2.Element;
3028
3223
 
@@ -3074,13 +3269,13 @@ export declare const TldrawUiToolbar: React_3.ForwardRefExoticComponent<TLUiTool
3074
3269
  export declare const TldrawUiToolbarButton: React_3.ForwardRefExoticComponent<TLUiToolbarButtonProps & React_3.RefAttributes<HTMLButtonElement>>;
3075
3270
 
3076
3271
  /** @public @react */
3077
- 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;
3078
3273
 
3079
3274
  /** @public @react */
3080
3275
  export declare const TldrawUiToolbarToggleItem: ({ children, className, type, value, tooltip, ...props }: TLUiToolbarToggleItemProps) => JSX_2.Element;
3081
3276
 
3082
3277
  /** @public @react */
3083
- export declare function TldrawUiTooltip({ children, content, side, sideOffset, disabled, }: TldrawUiTooltipProps): JSX_2.Element;
3278
+ export declare const TldrawUiTooltip: React_3.ForwardRefExoticComponent<TldrawUiTooltipProps & React_3.RefAttributes<HTMLButtonElement>>;
3084
3279
 
3085
3280
  /** @public */
3086
3281
  export declare interface TldrawUiTooltipProps {
@@ -3089,6 +3284,8 @@ export declare interface TldrawUiTooltipProps {
3089
3284
  side?: 'bottom' | 'left' | 'right' | 'top';
3090
3285
  sideOffset?: number;
3091
3286
  disabled?: boolean;
3287
+ showOnMobile?: boolean;
3288
+ delayDuration?: number;
3092
3289
  }
3093
3290
 
3094
3291
  /** @public @react */
@@ -3259,18 +3456,6 @@ export declare interface TLUiButtonLabelProps {
3259
3456
  children?: ReactNode;
3260
3457
  }
3261
3458
 
3262
- /** @public */
3263
- export declare interface TLUiButtonPickerProps<T extends string> {
3264
- title: string;
3265
- uiType: string;
3266
- style: StyleProp<T>;
3267
- value: SharedStyle<T>;
3268
- items: StyleValuesForUi<T>;
3269
- theme: TLDefaultColorTheme;
3270
- onValueChange(style: StyleProp<T>, value: T): void;
3271
- onHistoryMark?(id: string): void;
3272
- }
3273
-
3274
3459
  /** @public */
3275
3460
  export declare interface TLUiButtonProps extends React_2.HTMLAttributes<HTMLButtonElement> {
3276
3461
  disabled?: boolean;
@@ -3305,6 +3490,7 @@ export declare interface TLUiComponents {
3305
3490
  Dialogs?: ComponentType | null;
3306
3491
  Toasts?: ComponentType | null;
3307
3492
  A11y?: ComponentType | null;
3493
+ FollowingIndicator?: ComponentType | null;
3308
3494
  }
3309
3495
 
3310
3496
  /** @public */
@@ -3630,11 +3816,14 @@ export declare interface TLUiEventMap {
3630
3816
  'flatten-to-image': null;
3631
3817
  'a11y-repeat-shape-announce': null;
3632
3818
  'open-url': {
3633
- url: string;
3819
+ destinationUrl: string;
3634
3820
  };
3635
3821
  'open-context-menu': null;
3636
3822
  'adjust-shape-styles': null;
3637
3823
  'copy-link': null;
3824
+ 'drag-tool': {
3825
+ id: string;
3826
+ };
3638
3827
  'image-replace': null;
3639
3828
  'video-replace': null;
3640
3829
  'open-kbd-shortcuts': null;
@@ -3724,6 +3913,7 @@ export declare type TLUiKeyboardShortcutsDialogProps = TLUiDialogProps & {
3724
3913
  /** @public */
3725
3914
  export declare interface TLUiLayoutProps extends HTMLAttributes<HTMLDivElement> {
3726
3915
  children: ReactNode;
3916
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3727
3917
  asChild?: boolean;
3728
3918
  }
3729
3919
 
@@ -3766,7 +3956,7 @@ export declare interface TLUiMenuContextProviderProps {
3766
3956
  }
3767
3957
 
3768
3958
  /** @public */
3769
- 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';
3770
3960
 
3771
3961
  /** @public */
3772
3962
  export declare interface TLUiMenuGroupProps<TranslationKey extends string = string> {
@@ -3826,6 +4016,10 @@ export declare interface TLUiMenuItemProps<TranslationKey extends string = strin
3826
4016
  * Whether the item is selected.
3827
4017
  */
3828
4018
  isSelected?: boolean;
4019
+ /**
4020
+ * The function to call when the item is dragged. If this is provided, the item will be draggable.
4021
+ */
4022
+ onDragStart?(source: TLUiEventSource, info: TLPointerEventInfo): void;
3829
4023
  }
3830
4024
 
3831
4025
  /** @public */
@@ -3902,14 +4096,10 @@ export declare interface TLUiSliderProps {
3902
4096
  ariaValueModifier?: number;
3903
4097
  }
3904
4098
 
3905
- /** @public */
3906
- export declare interface TLUiStylePanelContentProps {
3907
- styles: ReturnType<typeof useRelevantStyles>;
3908
- }
3909
-
3910
4099
  /** @public */
3911
4100
  export declare interface TLUiStylePanelProps {
3912
4101
  isMobile?: boolean;
4102
+ styles?: null | ReadonlySharedStyleMap;
3913
4103
  children?: ReactNode;
3914
4104
  }
3915
4105
 
@@ -3966,7 +4156,8 @@ export declare interface TLUiToolbarProps extends React_3.HTMLAttributes<HTMLDiv
3966
4156
  className?: string;
3967
4157
  dir?: 'ltr' | 'rtl';
3968
4158
  label: string;
3969
- orientation?: 'grid' | 'horizontal';
4159
+ orientation?: 'grid' | 'horizontal' | 'vertical';
4160
+ tooltipSide?: 'bottom' | 'left' | 'right' | 'top';
3970
4161
  }
3971
4162
 
3972
4163
  /** @public */
@@ -3977,6 +4168,7 @@ export declare interface TLUiToolbarToggleGroupProps extends React_3.HTMLAttribu
3977
4168
  value: any;
3978
4169
  defaultValue?: any;
3979
4170
  type: 'multiple' | 'single';
4171
+ asChild?: boolean;
3980
4172
  }
3981
4173
 
3982
4174
  /** @public */
@@ -3995,6 +4187,7 @@ export declare interface TLUiToolItem<TranslationKey extends string = string, Ic
3995
4187
  shortcutsLabel?: TranslationKey;
3996
4188
  icon: IconType | TLUiIconJsx;
3997
4189
  onSelect(source: TLUiEventSource): void;
4190
+ onDragStart?(source: TLUiEventSource, info: TLPointerEventInfo): void;
3998
4191
  /**
3999
4192
  * The keyboard shortcut for this tool. This is a string that can be a single key,
4000
4193
  * or a combination of keys.
@@ -4030,7 +4223,7 @@ export declare interface TLUiTranslation {
4030
4223
  export declare type TLUiTranslationContextType = TLUiTranslation;
4031
4224
 
4032
4225
  /** @public */
4033
- export declare type TLUiTranslationKey = 'a11y.adjust-shape-styles' | 'a11y.enlarge-shape' | 'a11y.enter-leave-container' | 'a11y.move-shape-faster' | 'a11y.move-shape' | 'a11y.multiple-shapes' | 'a11y.open-context-menu' | 'a11y.open-keyboard-shortcuts' | 'a11y.pan-camera' | 'a11y.repeat-shape' | 'a11y.rotate-shape-ccw-fine' | 'a11y.rotate-shape-ccw' | 'a11y.rotate-shape-cw-fine' | 'a11y.rotate-shape-cw' | 'a11y.select-shape-direction' | 'a11y.select-shape' | 'a11y.shape-image' | 'a11y.shape-index' | 'a11y.shape-video' | 'a11y.shrink-shape' | 'a11y.skip-to-main-content' | 'a11y.status' | 'action.align-bottom' | 'action.align-center-horizontal.short' | 'action.align-center-horizontal' | 'action.align-center-vertical.short' | 'action.align-center-vertical' | 'action.align-left' | 'action.align-right' | 'action.align-top' | 'action.back-to-content' | 'action.bring-forward' | 'action.bring-to-front' | 'action.convert-to-bookmark' | 'action.convert-to-embed' | 'action.copy-as-png.short' | 'action.copy-as-png' | 'action.copy-as-svg.short' | 'action.copy-as-svg' | 'action.copy' | 'action.cut' | 'action.delete' | 'action.distribute-horizontal.short' | 'action.distribute-horizontal' | 'action.distribute-vertical.short' | 'action.distribute-vertical' | 'action.download-original' | 'action.duplicate' | 'action.edit-link' | 'action.exit-pen-mode' | 'action.export-all-as-png.short' | 'action.export-all-as-png' | 'action.export-all-as-svg.short' | 'action.export-all-as-svg' | 'action.export-as-png.short' | 'action.export-as-png' | 'action.export-as-svg.short' | 'action.export-as-svg' | 'action.fit-frame-to-content' | 'action.flatten-to-image' | 'action.flip-horizontal.short' | 'action.flip-horizontal' | 'action.flip-vertical.short' | 'action.flip-vertical' | 'action.fork-project-on-tldraw' | 'action.fork-project' | 'action.group' | 'action.insert-embed' | 'action.insert-media' | 'action.leave-shared-project' | 'action.new-project' | 'action.new-shared-project' | 'action.open-cursor-chat' | 'action.open-embed-link' | 'action.open-file' | 'action.open-kbd-shortcuts' | 'action.pack' | 'action.paste-error-description' | 'action.paste-error-title' | 'action.paste' | 'action.print' | 'action.redo' | 'action.remove-frame' | 'action.rename' | 'action.rotate-ccw' | 'action.rotate-cw' | 'action.save-copy' | 'action.select-all' | 'action.select-none' | 'action.send-backward' | 'action.send-to-back' | 'action.share-project' | 'action.stack-horizontal.short' | 'action.stack-horizontal' | 'action.stack-vertical.short' | 'action.stack-vertical' | 'action.stop-following' | 'action.stretch-horizontal.short' | 'action.stretch-horizontal' | 'action.stretch-vertical.short' | 'action.stretch-vertical' | 'action.toggle-auto-size' | 'action.toggle-dark-mode.menu' | 'action.toggle-dark-mode' | 'action.toggle-debug-mode.menu' | 'action.toggle-debug-mode' | 'action.toggle-dynamic-size-mode.menu' | 'action.toggle-dynamic-size-mode' | 'action.toggle-edge-scrolling.menu' | 'action.toggle-edge-scrolling' | 'action.toggle-focus-mode.menu' | 'action.toggle-focus-mode' | 'action.toggle-grid.menu' | 'action.toggle-grid' | 'action.toggle-keyboard-shortcuts.menu' | 'action.toggle-keyboard-shortcuts' | 'action.toggle-lock' | 'action.toggle-paste-at-cursor.menu' | 'action.toggle-paste-at-cursor' | 'action.toggle-reduce-motion.menu' | 'action.toggle-reduce-motion' | 'action.toggle-snap-mode.menu' | 'action.toggle-snap-mode' | 'action.toggle-tool-lock.menu' | 'action.toggle-tool-lock' | 'action.toggle-transparent.context-menu' | 'action.toggle-transparent.menu' | 'action.toggle-transparent' | 'action.toggle-ui-labels.menu' | 'action.toggle-ui-labels' | 'action.toggle-wrap-mode.menu' | 'action.toggle-wrap-mode' | 'action.undo' | 'action.ungroup' | 'action.unlock-all' | 'action.zoom-in' | 'action.zoom-out' | 'action.zoom-to-100' | 'action.zoom-to-fit' | 'action.zoom-to-selection' | 'actions-menu.title' | 'align-style.end' | 'align-style.justify' | 'align-style.middle' | 'align-style.start' | 'app.loading' | 'arrow-kind-style.arc' | 'arrow-kind-style.elbow' | 'arrowheadEnd-style.arrow' | 'arrowheadEnd-style.bar' | 'arrowheadEnd-style.diamond' | 'arrowheadEnd-style.dot' | 'arrowheadEnd-style.inverted' | 'arrowheadEnd-style.none' | 'arrowheadEnd-style.pipe' | 'arrowheadEnd-style.square' | 'arrowheadEnd-style.triangle' | 'arrowheadStart-style.arrow' | 'arrowheadStart-style.bar' | 'arrowheadStart-style.diamond' | 'arrowheadStart-style.dot' | 'arrowheadStart-style.inverted' | 'arrowheadStart-style.none' | 'arrowheadStart-style.pipe' | 'arrowheadStart-style.square' | 'arrowheadStart-style.triangle' | 'assets.files.amount-too-many' | 'assets.files.size-too-big' | 'assets.files.type-not-allowed' | 'assets.files.upload-failed' | 'assets.url.failed' | 'color-style.black' | 'color-style.blue' | 'color-style.green' | 'color-style.grey' | 'color-style.light-blue' | 'color-style.light-green' | 'color-style.light-red' | 'color-style.light-violet' | 'color-style.orange' | 'color-style.red' | 'color-style.violet' | 'color-style.white' | 'color-style.yellow' | 'context-menu.arrange' | 'context-menu.copy-as' | 'context-menu.edit' | 'context-menu.export-all-as' | 'context-menu.export-as' | 'context-menu.move-to-page' | 'context-menu.reorder' | 'context-menu.title' | 'context.pages.new-page' | 'cursor-chat.type-to-chat' | 'dash-style.dashed' | 'dash-style.dotted' | 'dash-style.draw' | 'dash-style.solid' | 'document-name-menu.copy-link' | 'document.default-name' | 'edit-link-dialog.cancel' | 'edit-link-dialog.clear' | 'edit-link-dialog.detail' | 'edit-link-dialog.external-link' | 'edit-link-dialog.invalid-url' | 'edit-link-dialog.save' | 'edit-link-dialog.title' | 'edit-link-dialog.url' | 'embed-dialog.back' | 'embed-dialog.cancel' | 'embed-dialog.create' | 'embed-dialog.instruction' | 'embed-dialog.invalid-url' | 'embed-dialog.title' | 'embed-dialog.url' | 'file-system.confirm-clear.cancel' | 'file-system.confirm-clear.continue' | 'file-system.confirm-clear.description' | 'file-system.confirm-clear.dont-show-again' | 'file-system.confirm-clear.title' | 'file-system.confirm-open.cancel' | 'file-system.confirm-open.description' | 'file-system.confirm-open.dont-show-again' | 'file-system.confirm-open.open' | 'file-system.confirm-open.title' | 'file-system.file-open-error.file-format-version-too-new' | 'file-system.file-open-error.generic-corrupted-file' | 'file-system.file-open-error.not-a-tldraw-file' | 'file-system.file-open-error.title' | 'file-system.shared-document-file-open-error.description' | 'file-system.shared-document-file-open-error.title' | 'fill-style.fill' | 'fill-style.none' | 'fill-style.pattern' | 'fill-style.semi' | 'fill-style.solid' | 'focus-mode.toggle-focus-mode' | 'font-style.draw' | 'font-style.mono' | 'font-style.sans' | 'font-style.serif' | 'geo-style.arrow-down' | 'geo-style.arrow-left' | 'geo-style.arrow-right' | 'geo-style.arrow-up' | 'geo-style.check-box' | 'geo-style.cloud' | 'geo-style.diamond' | 'geo-style.ellipse' | 'geo-style.heart' | 'geo-style.hexagon' | 'geo-style.octagon' | 'geo-style.oval' | 'geo-style.pentagon' | 'geo-style.rectangle' | 'geo-style.rhombus' | 'geo-style.star' | 'geo-style.trapezoid' | 'geo-style.triangle' | 'geo-style.x-box' | 'handle.crop.bottom-left' | 'handle.crop.bottom-right' | 'handle.crop.bottom' | 'handle.crop.left' | 'handle.crop.right' | 'handle.crop.top-left' | 'handle.crop.top-right' | 'handle.crop.top' | 'handle.resize-bottom-left' | 'handle.resize-bottom-right' | 'handle.resize-bottom' | 'handle.resize-left' | 'handle.resize-right' | 'handle.resize-top-left' | 'handle.resize-top-right' | 'handle.resize-top' | 'handle.rotate.bottom_left_rotate' | 'handle.rotate.bottom_right_rotate' | 'handle.rotate.mobile_rotate' | 'handle.rotate.top_left_rotate' | 'handle.rotate.top_right_rotate' | 'help-menu.about' | 'help-menu.discord' | 'help-menu.github' | 'help-menu.import-tldr-file' | 'help-menu.keyboard-shortcuts' | 'help-menu.privacy' | 'help-menu.terms' | 'help-menu.title' | 'help-menu.twitter' | 'menu.accessibility' | 'menu.copy-as' | 'menu.edit' | 'menu.export-as' | 'menu.file' | 'menu.language' | 'menu.preferences' | 'menu.theme' | 'menu.title' | 'menu.view' | 'navigation-zone.minimap' | 'navigation-zone.title' | 'navigation-zone.toggle-minimap' | 'navigation-zone.zoom' | 'opacity-style.0.1' | 'opacity-style.0.25' | 'opacity-style.0.5' | 'opacity-style.0.75' | 'opacity-style.1' | 'page-menu.create-new-page' | 'page-menu.edit-done' | 'page-menu.edit-start' | 'page-menu.go-to-page' | 'page-menu.max-page-count-reached' | 'page-menu.new-page-initial-name' | 'page-menu.submenu.delete' | 'page-menu.submenu.duplicate-page' | 'page-menu.submenu.move-down' | 'page-menu.submenu.move-up' | 'page-menu.submenu.rename' | 'page-menu.submenu.title' | 'page-menu.title' | 'people-menu.anonymous-user' | 'people-menu.avatar-color' | 'people-menu.change-color' | 'people-menu.change-name' | 'people-menu.follow' | 'people-menu.following' | 'people-menu.invite' | 'people-menu.leading' | 'people-menu.title' | 'people-menu.user' | 'share-menu.copied' | 'share-menu.copy-link-note' | 'share-menu.copy-link' | 'share-menu.copy-readonly-link-note' | 'share-menu.copy-readonly-link' | 'share-menu.create-snapshot-link' | 'share-menu.creating-project' | 'share-menu.fork-note' | 'share-menu.offline-note' | 'share-menu.project-too-large' | 'share-menu.save-note' | 'share-menu.share-project' | 'share-menu.snapshot-link-note' | 'share-menu.title' | 'share-menu.upload-failed' | 'sharing.confirm-leave.cancel' | 'sharing.confirm-leave.description' | 'sharing.confirm-leave.dont-show-again' | 'sharing.confirm-leave.leave' | 'sharing.confirm-leave.title' | 'shortcuts-dialog.a11y' | 'shortcuts-dialog.collaboration' | 'shortcuts-dialog.edit' | 'shortcuts-dialog.file' | 'shortcuts-dialog.preferences' | 'shortcuts-dialog.text-formatting' | 'shortcuts-dialog.title' | 'shortcuts-dialog.tools' | 'shortcuts-dialog.transform' | 'shortcuts-dialog.view' | 'size-style.l' | 'size-style.m' | 'size-style.s' | 'size-style.xl' | 'spline-style.cubic' | 'spline-style.line' | 'status.offline' | 'style-panel.align' | 'style-panel.arrow-kind' | 'style-panel.arrowhead-end' | 'style-panel.arrowhead-start' | 'style-panel.arrowheads' | 'style-panel.color' | 'style-panel.dash' | 'style-panel.fill' | 'style-panel.font' | 'style-panel.geo' | 'style-panel.label-align' | 'style-panel.mixed' | 'style-panel.opacity' | 'style-panel.position' | 'style-panel.size' | 'style-panel.spline' | 'style-panel.title' | 'style-panel.vertical-align' | 'theme.dark' | 'theme.light' | 'theme.system' | 'toast.close' | 'toast.error.copy-fail.desc' | 'toast.error.copy-fail.title' | 'toast.error.export-fail.desc' | 'toast.error.export-fail.title' | 'toast.error' | 'toast.info' | 'toast.success' | 'toast.warning' | 'tool-panel.more' | 'tool-panel.title' | 'tool.arrow-down' | 'tool.arrow-left' | 'tool.arrow-right' | 'tool.arrow-up' | 'tool.arrow' | 'tool.aspect-ratio.circle' | 'tool.aspect-ratio.landscape' | 'tool.aspect-ratio.original' | 'tool.aspect-ratio.portrait' | 'tool.aspect-ratio.square' | 'tool.aspect-ratio.wide' | 'tool.aspect-ratio' | 'tool.bookmark' | 'tool.check-box' | 'tool.cloud' | 'tool.diamond' | 'tool.draw' | 'tool.ellipse' | 'tool.embed' | 'tool.eraser' | 'tool.flip-horz' | 'tool.flip-vert' | 'tool.frame' | 'tool.hand' | 'tool.heart' | 'tool.hexagon' | 'tool.highlight' | 'tool.image-crop' | 'tool.image-toolbar-title' | 'tool.image-zoom' | 'tool.laser' | 'tool.line' | 'tool.media-alt-text-confirm' | 'tool.media-alt-text-desc' | 'tool.media-alt-text' | 'tool.media' | 'tool.note' | 'tool.octagon' | 'tool.oval' | 'tool.pentagon' | 'tool.pointer-down' | 'tool.rectangle' | 'tool.replace-media' | 'tool.rhombus' | 'tool.rich-text-bold' | 'tool.rich-text-bulletList' | 'tool.rich-text-code' | 'tool.rich-text-header' | 'tool.rich-text-highlight' | 'tool.rich-text-italic' | 'tool.rich-text-link-remove' | 'tool.rich-text-link-visit' | 'tool.rich-text-link' | 'tool.rich-text-orderedList' | 'tool.rich-text-strikethrough' | 'tool.rich-text-toolbar-title' | 'tool.rotate-cw' | 'tool.select' | 'tool.star' | 'tool.text' | 'tool.trapezoid' | 'tool.triangle' | 'tool.x-box' | 'ui.checked' | 'ui.close' | 'ui.unchecked' | 'verticalAlign-style.end' | 'verticalAlign-style.middle' | 'verticalAlign-style.start' | 'vscode.file-open.backup-failed' | 'vscode.file-open.backup-saved' | 'vscode.file-open.backup' | 'vscode.file-open.desc' | 'vscode.file-open.dont-show-again' | 'vscode.file-open.open';
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';
4034
4227
 
4035
4228
  /** @public */
4036
4229
  export declare interface TLUiTranslationProviderProps {
@@ -4212,13 +4405,6 @@ export declare function useA11y(): TLUiA11yContextType;
4212
4405
  /** @public */
4213
4406
  export declare function useActions(): TLUiActionsContextType;
4214
4407
 
4215
- /**
4216
- * @deprecated Use {@link useImageOrVideoAsset} instead.
4217
- *
4218
- * @public
4219
- */
4220
- export declare const useAsset: typeof useImageOrVideoAsset;
4221
-
4222
4408
  /* Excluded from this release type: useAssetUrls */
4223
4409
 
4224
4410
  /** @public */
@@ -4273,7 +4459,11 @@ export declare function useDefaultHelpers(): {
4273
4459
  copy: (source: TLUiEventSource) => Promise<void>;
4274
4460
  copyAs: (ids: TLShapeId[], format?: TLCopyType) => void;
4275
4461
  cut: (source: TLUiEventSource) => Promise<void>;
4276
- 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;
4277
4467
  getEmbedDefinition: (url: string) => TLEmbedResult;
4278
4468
  insertMedia: () => Promise<void>;
4279
4469
  isMobile: boolean;
@@ -4323,14 +4513,12 @@ export declare function useEditableRichText(shapeId: TLShapeId, type: string, ri
4323
4513
  rInput: RefObject<HTMLDivElement>;
4324
4514
  };
4325
4515
 
4326
- /**
4327
- * @deprecated Use `useEditablePlainText` instead.
4328
- * @public
4329
- */
4330
- export declare const useEditableText: typeof useEditablePlainText;
4331
-
4332
4516
  /** @public */
4333
- 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;
4334
4522
 
4335
4523
  /**
4336
4524
  * This is a handy helper hook that resolves an asset to an optimized URL for a given shape, or its
@@ -4404,9 +4592,15 @@ export declare const useSelectedShapesAnnouncer: () => void;
4404
4592
  /** @public */
4405
4593
  export declare function useShowCollaborationUi(): boolean;
4406
4594
 
4595
+ /** @public */
4596
+ export declare function useStylePanelContext(): StylePanelContext;
4597
+
4407
4598
  /** @public */
4408
4599
  export declare function useTldrawUiComponents(): TLUiComponents;
4409
4600
 
4601
+ /** @public */
4602
+ export declare function useTldrawUiOrientation(): TldrawUiOrientationContext;
4603
+
4410
4604
  /** @public */
4411
4605
  export declare function useToasts(): TLUiToastsContextType;
4412
4606