tldraw 3.16.0-internal.51e99e128bd4 → 3.16.0-internal.a478398270c6

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 (517) hide show
  1. package/dist-cjs/index.d.ts +23 -297
  2. package/dist-cjs/index.js +2 -30
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/TldrawImage.js +2 -5
  5. package/dist-cjs/lib/TldrawImage.js.map +3 -3
  6. package/dist-cjs/lib/canvas/TldrawCropHandles.js +1 -1
  7. package/dist-cjs/lib/canvas/TldrawCropHandles.js.map +2 -2
  8. package/dist-cjs/lib/canvas/TldrawHandles.js +1 -1
  9. package/dist-cjs/lib/canvas/TldrawHandles.js.map +2 -2
  10. package/dist-cjs/lib/canvas/TldrawOverlays.js +1 -1
  11. package/dist-cjs/lib/canvas/TldrawOverlays.js.map +2 -2
  12. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
  13. package/dist-cjs/lib/canvas/TldrawScribble.js.map +2 -2
  14. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js +271 -279
  15. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js.map +2 -2
  16. package/dist-cjs/lib/defaultExternalContentHandlers.js +0 -1
  17. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  18. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +44 -27
  19. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  20. package/dist-cjs/lib/shapes/arrow/arrowLabel.js +4 -16
  21. package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +2 -2
  22. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +1 -1
  23. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
  24. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
  25. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  26. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +0 -3
  27. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +2 -2
  28. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +6 -3
  29. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  30. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  31. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  32. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +17 -17
  33. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  34. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  35. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  36. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +2 -2
  37. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  38. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +1 -2
  39. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
  40. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +4 -5
  41. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  42. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +3 -3
  43. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +1 -1
  44. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +5 -20
  45. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  46. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +5 -6
  47. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  48. package/dist-cjs/lib/shapes/shared/PathBuilder.js +3 -21
  49. package/dist-cjs/lib/shapes/shared/PathBuilder.js.map +2 -2
  50. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +0 -1
  51. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +2 -2
  52. package/dist-cjs/lib/shapes/shared/RichTextLabel.js +2 -5
  53. package/dist-cjs/lib/shapes/shared/RichTextLabel.js.map +2 -2
  54. package/dist-cjs/lib/shapes/shared/ShapeFill.js +4 -4
  55. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  56. package/dist-cjs/lib/shapes/shared/SvgTextLabel.js +3 -4
  57. package/dist-cjs/lib/shapes/shared/SvgTextLabel.js.map +2 -2
  58. package/dist-cjs/lib/shapes/shared/freehand/svg.js.map +2 -2
  59. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js +1 -10
  60. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js.map +2 -2
  61. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +13 -7
  62. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  63. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  64. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  65. package/dist-cjs/lib/styles.js.map +2 -2
  66. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +1 -25
  67. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  68. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +0 -12
  69. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  70. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.js +1 -7
  71. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.js.map +2 -2
  72. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +22 -43
  73. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
  74. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +15 -2
  75. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +2 -2
  76. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js +0 -5
  77. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js.map +2 -2
  78. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js +0 -8
  79. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js.map +2 -2
  80. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js +0 -8
  81. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js.map +2 -2
  82. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js +0 -8
  83. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
  84. package/dist-cjs/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.js.map +2 -2
  85. package/dist-cjs/lib/ui/TldrawUi.js +0 -14
  86. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  87. package/dist-cjs/lib/ui/components/A11y.js +12 -14
  88. package/dist-cjs/lib/ui/components/A11y.js.map +2 -2
  89. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +3 -12
  90. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  91. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +2 -3
  92. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
  93. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +1 -51
  94. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +2 -2
  95. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +2 -3
  96. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  97. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  98. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  99. package/dist-cjs/lib/ui/components/MobileStylePanel.js +3 -5
  100. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  101. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +5 -4
  102. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
  103. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +1 -2
  104. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  105. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +2 -3
  106. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
  107. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
  108. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
  109. package/dist-cjs/lib/ui/components/Spinner.js +25 -2
  110. package/dist-cjs/lib/ui/components/Spinner.js.map +2 -2
  111. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +0 -2
  112. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  113. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +139 -171
  114. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  115. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js +3 -3
  116. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +2 -2
  117. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js +25 -26
  118. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +3 -3
  119. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbar.js +7 -21
  120. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbar.js.map +3 -3
  121. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +1 -1
  122. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  123. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +21 -66
  124. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  125. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +80 -189
  126. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  127. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +4 -5
  128. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  129. package/dist-cjs/lib/ui/components/menu-items.js +0 -22
  130. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  131. package/dist-cjs/lib/ui/components/primitives/Button/TldrawUiButtonIcon.js.map +2 -2
  132. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js +16 -7
  133. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +3 -3
  134. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +1 -1
  135. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  136. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js +1 -1
  137. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js.map +2 -2
  138. package/dist-cjs/lib/ui/components/primitives/TldrawUiIcon.js +1 -35
  139. package/dist-cjs/lib/ui/components/primitives/TldrawUiIcon.js.map +2 -2
  140. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +2 -3
  141. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
  142. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +2 -6
  143. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  144. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +7 -31
  145. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  146. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js.map +2 -2
  147. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  148. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +12 -25
  149. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  150. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +22 -154
  151. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  152. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js +2 -3
  153. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js.map +2 -2
  154. package/dist-cjs/lib/ui/context/actions.js +8 -57
  155. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  156. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  157. package/dist-cjs/lib/ui/hooks/menu-hooks.js.map +2 -2
  158. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +2 -2
  159. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +2 -2
  160. package/dist-cjs/lib/ui/hooks/useTools.js +9 -94
  161. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  162. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  163. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +0 -11
  164. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  165. package/dist-cjs/lib/ui/kbd-utils.js +1 -2
  166. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  167. package/dist-cjs/lib/ui/version.js +3 -3
  168. package/dist-cjs/lib/ui/version.js.map +1 -1
  169. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js +1 -1
  170. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js.map +2 -2
  171. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js +2 -3
  172. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js.map +2 -2
  173. package/dist-esm/index.d.mts +23 -297
  174. package/dist-esm/index.mjs +4 -51
  175. package/dist-esm/index.mjs.map +2 -2
  176. package/dist-esm/lib/TldrawImage.mjs +2 -5
  177. package/dist-esm/lib/TldrawImage.mjs.map +2 -2
  178. package/dist-esm/lib/canvas/TldrawCropHandles.mjs +1 -1
  179. package/dist-esm/lib/canvas/TldrawCropHandles.mjs.map +2 -2
  180. package/dist-esm/lib/canvas/TldrawHandles.mjs +1 -1
  181. package/dist-esm/lib/canvas/TldrawHandles.mjs.map +2 -2
  182. package/dist-esm/lib/canvas/TldrawOverlays.mjs +1 -1
  183. package/dist-esm/lib/canvas/TldrawOverlays.mjs.map +2 -2
  184. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  185. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  186. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs +271 -279
  187. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs.map +2 -2
  188. package/dist-esm/lib/defaultExternalContentHandlers.mjs +0 -1
  189. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  190. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +44 -30
  191. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  192. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +5 -19
  193. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +2 -2
  194. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +1 -1
  195. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
  196. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  197. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  198. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +0 -3
  199. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +2 -2
  200. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +6 -4
  201. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  202. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  203. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  204. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +17 -18
  205. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  206. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  207. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  208. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +2 -3
  209. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  210. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +1 -2
  211. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  212. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +4 -6
  213. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  214. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +3 -3
  215. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +1 -1
  216. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +5 -21
  217. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  218. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +5 -7
  219. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  220. package/dist-esm/lib/shapes/shared/PathBuilder.mjs +3 -22
  221. package/dist-esm/lib/shapes/shared/PathBuilder.mjs.map +2 -2
  222. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +0 -1
  223. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  224. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs +2 -5
  225. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs.map +2 -2
  226. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +4 -5
  227. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  228. package/dist-esm/lib/shapes/shared/SvgTextLabel.mjs +3 -4
  229. package/dist-esm/lib/shapes/shared/SvgTextLabel.mjs.map +2 -2
  230. package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
  231. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs +1 -10
  232. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs.map +2 -2
  233. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +13 -8
  234. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  235. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  236. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  237. package/dist-esm/lib/styles.mjs.map +2 -2
  238. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +1 -26
  239. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  240. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +0 -13
  241. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  242. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.mjs +1 -7
  243. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.mjs.map +2 -2
  244. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +22 -43
  245. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
  246. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +15 -2
  247. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +2 -2
  248. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs +0 -5
  249. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs.map +2 -2
  250. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs +0 -8
  251. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs.map +2 -2
  252. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs +0 -8
  253. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs.map +2 -2
  254. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs +0 -8
  255. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
  256. package/dist-esm/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.mjs.map +2 -2
  257. package/dist-esm/lib/ui/TldrawUi.mjs +2 -16
  258. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  259. package/dist-esm/lib/ui/components/A11y.mjs +12 -14
  260. package/dist-esm/lib/ui/components/A11y.mjs.map +2 -2
  261. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +3 -12
  262. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  263. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +2 -3
  264. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
  265. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +1 -51
  266. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +2 -2
  267. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +3 -3
  268. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  269. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  270. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  271. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +3 -6
  272. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  273. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +5 -4
  274. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
  275. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +1 -2
  276. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  277. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +2 -3
  278. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
  279. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
  280. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
  281. package/dist-esm/lib/ui/components/Spinner.mjs +26 -3
  282. package/dist-esm/lib/ui/components/Spinner.mjs.map +2 -2
  283. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +1 -3
  284. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  285. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +139 -171
  286. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  287. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs +3 -3
  288. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +2 -2
  289. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs +25 -26
  290. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +2 -2
  291. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbar.mjs +9 -23
  292. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbar.mjs.map +3 -3
  293. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +1 -1
  294. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  295. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +21 -56
  296. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  297. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +81 -192
  298. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  299. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +4 -5
  300. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  301. package/dist-esm/lib/ui/components/menu-items.mjs +0 -22
  302. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  303. package/dist-esm/lib/ui/components/primitives/Button/TldrawUiButtonIcon.mjs.map +2 -2
  304. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +6 -8
  305. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +2 -2
  306. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +1 -1
  307. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  308. package/dist-esm/lib/ui/components/primitives/TldrawUiDialog.mjs +1 -1
  309. package/dist-esm/lib/ui/components/primitives/TldrawUiDialog.mjs.map +2 -2
  310. package/dist-esm/lib/ui/components/primitives/TldrawUiIcon.mjs +2 -36
  311. package/dist-esm/lib/ui/components/primitives/TldrawUiIcon.mjs.map +2 -2
  312. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +2 -3
  313. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
  314. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +2 -6
  315. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  316. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +7 -31
  317. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  318. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs.map +2 -2
  319. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  320. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +12 -25
  321. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  322. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +24 -162
  323. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  324. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs +2 -3
  325. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs.map +2 -2
  326. package/dist-esm/lib/ui/context/actions.mjs +8 -57
  327. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  328. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  329. package/dist-esm/lib/ui/hooks/menu-hooks.mjs.map +2 -2
  330. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +2 -2
  331. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +2 -2
  332. package/dist-esm/lib/ui/hooks/useTools.mjs +10 -102
  333. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  334. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +0 -11
  335. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  336. package/dist-esm/lib/ui/kbd-utils.mjs +1 -2
  337. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  338. package/dist-esm/lib/ui/version.mjs +3 -3
  339. package/dist-esm/lib/ui/version.mjs.map +1 -1
  340. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs +1 -1
  341. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs.map +2 -2
  342. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs +2 -3
  343. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs.map +2 -2
  344. package/package.json +34 -12
  345. package/src/index.ts +2 -39
  346. package/src/lib/TldrawImage.tsx +2 -6
  347. package/src/lib/canvas/TldrawCropHandles.tsx +1 -3
  348. package/src/lib/canvas/TldrawHandles.tsx +1 -5
  349. package/src/lib/canvas/TldrawOverlays.tsx +1 -1
  350. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  351. package/src/lib/canvas/TldrawSelectionForeground.tsx +1 -5
  352. package/src/lib/defaultExternalContentHandlers.ts +1 -2
  353. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +1 -2
  354. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +3 -4
  355. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +11 -12
  356. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +46 -30
  357. package/src/lib/shapes/arrow/arrowLabel.ts +3 -23
  358. package/src/lib/shapes/arrow/arrowTargetState.ts +1 -2
  359. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  360. package/src/lib/shapes/arrow/toolStates/Pointing.tsx +0 -3
  361. package/src/lib/shapes/draw/DrawShapeTool.test.ts +5 -0
  362. package/src/lib/shapes/draw/DrawShapeUtil.tsx +7 -4
  363. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  364. package/src/lib/shapes/frame/FrameShapeUtil.tsx +21 -26
  365. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  366. package/src/lib/shapes/geo/GeoShapeUtil.tsx +2 -3
  367. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  368. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +4 -7
  369. package/src/lib/shapes/image/ImageShapeUtil.tsx +3 -3
  370. package/src/lib/shapes/line/LineShapeUtil.test.tsx +3 -4
  371. package/src/lib/shapes/line/LineShapeUtil.tsx +6 -25
  372. package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
  373. package/src/lib/shapes/note/NoteShapeUtil.tsx +4 -10
  374. package/src/lib/shapes/shared/PathBuilder.test.tsx +1 -1
  375. package/src/lib/shapes/shared/PathBuilder.tsx +1 -35
  376. package/src/lib/shapes/shared/PlainTextLabel.tsx +0 -1
  377. package/src/lib/shapes/shared/RichTextLabel.tsx +0 -4
  378. package/src/lib/shapes/shared/ShapeFill.tsx +4 -5
  379. package/src/lib/shapes/shared/SvgTextLabel.tsx +2 -4
  380. package/src/lib/shapes/shared/freehand/svg.ts +0 -2
  381. package/src/lib/shapes/shared/usePrefersReducedMotion.tsx +1 -11
  382. package/src/lib/shapes/text/TextShapeTool.test.ts +5 -6
  383. package/src/lib/shapes/text/TextShapeUtil.tsx +14 -8
  384. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  385. package/src/lib/styles.tsx +1 -3
  386. package/src/lib/tools/EraserTool/childStates/Erasing.ts +1 -34
  387. package/src/lib/tools/EraserTool/childStates/Pointing.ts +0 -20
  388. package/src/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.ts +1 -8
  389. package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +30 -54
  390. package/src/lib/tools/SelectTool/childStates/Idle.ts +24 -2
  391. package/src/lib/tools/SelectTool/childStates/PointingShape.ts +0 -7
  392. package/src/lib/tools/SelectTool/childStates/Resizing.ts +1 -12
  393. package/src/lib/tools/SelectTool/childStates/Rotating.ts +0 -11
  394. package/src/lib/tools/SelectTool/childStates/Translating.ts +1 -11
  395. package/src/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.ts +0 -1
  396. package/src/lib/ui/TldrawUi.tsx +2 -17
  397. package/src/lib/ui/components/A11y.tsx +13 -15
  398. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +3 -15
  399. package/src/lib/ui/components/DefaultMenuPanel.tsx +3 -4
  400. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +0 -40
  401. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +2 -4
  402. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  403. package/src/lib/ui/components/MobileStylePanel.tsx +6 -9
  404. package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +5 -4
  405. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +2 -3
  406. package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +3 -4
  407. package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
  408. package/src/lib/ui/components/Spinner.tsx +24 -2
  409. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +1 -3
  410. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +106 -146
  411. package/src/lib/ui/components/StylePanel/DoubleDropdownPicker.tsx +3 -3
  412. package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +6 -7
  413. package/src/lib/ui/components/Toolbar/DefaultImageToolbar.tsx +9 -25
  414. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +1 -1
  415. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +23 -55
  416. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +61 -212
  417. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +12 -17
  418. package/src/lib/ui/components/menu-items.tsx +0 -25
  419. package/src/lib/ui/components/primitives/Button/TldrawUiButtonIcon.tsx +2 -2
  420. package/src/lib/ui/components/primitives/TldrawUiButtonPicker.tsx +35 -40
  421. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +1 -1
  422. package/src/lib/ui/components/primitives/TldrawUiDialog.tsx +1 -1
  423. package/src/lib/ui/components/primitives/TldrawUiIcon.tsx +3 -41
  424. package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +2 -4
  425. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +1 -6
  426. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +12 -56
  427. package/src/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.tsx +2 -2
  428. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +1 -0
  429. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +16 -29
  430. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +23 -224
  431. package/src/lib/ui/context/TldrawUiContextProvider.tsx +20 -23
  432. package/src/lib/ui/context/actions.tsx +9 -59
  433. package/src/lib/ui/context/events.tsx +2 -6
  434. package/src/lib/ui/hooks/menu-hooks.ts +0 -1
  435. package/src/lib/ui/hooks/useKeyboardShortcuts.ts +2 -3
  436. package/src/lib/ui/hooks/useTools.tsx +11 -142
  437. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +0 -11
  438. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +0 -11
  439. package/src/lib/ui/kbd-utils.ts +1 -2
  440. package/src/lib/ui/version.ts +3 -3
  441. package/src/lib/ui.css +314 -414
  442. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +7 -21
  443. package/src/lib/utils/excalidraw/putExcalidrawContent.ts +1 -1
  444. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +7 -28
  445. package/src/lib/utils/tldr/buildFromV1Document.ts +1 -2
  446. package/src/test/A11y.test.tsx +2 -3
  447. package/src/test/ClickManager.test.ts +6 -7
  448. package/src/test/Editor.test.tsx +20 -21
  449. package/src/test/EraserTool.test.ts +13 -184
  450. package/src/test/HandTool.test.ts +9 -10
  451. package/src/test/HighlightShape.test.ts +1 -2
  452. package/src/test/SelectTool.test.ts +13 -40
  453. package/src/test/TLUserPreferences.test.ts +3 -4
  454. package/src/test/TestEditor.ts +15 -13
  455. package/src/test/TldrawEditor.test.tsx +10 -11
  456. package/src/test/ZoomTool.test.ts +6 -7
  457. package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
  458. package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
  459. package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
  460. package/src/test/arrows-megabus.test.tsx +10 -17
  461. package/src/test/bindings.test.tsx +37 -24
  462. package/src/test/bookmark-shapes.test.ts +8 -1
  463. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +7 -23
  464. package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
  465. package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
  466. package/src/test/commands/alignShapes.test.tsx +24 -25
  467. package/src/test/commands/animationSpeed.test.ts +1 -2
  468. package/src/test/commands/centerOnPoint.test.ts +2 -3
  469. package/src/test/commands/clipboard.test.ts +2 -3
  470. package/src/test/commands/createShapes.test.ts +1 -2
  471. package/src/test/commands/deletePage.test.ts +1 -84
  472. package/src/test/commands/deleteShapes.test.ts +1 -2
  473. package/src/test/commands/distributeShapes.test.tsx +10 -11
  474. package/src/test/commands/getSvgString.test.ts +1 -2
  475. package/src/test/commands/packShapes.test.ts +4 -5
  476. package/src/test/commands/resizeShape.test.ts +1 -2
  477. package/src/test/commands/rotateShapes.test.ts +6 -7
  478. package/src/test/commands/setCamera.test.ts +3 -4
  479. package/src/test/commands/setCurrentPage.test.ts +2 -3
  480. package/src/test/commands/stackShapes.test.ts +10 -11
  481. package/src/test/commands/stretch.test.tsx +12 -13
  482. package/src/test/createDeepLink.test.tsx +1 -2
  483. package/src/test/cropping.test.ts +2 -3
  484. package/src/test/drawing.test.ts +1 -2
  485. package/src/test/flipShapes.test.ts +3 -4
  486. package/src/test/frames.test.ts +24 -25
  487. package/src/test/getCulledShapes.test.tsx +2 -3
  488. package/src/test/groups.test.tsx +2 -2
  489. package/src/test/handleDeepLink.test.tsx +1 -2
  490. package/src/test/maxShapes.test.ts +2 -3
  491. package/src/test/modifiers.test.ts +4 -5
  492. package/src/test/navigation.test.ts +9 -264
  493. package/src/test/panning.test.ts +1 -2
  494. package/src/test/perf/perf.test.ts +1 -2
  495. package/src/test/registerDeepLinkListener.test.tsx +9 -10
  496. package/src/test/resizing.test.ts +38 -39
  497. package/src/test/select.test.tsx +3 -4
  498. package/src/test/selection-omnibus.test.ts +10 -11
  499. package/src/test/shapeutils.test.ts +48 -398
  500. package/src/test/translating.test.ts +9 -10
  501. package/tldraw.css +627 -726
  502. package/dist-cjs/lib/ui/components/AccessibilityMenu.js +0 -35
  503. package/dist-cjs/lib/ui/components/AccessibilityMenu.js.map +0 -7
  504. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +0 -268
  505. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +0 -7
  506. package/dist-cjs/lib/ui/components/primitives/layout.js +0 -76
  507. package/dist-cjs/lib/ui/components/primitives/layout.js.map +0 -7
  508. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs +0 -19
  509. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs.map +0 -7
  510. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +0 -245
  511. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +0 -7
  512. package/dist-esm/lib/ui/components/primitives/layout.mjs +0 -46
  513. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +0 -7
  514. package/src/lib/ui/components/AccessibilityMenu.tsx +0 -20
  515. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +0 -327
  516. package/src/lib/ui/components/primitives/layout.tsx +0 -107
  517. package/src/test/inner-outer-margin.test.ts +0 -315
@@ -35,11 +35,6 @@ import { TldrawUiToolbar, TldrawUiToolbarButton } from '../primitives/TldrawUiTo
35
35
  import { DoubleDropdownPicker } from './DoubleDropdownPicker'
36
36
  import { DropdownPicker } from './DropdownPicker'
37
37
 
38
- // Local component for style panel subheadings
39
- function StylePanelSubheading({ children }: { children: React.ReactNode }) {
40
- return <h3 className="tlui-style-panel__subheading">{children}</h3>
41
- }
42
-
43
38
  /** @public */
44
39
  export interface TLUiStylePanelContentProps {
45
40
  styles: ReturnType<typeof useRelevantStyles>
@@ -120,7 +115,6 @@ export function CommonStylePickerSet({ styles, theme }: ThemeStylePickerSetProps
120
115
  const editor = useEditor()
121
116
 
122
117
  const onHistoryMark = useCallback((id: string) => editor.markHistoryStoppingPoint(id), [editor])
123
- const showUiLabels = useValue('showUiLabels', () => editor.user.getShowUiLabels(), [editor])
124
118
 
125
119
  const handleValueChange = useStyleChangeCallback()
126
120
 
@@ -135,90 +129,70 @@ export function CommonStylePickerSet({ styles, theme }: ThemeStylePickerSetProps
135
129
  <>
136
130
  <div className="tlui-style-panel__section__common" data-testid="style.panel">
137
131
  {color === undefined ? null : (
138
- <>
139
- {showUiLabels && (
140
- <StylePanelSubheading>{msg('style-panel.color')}</StylePanelSubheading>
141
- )}
142
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.color')}>
143
- <TldrawUiButtonPicker
144
- title={msg('style-panel.color')}
145
- uiType="color"
146
- style={DefaultColorStyle}
147
- items={STYLES.color}
148
- value={color}
149
- onValueChange={handleValueChange}
150
- theme={theme}
151
- onHistoryMark={onHistoryMark}
152
- />
153
- </TldrawUiToolbar>
154
- </>
132
+ <TldrawUiToolbar label={msg('style-panel.color')}>
133
+ <TldrawUiButtonPicker
134
+ title={msg('style-panel.color')}
135
+ uiType="color"
136
+ style={DefaultColorStyle}
137
+ items={STYLES.color}
138
+ value={color}
139
+ onValueChange={handleValueChange}
140
+ theme={theme}
141
+ onHistoryMark={onHistoryMark}
142
+ />
143
+ </TldrawUiToolbar>
155
144
  )}
156
145
  <OpacitySlider />
157
146
  </div>
158
147
  {showPickers && (
159
148
  <div className="tlui-style-panel__section">
160
149
  {fill === undefined ? null : (
161
- <>
162
- {showUiLabels && (
163
- <StylePanelSubheading>{msg('style-panel.fill')}</StylePanelSubheading>
164
- )}
165
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.fill')}>
166
- <TldrawUiButtonPicker
167
- title={msg('style-panel.fill')}
168
- uiType="fill"
169
- style={DefaultFillStyle}
170
- items={STYLES.fill}
171
- value={fill}
172
- onValueChange={handleValueChange}
173
- theme={theme}
174
- onHistoryMark={onHistoryMark}
175
- />
176
- </TldrawUiToolbar>
177
- </>
150
+ <TldrawUiToolbar label={msg('style-panel.fill')}>
151
+ <TldrawUiButtonPicker
152
+ title={msg('style-panel.fill')}
153
+ uiType="fill"
154
+ style={DefaultFillStyle}
155
+ items={STYLES.fill}
156
+ value={fill}
157
+ onValueChange={handleValueChange}
158
+ theme={theme}
159
+ onHistoryMark={onHistoryMark}
160
+ />
161
+ </TldrawUiToolbar>
178
162
  )}
179
163
  {dash === undefined ? null : (
180
- <>
181
- {showUiLabels && (
182
- <StylePanelSubheading>{msg('style-panel.dash')}</StylePanelSubheading>
183
- )}
184
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.dash')}>
185
- <TldrawUiButtonPicker
186
- title={msg('style-panel.dash')}
187
- uiType="dash"
188
- style={DefaultDashStyle}
189
- items={STYLES.dash}
190
- value={dash}
191
- onValueChange={handleValueChange}
192
- theme={theme}
193
- onHistoryMark={onHistoryMark}
194
- />
195
- </TldrawUiToolbar>
196
- </>
164
+ <TldrawUiToolbar label={msg('style-panel.dash')}>
165
+ <TldrawUiButtonPicker
166
+ title={msg('style-panel.dash')}
167
+ uiType="dash"
168
+ style={DefaultDashStyle}
169
+ items={STYLES.dash}
170
+ value={dash}
171
+ onValueChange={handleValueChange}
172
+ theme={theme}
173
+ onHistoryMark={onHistoryMark}
174
+ />
175
+ </TldrawUiToolbar>
197
176
  )}
198
177
  {size === undefined ? null : (
199
- <>
200
- {showUiLabels && (
201
- <StylePanelSubheading>{msg('style-panel.size')}</StylePanelSubheading>
202
- )}
203
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.size')}>
204
- <TldrawUiButtonPicker
205
- title={msg('style-panel.size')}
206
- uiType="size"
207
- style={DefaultSizeStyle}
208
- items={STYLES.size}
209
- value={size}
210
- onValueChange={(style, value) => {
211
- handleValueChange(style, value)
212
- const selectedShapeIds = editor.getSelectedShapeIds()
213
- if (selectedShapeIds.length > 0) {
214
- kickoutOccludedShapes(editor, selectedShapeIds)
215
- }
216
- }}
217
- theme={theme}
218
- onHistoryMark={onHistoryMark}
219
- />
220
- </TldrawUiToolbar>
221
- </>
178
+ <TldrawUiToolbar label={msg('style-panel.size')}>
179
+ <TldrawUiButtonPicker
180
+ title={msg('style-panel.size')}
181
+ uiType="size"
182
+ style={DefaultSizeStyle}
183
+ items={STYLES.size}
184
+ value={size}
185
+ onValueChange={(style, value) => {
186
+ handleValueChange(style, value)
187
+ const selectedShapeIds = editor.getSelectedShapeIds()
188
+ if (selectedShapeIds.length > 0) {
189
+ kickoutOccludedShapes(editor, selectedShapeIds)
190
+ }
191
+ }}
192
+ theme={theme}
193
+ onHistoryMark={onHistoryMark}
194
+ />
195
+ </TldrawUiToolbar>
222
196
  )}
223
197
  </div>
224
198
  )}
@@ -233,8 +207,6 @@ export function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps)
233
207
 
234
208
  const editor = useEditor()
235
209
  const onHistoryMark = useCallback((id: string) => editor.markHistoryStoppingPoint(id), [editor])
236
- const showUiLabels = useValue('showUiLabels', () => editor.user.getShowUiLabels(), [editor])
237
- const labelStr = showUiLabels && msg('style-panel.font')
238
210
 
239
211
  const font = styles.get(DefaultFontStyle)
240
212
  const textAlign = styles.get(DefaultTextAlignStyle)
@@ -247,37 +219,33 @@ export function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps)
247
219
  return (
248
220
  <div className="tlui-style-panel__section">
249
221
  {font === undefined ? null : (
250
- <>
251
- {labelStr && <StylePanelSubheading>{labelStr}</StylePanelSubheading>}
252
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.font')}>
253
- <TldrawUiButtonPicker
254
- title={msg('style-panel.font')}
255
- uiType="font"
256
- style={DefaultFontStyle}
257
- items={STYLES.font}
258
- value={font}
259
- onValueChange={handleValueChange}
260
- theme={theme}
261
- onHistoryMark={onHistoryMark}
262
- />
263
- </TldrawUiToolbar>
264
- </>
222
+ <TldrawUiToolbar label={msg('style-panel.font')}>
223
+ <TldrawUiButtonPicker
224
+ title={msg('style-panel.font')}
225
+ uiType="font"
226
+ style={DefaultFontStyle}
227
+ items={STYLES.font}
228
+ value={font}
229
+ onValueChange={handleValueChange}
230
+ theme={theme}
231
+ onHistoryMark={onHistoryMark}
232
+ />
233
+ </TldrawUiToolbar>
265
234
  )}
266
235
 
267
236
  {textAlign === undefined ? null : (
268
- <>
269
- {showUiLabels && <StylePanelSubheading>{msg('style-panel.align')}</StylePanelSubheading>}
270
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.align')}>
271
- <TldrawUiButtonPicker
272
- title={msg('style-panel.align')}
273
- uiType="align"
274
- style={DefaultTextAlignStyle}
275
- items={STYLES.textAlign}
276
- value={textAlign}
277
- onValueChange={handleValueChange}
278
- theme={theme}
279
- onHistoryMark={onHistoryMark}
280
- />
237
+ <TldrawUiToolbar label={msg('style-panel.align')} className="tlui-style-panel__row">
238
+ <TldrawUiButtonPicker
239
+ title={msg('style-panel.align')}
240
+ uiType="align"
241
+ style={DefaultTextAlignStyle}
242
+ items={STYLES.textAlign}
243
+ value={textAlign}
244
+ onValueChange={handleValueChange}
245
+ theme={theme}
246
+ onHistoryMark={onHistoryMark}
247
+ />
248
+ <div className="tlui-style-panel__row__extra-button">
281
249
  <TldrawUiToolbarButton
282
250
  type="icon"
283
251
  title={msg('style-panel.vertical-align')}
@@ -286,26 +254,23 @@ export function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps)
286
254
  >
287
255
  <TldrawUiButtonIcon icon="vertical-align-middle" />
288
256
  </TldrawUiToolbarButton>
289
- </TldrawUiToolbar>
290
- </>
257
+ </div>
258
+ </TldrawUiToolbar>
291
259
  )}
292
260
 
293
261
  {labelAlign === undefined ? null : (
294
- <>
295
- {showUiLabels && (
296
- <StylePanelSubheading>{msg('style-panel.label-align')}</StylePanelSubheading>
297
- )}
298
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.label-align')}>
299
- <TldrawUiButtonPicker
300
- title={msg('style-panel.label-align')}
301
- uiType="align"
302
- style={DefaultHorizontalAlignStyle}
303
- items={STYLES.horizontalAlign}
304
- value={labelAlign}
305
- onValueChange={handleValueChange}
306
- theme={theme}
307
- onHistoryMark={onHistoryMark}
308
- />
262
+ <TldrawUiToolbar label={msg('style-panel.label-align')} className="tlui-style-panel__row">
263
+ <TldrawUiButtonPicker
264
+ title={msg('style-panel.label-align')}
265
+ uiType="align"
266
+ style={DefaultHorizontalAlignStyle}
267
+ items={STYLES.horizontalAlign}
268
+ value={labelAlign}
269
+ onValueChange={handleValueChange}
270
+ theme={theme}
271
+ onHistoryMark={onHistoryMark}
272
+ />
273
+ <div className="tlui-style-panel__row__extra-button">
309
274
  {verticalLabelAlign === undefined ? (
310
275
  <TldrawUiToolbarButton
311
276
  type="icon"
@@ -327,8 +292,8 @@ export function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps)
327
292
  onValueChange={handleValueChange}
328
293
  />
329
294
  )}
330
- </TldrawUiToolbar>
331
- </>
295
+ </div>
296
+ </TldrawUiToolbar>
332
297
  )}
333
298
  </div>
334
299
  )
@@ -344,7 +309,7 @@ export function GeoStylePickerSet({ styles }: StylePickerSetProps) {
344
309
  }
345
310
 
346
311
  return (
347
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.geo')}>
312
+ <TldrawUiToolbar label={msg('style-panel.geo')}>
348
313
  <DropdownPicker
349
314
  id="geo"
350
315
  type="menu"
@@ -370,7 +335,7 @@ export function SplineStylePickerSet({ styles }: StylePickerSetProps) {
370
335
  }
371
336
 
372
337
  return (
373
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.spline')}>
338
+ <TldrawUiToolbar label={msg('style-panel.spline')}>
374
339
  <DropdownPicker
375
340
  id="spline"
376
341
  type="menu"
@@ -396,7 +361,7 @@ export function ArrowStylePickerSet({ styles }: StylePickerSetProps) {
396
361
  }
397
362
 
398
363
  return (
399
- <TldrawUiToolbar orientation="horizontal" label={msg('style-panel.arrow-kind')}>
364
+ <TldrawUiToolbar label={msg('style-panel.arrow-kind')}>
400
365
  <DropdownPicker
401
366
  id="arrow-kind"
402
367
  type="menu"
@@ -445,7 +410,6 @@ export function OpacitySlider() {
445
410
  const editor = useEditor()
446
411
 
447
412
  const onHistoryMark = useCallback((id: string) => editor.markHistoryStoppingPoint(id), [editor])
448
- const showUiLabels = useValue('showUiLabels', () => editor.user.getShowUiLabels(), [editor])
449
413
 
450
414
  const opacity = useValue('opacity', () => editor.getSharedOpacity(), [editor])
451
415
  const trackEvent = useUiEvents()
@@ -479,18 +443,14 @@ export function OpacitySlider() {
479
443
  )
480
444
 
481
445
  return (
482
- <>
483
- {showUiLabels && <StylePanelSubheading>{msg('style-panel.opacity')}</StylePanelSubheading>}
484
- <TldrawUiSlider
485
- data-testid="style.opacity"
486
- value={opacityIndex >= 0 ? opacityIndex : tldrawSupportedOpacities.length - 1}
487
- label={opacity.type === 'mixed' ? 'style-panel.mixed' : `opacity-style.${opacity.value}`}
488
- onValueChange={handleOpacityValueChange}
489
- steps={tldrawSupportedOpacities.length - 1}
490
- title={msg('style-panel.opacity')}
491
- onHistoryMark={onHistoryMark}
492
- ariaValueModifier={25}
493
- />
494
- </>
446
+ <TldrawUiSlider
447
+ data-testid="style.opacity"
448
+ value={opacityIndex >= 0 ? opacityIndex : tldrawSupportedOpacities.length - 1}
449
+ label={opacity.type === 'mixed' ? 'style-panel.mixed' : `opacity-style.${opacity.value}`}
450
+ onValueChange={handleOpacityValueChange}
451
+ steps={tldrawSupportedOpacities.length - 1}
452
+ title={msg('style-panel.opacity')}
453
+ onHistoryMark={onHistoryMark}
454
+ />
495
455
  )
496
456
  }
@@ -68,7 +68,7 @@ function DoubleDropdownPickerInner<T extends string>({
68
68
  <div title={msg(label)} className="tlui-style-panel__double-select-picker-label">
69
69
  {msg(label)}
70
70
  </div>
71
- <TldrawUiToolbar orientation="horizontal" label={msg(label)}>
71
+ <TldrawUiToolbar label={msg(label)} className="tlui-buttons__horizontal">
72
72
  <TldrawUiPopover id={idA} open={isOpenA} onOpenChange={setIsOpenA}>
73
73
  <TldrawUiPopoverTrigger>
74
74
  <TldrawUiToolbarButton
@@ -86,7 +86,7 @@ function DoubleDropdownPickerInner<T extends string>({
86
86
  </TldrawUiToolbarButton>
87
87
  </TldrawUiPopoverTrigger>
88
88
  <TldrawUiPopoverContent side="left" align="center" sideOffset={80} alignOffset={0}>
89
- <TldrawUiToolbar orientation="grid" label={msg(labelA)}>
89
+ <TldrawUiToolbar label={msg(labelA)} className="tlui-buttons__grid">
90
90
  <TldrawUiMenuContextProvider type="icons" sourceId="style-panel">
91
91
  {itemsA.map((item) => {
92
92
  return (
@@ -126,7 +126,7 @@ function DoubleDropdownPickerInner<T extends string>({
126
126
  </TldrawUiToolbarButton>
127
127
  </TldrawUiPopoverTrigger>
128
128
  <TldrawUiPopoverContent side="left" align="center" sideOffset={116} alignOffset={0}>
129
- <TldrawUiToolbar orientation="grid" label={msg(labelB)}>
129
+ <TldrawUiToolbar label={msg(labelB)} className="tlui-buttons__grid">
130
130
  <TldrawUiMenuContextProvider type="icons" sourceId="style-panel">
131
131
  {itemsB.map((item) => {
132
132
  return (
@@ -1,4 +1,5 @@
1
1
  import { SharedStyle, StyleProp, tlmenus, useEditor } from '@tldraw/editor'
2
+ import classNames from 'classnames'
2
3
  import * as React from 'react'
3
4
  import { StyleValuesForUi } from '../../../styles'
4
5
  import { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'
@@ -56,12 +57,7 @@ function DropdownPickerInner<T extends string>({
56
57
 
57
58
  const popoverId = `style panel ${id}`
58
59
  return (
59
- <TldrawUiPopover
60
- id={popoverId}
61
- open={isOpen}
62
- onOpenChange={setIsOpen}
63
- className="tlui-style-panel__dropdown-picker"
64
- >
60
+ <TldrawUiPopover id={popoverId} open={isOpen} onOpenChange={setIsOpen}>
65
61
  <TldrawUiPopoverTrigger>
66
62
  <TldrawUiToolbarButton
67
63
  type={type}
@@ -74,7 +70,10 @@ function DropdownPickerInner<T extends string>({
74
70
  </TldrawUiToolbarButton>
75
71
  </TldrawUiPopoverTrigger>
76
72
  <TldrawUiPopoverContent side="left" align="center">
77
- <TldrawUiToolbar orientation="grid" label={labelStr}>
73
+ <TldrawUiToolbar
74
+ label={labelStr}
75
+ className={classNames('tlui-buttons__grid', `tlui-buttons__${stylePanelType}`)}
76
+ >
78
77
  <TldrawUiMenuContextProvider type="icons" sourceId="style-panel">
79
78
  {items.map((item) => {
80
79
  return (
@@ -1,5 +1,5 @@
1
- import { Box, TLImageShape, useEditor, useValue } from '@tldraw/editor'
2
- import { useCallback, useEffect, useRef, useState } from 'react'
1
+ import { Box, TLImageShape, track, useEditor, useValue } from '@tldraw/editor'
2
+ import { useCallback, useRef, useState } from 'react'
3
3
  import { useTranslation } from '../../hooks/useTranslation/useTranslation'
4
4
  import { TldrawUiContextualToolbar } from '../primitives/TldrawUiContextualToolbar'
5
5
  import { AltTextEditor } from './AltTextEditor'
@@ -11,7 +11,9 @@ export interface TLUiImageToolbarProps {
11
11
  }
12
12
 
13
13
  /** @public @react */
14
- export function DefaultImageToolbar({ children }: TLUiImageToolbarProps) {
14
+ export const DefaultImageToolbar = track(function DefaultImageToolbar({
15
+ children,
16
+ }: TLUiImageToolbarProps) {
15
17
  const editor = useEditor()
16
18
  const imageShapeId = useValue(
17
19
  'imageShape',
@@ -22,11 +24,7 @@ export function DefaultImageToolbar({ children }: TLUiImageToolbarProps) {
22
24
  },
23
25
  [editor]
24
26
  )
25
- const showToolbar = useValue(
26
- 'showToolbar',
27
- () => editor.isInAny('select.idle', 'select.pointing_shape', 'select.crop'),
28
- [editor]
29
- )
27
+ const showToolbar = editor.isInAny('select.idle', 'select.pointing_shape', 'select.crop')
30
28
  const isLocked = useValue(
31
29
  'locked',
32
30
  () => (imageShapeId ? editor.getShape<TLImageShape>(imageShapeId)?.isLocked : false),
@@ -39,7 +37,7 @@ export function DefaultImageToolbar({ children }: TLUiImageToolbarProps) {
39
37
  {children}
40
38
  </ContextualToolbarInner>
41
39
  )
42
- }
40
+ })
43
41
 
44
42
  function ContextualToolbarInner({
45
43
  children,
@@ -51,18 +49,8 @@ function ContextualToolbarInner({
51
49
  const editor = useEditor()
52
50
  const msg = useTranslation()
53
51
 
54
- const isChangingCrop = useValue(
55
- 'editor path',
56
- () =>
57
- editor.isInAny(
58
- 'select.crop.cropping',
59
- 'select.crop.pointing_crop_handle',
60
- 'select.crop.translating_crop'
61
- ),
62
- [editor]
63
- )
64
- const camera = useValue('camera', () => editor.getCamera(), [editor])
65
52
  const isInCropTool = useValue('editor path', () => editor.isIn('select.crop.'), [editor])
53
+ const isCropping = useValue('editor path', () => editor.isIn('select.crop.cropping'), [editor])
66
54
  const previousSelectionBounds = useRef<Box | undefined>()
67
55
  const handleManipulatingEnd = useCallback(() => {
68
56
  editor.setCroppingShape(null)
@@ -77,10 +65,6 @@ function ContextualToolbarInner({
77
65
  )
78
66
  const onEditAltTextClose = useCallback(() => setIsEditingAltText(false), [])
79
67
 
80
- useEffect(() => {
81
- previousSelectionBounds.current = undefined
82
- }, [camera])
83
-
84
68
  const getSelectionBounds = useCallback(() => {
85
69
  if (isInCropTool && previousSelectionBounds.current) {
86
70
  // If we're cropping we want to be able to keep the toolbar in the same position.
@@ -93,7 +77,7 @@ function ContextualToolbarInner({
93
77
  return bounds
94
78
  }, [editor, isInCropTool])
95
79
 
96
- if (isChangingCrop) {
80
+ if (isCropping) {
97
81
  previousSelectionBounds.current = undefined
98
82
  return null
99
83
  }
@@ -272,7 +272,7 @@ export const DefaultImageToolbarContent = track(function DefaultImageToolbarCont
272
272
  type="icon"
273
273
  onClick={onManipulatingEnd}
274
274
  data-testid="tool.image-confirm"
275
- style={{ borderLeft: '1px solid var(--tl-color-divider)', marginLeft: '2px' }}
275
+ style={{ borderLeft: '1px solid var(--color-divider)', marginLeft: '2px' }}
276
276
  >
277
277
  <TldrawUiButtonIcon small icon="check" />
278
278
  </TldrawUiButton>
@@ -1,5 +1,4 @@
1
1
  import { useEditor, usePassThroughWheelEvents, useValue } from '@tldraw/editor'
2
- import classNames from 'classnames'
3
2
  import { ReactNode, memo, useRef } from 'react'
4
3
  import { PORTRAIT_BREAKPOINT } from '../../constants'
5
4
  import { useBreakpoint } from '../../context/breakpoints'
@@ -7,7 +6,6 @@ import { useTldrawUiComponents } from '../../context/components'
7
6
  import { useReadonly } from '../../hooks/useReadonly'
8
7
  import { useTranslation } from '../../hooks/useTranslation/useTranslation'
9
8
  import { MobileStylePanel } from '../MobileStylePanel'
10
- import { TldrawUiOrientationProvider } from '../primitives/layout'
11
9
  import { TldrawUiToolbar } from '../primitives/TldrawUiToolbar'
12
10
  import { DefaultToolbarContent } from './DefaultToolbarContent'
13
11
  import { OverflowingToolbar } from './OverflowingToolbar'
@@ -16,11 +14,6 @@ import { ToggleToolLockedButton } from './ToggleToolLockedButton'
16
14
  /** @public */
17
15
  export interface DefaultToolbarProps {
18
16
  children?: ReactNode
19
- orientation?: 'horizontal' | 'vertical'
20
- minItems?: number
21
- minSizePx?: number
22
- maxItems?: number
23
- maxSizePx?: number
24
17
  }
25
18
 
26
19
  /**
@@ -31,14 +24,7 @@ export interface DefaultToolbarProps {
31
24
  * @public
32
25
  * @react
33
26
  */
34
- export const DefaultToolbar = memo(function DefaultToolbar({
35
- children,
36
- orientation = 'horizontal',
37
- minItems = 4,
38
- minSizePx = 310,
39
- maxItems = 8,
40
- maxSizePx = 470,
41
- }: DefaultToolbarProps) {
27
+ export const DefaultToolbar = memo(function DefaultToolbar({ children }: DefaultToolbarProps) {
42
28
  const editor = useEditor()
43
29
  const msg = useTranslation()
44
30
  const breakpoint = useBreakpoint()
@@ -58,49 +44,31 @@ export const DefaultToolbar = memo(function DefaultToolbar({
58
44
  : breakpoint < PORTRAIT_BREAKPOINT.TABLET
59
45
 
60
46
  return (
61
- <TldrawUiOrientationProvider
62
- orientation={orientation}
63
- tooltipSide={orientation === 'horizontal' ? 'top' : 'right'}
64
- >
65
- <div
66
- ref={ref}
67
- className={classNames('tlui-main-toolbar', `tlui-main-toolbar--${orientation}`)}
68
- >
69
- <div className="tlui-main-toolbar__inner">
70
- <div className="tlui-main-toolbar__left">
71
- {!isReadonlyMode && (
72
- <div className="tlui-main-toolbar__extras">
73
- {showQuickActions && (
74
- <TldrawUiToolbar
75
- orientation={orientation}
76
- className="tlui-main-toolbar__extras__controls"
77
- label={msg('actions-menu.title')}
78
- >
79
- {QuickActions && <QuickActions />}
80
- {ActionsMenu && <ActionsMenu />}
81
- </TldrawUiToolbar>
82
- )}
83
- <ToggleToolLockedButton activeToolId={activeToolId} />
84
- </div>
85
- )}
86
- <OverflowingToolbar
87
- orientation={orientation}
88
- sizingParentClassName="tlui-main-toolbar"
89
- minItems={minItems}
90
- maxItems={maxItems}
91
- minSizePx={minSizePx}
92
- maxSizePx={maxSizePx}
93
- >
94
- {children ?? <DefaultToolbarContent />}
95
- </OverflowingToolbar>
96
- </div>
97
- {breakpoint < PORTRAIT_BREAKPOINT.TABLET_SM && !isReadonlyMode && (
98
- <div className="tlui-main-toolbar__tools tlui-main-toolbar__mobile-style-panel">
99
- <MobileStylePanel />
47
+ <div ref={ref} className="tlui-toolbar">
48
+ <div className="tlui-toolbar__inner">
49
+ <div className="tlui-toolbar__left">
50
+ {!isReadonlyMode && (
51
+ <div className="tlui-toolbar__extras">
52
+ {showQuickActions && (
53
+ <TldrawUiToolbar
54
+ className="tlui-toolbar__extras__controls tlui-buttons__horizontal"
55
+ label={msg('actions-menu.title')}
56
+ >
57
+ {QuickActions && <QuickActions />}
58
+ {ActionsMenu && <ActionsMenu />}
59
+ </TldrawUiToolbar>
60
+ )}
61
+ <ToggleToolLockedButton activeToolId={activeToolId} />
100
62
  </div>
101
63
  )}
64
+ <OverflowingToolbar>{children ?? <DefaultToolbarContent />}</OverflowingToolbar>
102
65
  </div>
66
+ {breakpoint < PORTRAIT_BREAKPOINT.TABLET_SM && !isReadonlyMode && (
67
+ <div className="tlui-toolbar__tools">
68
+ <MobileStylePanel />
69
+ </div>
70
+ )}
103
71
  </div>
104
- </TldrawUiOrientationProvider>
72
+ </div>
105
73
  )
106
74
  })