tldraw 3.16.0-internal.a478398270c6 → 3.16.0-internal.f8b97f0c414f

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 (656) hide show
  1. package/dist-cjs/index.d.ts +471 -130
  2. package/dist-cjs/index.js +58 -15
  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/TldrawImage.js +5 -2
  7. package/dist-cjs/lib/TldrawImage.js.map +3 -3
  8. package/dist-cjs/lib/canvas/TldrawCropHandles.js +1 -1
  9. package/dist-cjs/lib/canvas/TldrawCropHandles.js.map +2 -2
  10. package/dist-cjs/lib/canvas/TldrawHandles.js +1 -1
  11. package/dist-cjs/lib/canvas/TldrawHandles.js.map +2 -2
  12. package/dist-cjs/lib/canvas/TldrawOverlays.js +1 -1
  13. package/dist-cjs/lib/canvas/TldrawOverlays.js.map +2 -2
  14. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
  15. package/dist-cjs/lib/canvas/TldrawScribble.js.map +2 -2
  16. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js +279 -271
  17. package/dist-cjs/lib/canvas/TldrawSelectionForeground.js.map +2 -2
  18. package/dist-cjs/lib/defaultExternalContentHandlers.js +6 -4
  19. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  20. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +27 -44
  21. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  22. package/dist-cjs/lib/shapes/arrow/arrowLabel.js +22 -4
  23. package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +3 -3
  24. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +1 -1
  25. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
  26. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
  27. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  28. package/dist-cjs/lib/shapes/arrow/elbow/elbowArrowSnapLines.js.map +1 -1
  29. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +3 -0
  30. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +2 -2
  31. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js +4 -4
  32. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js.map +2 -2
  33. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +3 -6
  34. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  35. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  36. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  37. package/dist-cjs/lib/shapes/frame/FrameShapeTool.js.map +1 -1
  38. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +25 -18
  39. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  40. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  41. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  42. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +2 -2
  43. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +2 -2
  44. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +3 -2
  45. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  46. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +2 -1
  47. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
  48. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +5 -4
  49. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  50. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +6 -3
  51. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +2 -2
  52. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +20 -5
  53. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  54. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +8 -6
  55. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  56. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js +4 -4
  57. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js.map +2 -2
  58. package/dist-cjs/lib/shapes/shared/PathBuilder.js +21 -3
  59. package/dist-cjs/lib/shapes/shared/PathBuilder.js.map +2 -2
  60. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +2 -3
  61. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +2 -2
  62. package/dist-cjs/lib/shapes/shared/RichTextLabel.js +5 -2
  63. package/dist-cjs/lib/shapes/shared/RichTextLabel.js.map +2 -2
  64. package/dist-cjs/lib/shapes/shared/ShapeFill.js +4 -4
  65. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  66. package/dist-cjs/lib/shapes/shared/SvgTextLabel.js +4 -3
  67. package/dist-cjs/lib/shapes/shared/SvgTextLabel.js.map +2 -2
  68. package/dist-cjs/lib/shapes/shared/crop.js +1 -0
  69. package/dist-cjs/lib/shapes/shared/crop.js.map +2 -2
  70. package/dist-cjs/lib/shapes/shared/freehand/svg.js.map +2 -2
  71. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js +3 -4
  72. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js.map +2 -2
  73. package/dist-cjs/lib/shapes/shared/useEditableRichText.js.map +2 -2
  74. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js +0 -2
  75. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js.map +2 -2
  76. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js +10 -1
  77. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js.map +2 -2
  78. package/dist-cjs/lib/shapes/text/PlainTextArea.js +2 -2
  79. package/dist-cjs/lib/shapes/text/PlainTextArea.js.map +2 -2
  80. package/dist-cjs/lib/shapes/text/RichTextArea.js +3 -3
  81. package/dist-cjs/lib/shapes/text/RichTextArea.js.map +2 -2
  82. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +7 -13
  83. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  84. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  85. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  86. package/dist-cjs/lib/styles.js.map +2 -2
  87. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +25 -1
  88. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  89. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +12 -0
  90. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  91. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.js +7 -1
  92. package/dist-cjs/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.js.map +2 -2
  93. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +43 -22
  94. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
  95. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js +2 -15
  96. package/dist-cjs/lib/tools/SelectTool/childStates/Idle.js.map +2 -2
  97. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js +5 -0
  98. package/dist-cjs/lib/tools/SelectTool/childStates/PointingShape.js.map +2 -2
  99. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js +8 -0
  100. package/dist-cjs/lib/tools/SelectTool/childStates/Resizing.js.map +2 -2
  101. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js +8 -0
  102. package/dist-cjs/lib/tools/SelectTool/childStates/Rotating.js.map +2 -2
  103. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js +8 -0
  104. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
  105. package/dist-cjs/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.js.map +2 -2
  106. package/dist-cjs/lib/ui/TldrawUi.js +27 -12
  107. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  108. package/dist-cjs/lib/ui/components/A11y.js +15 -13
  109. package/dist-cjs/lib/ui/components/A11y.js.map +2 -2
  110. package/dist-cjs/lib/ui/components/AccessibilityMenu.js +35 -0
  111. package/dist-cjs/lib/ui/components/AccessibilityMenu.js.map +7 -0
  112. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +12 -3
  113. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  114. package/dist-cjs/lib/ui/components/{FollowingIndicator.js → DefaultFollowingIndicator.js} +6 -6
  115. package/dist-cjs/lib/ui/components/DefaultFollowingIndicator.js.map +7 -0
  116. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +3 -2
  117. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
  118. package/dist-cjs/lib/ui/components/EditLinkDialog.js +11 -1
  119. package/dist-cjs/lib/ui/components/EditLinkDialog.js.map +2 -2
  120. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +57 -7
  121. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +2 -2
  122. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +3 -2
  123. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  124. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  125. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  126. package/dist-cjs/lib/ui/components/MobileStylePanel.js +5 -3
  127. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  128. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +4 -5
  129. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
  130. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +3 -2
  131. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  132. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +3 -2
  133. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
  134. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
  135. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
  136. package/dist-cjs/lib/ui/components/Spinner.js +2 -25
  137. package/dist-cjs/lib/ui/components/Spinner.js.map +2 -2
  138. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +11 -4
  139. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  140. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +249 -278
  141. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  142. package/dist-cjs/lib/ui/components/{primitives/TldrawUiButtonPicker.js → StylePanel/StylePanelButtonPicker.js} +52 -54
  143. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +7 -0
  144. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js +68 -0
  145. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js.map +7 -0
  146. package/dist-cjs/lib/ui/components/StylePanel/{DoubleDropdownPicker.js → StylePanelDoubleDropdownPicker.js} +26 -25
  147. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js.map +7 -0
  148. package/dist-cjs/lib/ui/components/StylePanel/{DropdownPicker.js → StylePanelDropdownPicker.js} +47 -43
  149. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js.map +7 -0
  150. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js +28 -0
  151. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js.map +7 -0
  152. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js +3 -2
  153. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
  154. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbar.js +21 -7
  155. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbar.js.map +3 -3
  156. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +39 -10
  157. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  158. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -21
  159. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  160. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js +15 -3
  161. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js.map +2 -2
  162. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js +3 -3
  163. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js.map +2 -2
  164. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +189 -80
  165. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  166. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +5 -4
  167. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  168. package/dist-cjs/lib/ui/components/menu-items.js +22 -0
  169. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  170. package/dist-cjs/lib/ui/components/primitives/Button/TldrawUiButtonIcon.js.map +2 -2
  171. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +11 -2
  172. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  173. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js +1 -1
  174. package/dist-cjs/lib/ui/components/primitives/TldrawUiDialog.js.map +2 -2
  175. package/dist-cjs/lib/ui/components/primitives/TldrawUiIcon.js +35 -1
  176. package/dist-cjs/lib/ui/components/primitives/TldrawUiIcon.js.map +2 -2
  177. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js +2 -2
  178. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js.map +2 -2
  179. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +3 -2
  180. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
  181. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +23 -6
  182. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  183. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +33 -7
  184. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  185. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +294 -0
  186. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +7 -0
  187. package/dist-cjs/lib/ui/components/primitives/layout.js +76 -0
  188. package/dist-cjs/lib/ui/components/primitives/layout.js.map +7 -0
  189. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js.map +2 -2
  190. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  191. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
  192. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  193. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +154 -22
  194. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  195. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js +3 -2
  196. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js.map +2 -2
  197. package/dist-cjs/lib/ui/context/actions.js +79 -17
  198. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  199. package/dist-cjs/lib/ui/context/components.js +2 -0
  200. package/dist-cjs/lib/ui/context/components.js.map +2 -2
  201. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  202. package/dist-cjs/lib/ui/hooks/menu-hooks.js.map +2 -2
  203. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +1 -1
  204. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
  205. package/dist-cjs/lib/ui/hooks/useExportAs.js +3 -2
  206. package/dist-cjs/lib/ui/hooks/useExportAs.js.map +2 -2
  207. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +2 -2
  208. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +2 -2
  209. package/dist-cjs/lib/ui/hooks/useTools.js +94 -9
  210. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  211. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  212. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +13 -0
  213. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  214. package/dist-cjs/lib/ui/kbd-utils.js +11 -4
  215. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  216. package/dist-cjs/lib/ui/version.js +3 -3
  217. package/dist-cjs/lib/ui/version.js.map +1 -1
  218. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js +1 -1
  219. package/dist-cjs/lib/utils/excalidraw/putExcalidrawContent.js.map +2 -2
  220. package/dist-cjs/lib/utils/export/copyAs.js +1 -2
  221. package/dist-cjs/lib/utils/export/copyAs.js.map +2 -2
  222. package/dist-cjs/lib/utils/export/export.js +0 -20
  223. package/dist-cjs/lib/utils/export/export.js.map +2 -2
  224. package/dist-cjs/lib/utils/export/exportAs.js +1 -2
  225. package/dist-cjs/lib/utils/export/exportAs.js.map +2 -2
  226. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js +3 -2
  227. package/dist-cjs/lib/utils/tldr/buildFromV1Document.js.map +2 -2
  228. package/dist-esm/index.d.mts +471 -130
  229. package/dist-esm/index.mjs +107 -32
  230. package/dist-esm/index.mjs.map +2 -2
  231. package/dist-esm/lib/Tldraw.mjs +14 -4
  232. package/dist-esm/lib/Tldraw.mjs.map +2 -2
  233. package/dist-esm/lib/TldrawImage.mjs +5 -2
  234. package/dist-esm/lib/TldrawImage.mjs.map +2 -2
  235. package/dist-esm/lib/canvas/TldrawCropHandles.mjs +1 -1
  236. package/dist-esm/lib/canvas/TldrawCropHandles.mjs.map +2 -2
  237. package/dist-esm/lib/canvas/TldrawHandles.mjs +1 -1
  238. package/dist-esm/lib/canvas/TldrawHandles.mjs.map +2 -2
  239. package/dist-esm/lib/canvas/TldrawOverlays.mjs +1 -1
  240. package/dist-esm/lib/canvas/TldrawOverlays.mjs.map +2 -2
  241. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  242. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  243. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs +279 -271
  244. package/dist-esm/lib/canvas/TldrawSelectionForeground.mjs.map +2 -2
  245. package/dist-esm/lib/defaultExternalContentHandlers.mjs +6 -4
  246. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  247. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +30 -44
  248. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  249. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +25 -5
  250. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +3 -3
  251. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +1 -1
  252. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
  253. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  254. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  255. package/dist-esm/lib/shapes/arrow/elbow/elbowArrowSnapLines.mjs.map +1 -1
  256. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +3 -0
  257. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +2 -2
  258. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs +5 -5
  259. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs.map +2 -2
  260. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +4 -6
  261. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  262. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  263. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  264. package/dist-esm/lib/shapes/frame/FrameShapeTool.mjs.map +1 -1
  265. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +26 -18
  266. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  267. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  268. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  269. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +3 -3
  270. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +2 -2
  271. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +4 -2
  272. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  273. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +2 -1
  274. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  275. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +6 -4
  276. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  277. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +6 -3
  278. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +2 -2
  279. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +21 -5
  280. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  281. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +9 -6
  282. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  283. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs +5 -5
  284. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs.map +2 -2
  285. package/dist-esm/lib/shapes/shared/PathBuilder.mjs +22 -3
  286. package/dist-esm/lib/shapes/shared/PathBuilder.mjs.map +2 -2
  287. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +2 -3
  288. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  289. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs +5 -2
  290. package/dist-esm/lib/shapes/shared/RichTextLabel.mjs.map +2 -2
  291. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +5 -4
  292. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  293. package/dist-esm/lib/shapes/shared/SvgTextLabel.mjs +4 -3
  294. package/dist-esm/lib/shapes/shared/SvgTextLabel.mjs.map +2 -2
  295. package/dist-esm/lib/shapes/shared/crop.mjs +1 -0
  296. package/dist-esm/lib/shapes/shared/crop.mjs.map +2 -2
  297. package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
  298. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs +4 -5
  299. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
  300. package/dist-esm/lib/shapes/shared/useEditableRichText.mjs.map +2 -2
  301. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs +0 -2
  302. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs.map +2 -2
  303. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs +10 -1
  304. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs.map +2 -2
  305. package/dist-esm/lib/shapes/text/PlainTextArea.mjs +3 -3
  306. package/dist-esm/lib/shapes/text/PlainTextArea.mjs.map +2 -2
  307. package/dist-esm/lib/shapes/text/RichTextArea.mjs +3 -4
  308. package/dist-esm/lib/shapes/text/RichTextArea.mjs.map +2 -2
  309. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +8 -13
  310. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  311. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  312. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  313. package/dist-esm/lib/styles.mjs.map +2 -2
  314. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +26 -1
  315. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  316. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +13 -0
  317. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  318. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.mjs +7 -1
  319. package/dist-esm/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.mjs.map +2 -2
  320. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +43 -22
  321. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
  322. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs +2 -15
  323. package/dist-esm/lib/tools/SelectTool/childStates/Idle.mjs.map +2 -2
  324. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs +5 -0
  325. package/dist-esm/lib/tools/SelectTool/childStates/PointingShape.mjs.map +2 -2
  326. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs +8 -0
  327. package/dist-esm/lib/tools/SelectTool/childStates/Resizing.mjs.map +2 -2
  328. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs +8 -0
  329. package/dist-esm/lib/tools/SelectTool/childStates/Rotating.mjs.map +2 -2
  330. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs +8 -0
  331. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
  332. package/dist-esm/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.mjs.map +2 -2
  333. package/dist-esm/lib/ui/TldrawUi.mjs +29 -14
  334. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  335. package/dist-esm/lib/ui/components/A11y.mjs +16 -14
  336. package/dist-esm/lib/ui/components/A11y.mjs.map +2 -2
  337. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs +19 -0
  338. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs.map +7 -0
  339. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +12 -3
  340. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  341. package/dist-esm/lib/ui/components/{FollowingIndicator.mjs → DefaultFollowingIndicator.mjs} +3 -3
  342. package/dist-esm/lib/ui/components/DefaultFollowingIndicator.mjs.map +7 -0
  343. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +3 -2
  344. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
  345. package/dist-esm/lib/ui/components/EditLinkDialog.mjs +11 -1
  346. package/dist-esm/lib/ui/components/EditLinkDialog.mjs.map +2 -2
  347. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +57 -7
  348. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +2 -2
  349. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +3 -3
  350. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  351. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  352. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  353. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +6 -3
  354. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  355. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +4 -5
  356. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
  357. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +4 -3
  358. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  359. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +3 -2
  360. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
  361. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
  362. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
  363. package/dist-esm/lib/ui/components/Spinner.mjs +3 -26
  364. package/dist-esm/lib/ui/components/Spinner.mjs.map +2 -2
  365. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +16 -5
  366. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  367. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +251 -282
  368. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  369. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +126 -0
  370. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +7 -0
  371. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs +48 -0
  372. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs.map +7 -0
  373. package/dist-esm/lib/ui/components/StylePanel/{DoubleDropdownPicker.mjs → StylePanelDoubleDropdownPicker.mjs} +23 -22
  374. package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs.map +7 -0
  375. package/dist-esm/lib/ui/components/StylePanel/{DropdownPicker.mjs → StylePanelDropdownPicker.mjs} +44 -40
  376. package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs.map +7 -0
  377. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs +8 -0
  378. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs.map +7 -0
  379. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs +3 -2
  380. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
  381. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbar.mjs +23 -9
  382. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbar.mjs.map +3 -3
  383. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +39 -10
  384. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  385. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -21
  386. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  387. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs +15 -3
  388. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs.map +2 -2
  389. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs +3 -3
  390. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs.map +2 -2
  391. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -81
  392. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  393. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +5 -4
  394. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  395. package/dist-esm/lib/ui/components/menu-items.mjs +22 -0
  396. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  397. package/dist-esm/lib/ui/components/primitives/Button/TldrawUiButtonIcon.mjs.map +2 -2
  398. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +12 -3
  399. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  400. package/dist-esm/lib/ui/components/primitives/TldrawUiDialog.mjs +1 -1
  401. package/dist-esm/lib/ui/components/primitives/TldrawUiDialog.mjs.map +2 -2
  402. package/dist-esm/lib/ui/components/primitives/TldrawUiIcon.mjs +36 -2
  403. package/dist-esm/lib/ui/components/primitives/TldrawUiIcon.mjs.map +2 -2
  404. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs +3 -3
  405. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs.map +2 -2
  406. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +3 -2
  407. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
  408. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +23 -6
  409. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  410. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +33 -7
  411. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  412. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +272 -0
  413. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +7 -0
  414. package/dist-esm/lib/ui/components/primitives/layout.mjs +46 -0
  415. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +7 -0
  416. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs.map +2 -2
  417. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  418. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
  419. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  420. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +162 -24
  421. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  422. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs +3 -2
  423. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs.map +2 -2
  424. package/dist-esm/lib/ui/context/actions.mjs +79 -17
  425. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  426. package/dist-esm/lib/ui/context/components.mjs +2 -0
  427. package/dist-esm/lib/ui/context/components.mjs.map +2 -2
  428. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  429. package/dist-esm/lib/ui/hooks/menu-hooks.mjs.map +2 -2
  430. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +2 -2
  431. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
  432. package/dist-esm/lib/ui/hooks/useExportAs.mjs +3 -2
  433. package/dist-esm/lib/ui/hooks/useExportAs.mjs.map +2 -2
  434. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +2 -2
  435. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +2 -2
  436. package/dist-esm/lib/ui/hooks/useTools.mjs +102 -10
  437. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  438. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +13 -0
  439. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  440. package/dist-esm/lib/ui/kbd-utils.mjs +11 -4
  441. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  442. package/dist-esm/lib/ui/version.mjs +3 -3
  443. package/dist-esm/lib/ui/version.mjs.map +1 -1
  444. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs +1 -1
  445. package/dist-esm/lib/utils/excalidraw/putExcalidrawContent.mjs.map +2 -2
  446. package/dist-esm/lib/utils/export/copyAs.mjs +1 -2
  447. package/dist-esm/lib/utils/export/copyAs.mjs.map +2 -2
  448. package/dist-esm/lib/utils/export/export.mjs +0 -20
  449. package/dist-esm/lib/utils/export/export.mjs.map +2 -2
  450. package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
  451. package/dist-esm/lib/utils/export/exportAs.mjs.map +2 -2
  452. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs +3 -2
  453. package/dist-esm/lib/utils/tldr/buildFromV1Document.mjs.map +2 -2
  454. package/package.json +12 -34
  455. package/src/index.ts +80 -24
  456. package/src/lib/Tldraw.tsx +15 -2
  457. package/src/lib/TldrawImage.tsx +6 -2
  458. package/src/lib/canvas/TldrawCropHandles.tsx +3 -1
  459. package/src/lib/canvas/TldrawHandles.tsx +5 -1
  460. package/src/lib/canvas/TldrawOverlays.tsx +1 -1
  461. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  462. package/src/lib/canvas/TldrawSelectionForeground.tsx +5 -1
  463. package/src/lib/defaultExternalContentHandlers.ts +14 -5
  464. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +2 -1
  465. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +6 -5
  466. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +53 -11
  467. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +30 -46
  468. package/src/lib/shapes/arrow/arrowLabel.ts +31 -3
  469. package/src/lib/shapes/arrow/arrowTargetState.ts +3 -2
  470. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  471. package/src/lib/shapes/arrow/elbow/elbowArrowSnapLines.tsx +2 -2
  472. package/src/lib/shapes/arrow/toolStates/Pointing.tsx +3 -0
  473. package/src/lib/shapes/bookmark/BookmarkShapeUtil.tsx +5 -5
  474. package/src/lib/shapes/draw/DrawShapeTool.test.ts +0 -5
  475. package/src/lib/shapes/draw/DrawShapeUtil.tsx +4 -7
  476. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  477. package/src/lib/shapes/frame/FrameShapeTool.ts +1 -1
  478. package/src/lib/shapes/frame/FrameShapeUtil.tsx +35 -21
  479. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  480. package/src/lib/shapes/frame/components/FrameLabelInput.tsx +3 -3
  481. package/src/lib/shapes/geo/GeoShapeUtil.tsx +4 -2
  482. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  483. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +7 -4
  484. package/src/lib/shapes/image/ImageShapeUtil.tsx +6 -3
  485. package/src/lib/shapes/line/LineShapeUtil.test.tsx +8 -7
  486. package/src/lib/shapes/line/LineShapeUtil.tsx +25 -6
  487. package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
  488. package/src/lib/shapes/note/NoteShapeTool.test.ts +2 -1
  489. package/src/lib/shapes/note/NoteShapeUtil.tsx +11 -4
  490. package/src/lib/shapes/shared/HyperlinkButton.tsx +5 -5
  491. package/src/lib/shapes/shared/PathBuilder.test.tsx +1 -1
  492. package/src/lib/shapes/shared/PathBuilder.tsx +35 -1
  493. package/src/lib/shapes/shared/PlainTextLabel.tsx +3 -7
  494. package/src/lib/shapes/shared/RichTextLabel.tsx +6 -1
  495. package/src/lib/shapes/shared/ShapeFill.tsx +5 -4
  496. package/src/lib/shapes/shared/SvgTextLabel.tsx +4 -2
  497. package/src/lib/shapes/shared/crop.ts +1 -0
  498. package/src/lib/shapes/shared/freehand/svg.ts +2 -0
  499. package/src/lib/shapes/shared/useEditablePlainText.ts +12 -12
  500. package/src/lib/shapes/shared/useEditableRichText.ts +7 -3
  501. package/src/lib/shapes/shared/useImageOrVideoAsset.ts +0 -7
  502. package/src/lib/shapes/shared/usePrefersReducedMotion.tsx +11 -1
  503. package/src/lib/shapes/text/PlainTextArea.tsx +3 -3
  504. package/src/lib/shapes/text/RichTextArea.tsx +3 -4
  505. package/src/lib/shapes/text/TextShapeTool.test.ts +6 -5
  506. package/src/lib/shapes/text/TextShapeUtil.tsx +8 -14
  507. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  508. package/src/lib/styles.tsx +3 -1
  509. package/src/lib/tools/EraserTool/childStates/Erasing.ts +34 -1
  510. package/src/lib/tools/EraserTool/childStates/Pointing.ts +20 -0
  511. package/src/lib/tools/SelectTool/childStates/Crop/children/PointingCrop.ts +8 -1
  512. package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +54 -30
  513. package/src/lib/tools/SelectTool/childStates/Idle.ts +2 -24
  514. package/src/lib/tools/SelectTool/childStates/PointingShape.ts +7 -0
  515. package/src/lib/tools/SelectTool/childStates/Resizing.ts +12 -1
  516. package/src/lib/tools/SelectTool/childStates/Rotating.ts +11 -0
  517. package/src/lib/tools/SelectTool/childStates/Translating.ts +11 -1
  518. package/src/lib/tools/selection-logic/getHitShapeOnCanvasPointerDown.ts +1 -0
  519. package/src/lib/ui/TldrawUi.tsx +33 -12
  520. package/src/lib/ui/components/A11y.tsx +17 -15
  521. package/src/lib/ui/components/AccessibilityMenu.tsx +20 -0
  522. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +15 -3
  523. package/src/lib/ui/components/{FollowingIndicator.tsx → DefaultFollowingIndicator.tsx} +2 -1
  524. package/src/lib/ui/components/DefaultMenuPanel.tsx +4 -3
  525. package/src/lib/ui/components/EditLinkDialog.tsx +16 -6
  526. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +46 -6
  527. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +4 -2
  528. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  529. package/src/lib/ui/components/MobileStylePanel.tsx +9 -6
  530. package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +4 -5
  531. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +5 -4
  532. package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +4 -3
  533. package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
  534. package/src/lib/ui/components/Spinner.tsx +2 -24
  535. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +28 -12
  536. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +261 -342
  537. package/src/lib/ui/components/{primitives/TldrawUiButtonPicker.tsx → StylePanel/StylePanelButtonPicker.tsx} +66 -48
  538. package/src/lib/ui/components/StylePanel/StylePanelContext.tsx +63 -0
  539. package/src/lib/ui/components/StylePanel/{DoubleDropdownPicker.tsx → StylePanelDoubleDropdownPicker.tsx} +31 -22
  540. package/src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx +119 -0
  541. package/src/lib/ui/components/StylePanel/StylePanelSubheading.tsx +9 -0
  542. package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +5 -4
  543. package/src/lib/ui/components/Toolbar/DefaultImageToolbar.tsx +25 -9
  544. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +33 -16
  545. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -23
  546. package/src/lib/ui/components/Toolbar/DefaultVideoToolbarContent.tsx +12 -4
  547. package/src/lib/ui/components/Toolbar/LinkEditor.tsx +5 -5
  548. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +212 -61
  549. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +17 -12
  550. package/src/lib/ui/components/menu-items.tsx +25 -0
  551. package/src/lib/ui/components/primitives/Button/TldrawUiButtonIcon.tsx +2 -2
  552. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +8 -3
  553. package/src/lib/ui/components/primitives/TldrawUiDialog.tsx +1 -1
  554. package/src/lib/ui/components/primitives/TldrawUiIcon.tsx +41 -3
  555. package/src/lib/ui/components/primitives/TldrawUiInput.tsx +3 -3
  556. package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +4 -2
  557. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +54 -29
  558. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +59 -12
  559. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +365 -0
  560. package/src/lib/ui/components/primitives/layout.tsx +107 -0
  561. package/src/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.tsx +2 -2
  562. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
  563. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
  564. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +224 -23
  565. package/src/lib/ui/context/TldrawUiContextProvider.tsx +23 -20
  566. package/src/lib/ui/context/actions.tsx +81 -18
  567. package/src/lib/ui/context/components.tsx +3 -0
  568. package/src/lib/ui/context/events.tsx +7 -3
  569. package/src/lib/ui/hooks/menu-hooks.ts +1 -0
  570. package/src/lib/ui/hooks/useClipboardEvents.ts +2 -2
  571. package/src/lib/ui/hooks/useExportAs.ts +3 -2
  572. package/src/lib/ui/hooks/useKeyboardShortcuts.ts +3 -2
  573. package/src/lib/ui/hooks/useTools.tsx +142 -11
  574. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +13 -0
  575. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +13 -0
  576. package/src/lib/ui/kbd-utils.ts +12 -4
  577. package/src/lib/ui/version.ts +3 -3
  578. package/src/lib/ui.css +432 -315
  579. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +21 -7
  580. package/src/lib/utils/excalidraw/putExcalidrawContent.ts +7 -7
  581. package/src/lib/utils/export/copyAs.ts +1 -24
  582. package/src/lib/utils/export/export.ts +0 -36
  583. package/src/lib/utils/export/exportAs.ts +1 -32
  584. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +28 -7
  585. package/src/lib/utils/tldr/buildFromV1Document.ts +2 -1
  586. package/src/test/A11y.test.tsx +3 -2
  587. package/src/test/ClickManager.test.ts +7 -6
  588. package/src/test/Editor.test.tsx +56 -28
  589. package/src/test/EraserTool.test.ts +184 -13
  590. package/src/test/HandTool.test.ts +10 -9
  591. package/src/test/HighlightShape.test.ts +2 -1
  592. package/src/test/SelectTool.test.ts +40 -13
  593. package/src/test/TLUserPreferences.test.ts +4 -3
  594. package/src/test/TestEditor.ts +13 -15
  595. package/src/test/TldrawEditor.test.tsx +26 -19
  596. package/src/test/ZoomTool.test.ts +7 -6
  597. package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
  598. package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
  599. package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
  600. package/src/test/arrows-megabus.test.tsx +17 -10
  601. package/src/test/bindings.test.tsx +24 -37
  602. package/src/test/bookmark-shapes.test.ts +1 -8
  603. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +23 -7
  604. package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
  605. package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
  606. package/src/test/commands/alignShapes.test.tsx +25 -24
  607. package/src/test/commands/animationSpeed.test.ts +2 -1
  608. package/src/test/commands/centerOnPoint.test.ts +3 -2
  609. package/src/test/commands/clipboard.test.ts +3 -2
  610. package/src/test/commands/createShapes.test.ts +2 -1
  611. package/src/test/commands/deletePage.test.ts +84 -1
  612. package/src/test/commands/deleteShapes.test.ts +2 -1
  613. package/src/test/commands/distributeShapes.test.tsx +11 -10
  614. package/src/test/commands/getSvgString.test.ts +2 -1
  615. package/src/test/commands/packShapes.test.ts +5 -4
  616. package/src/test/commands/putContent.test.ts +1 -0
  617. package/src/test/commands/resizeShape.test.ts +2 -1
  618. package/src/test/commands/rotateShapes.test.ts +7 -6
  619. package/src/test/commands/setCamera.test.ts +4 -3
  620. package/src/test/commands/setCurrentPage.test.ts +3 -2
  621. package/src/test/commands/stackShapes.test.ts +11 -10
  622. package/src/test/commands/stretch.test.tsx +13 -12
  623. package/src/test/commands/updateShapes.test.ts +9 -5
  624. package/src/test/createDeepLink.test.tsx +2 -1
  625. package/src/test/cropping.test.ts +3 -2
  626. package/src/test/custom-clipping.test.ts +442 -0
  627. package/src/test/customSnapping.test.tsx +55 -41
  628. package/src/test/drawing.test.ts +2 -1
  629. package/src/test/flipShapes.test.ts +4 -3
  630. package/src/test/frames.test.ts +25 -24
  631. package/src/test/getCulledShapes.test.tsx +80 -4
  632. package/src/test/groups.test.tsx +6 -4
  633. package/src/test/handleDeepLink.test.tsx +2 -1
  634. package/src/test/inner-outer-margin.test.ts +315 -0
  635. package/src/test/maxShapes.test.ts +3 -2
  636. package/src/test/modifiers.test.ts +5 -4
  637. package/src/test/navigation.test.ts +264 -9
  638. package/src/test/panning.test.ts +2 -1
  639. package/src/test/perf/perf.test.ts +2 -1
  640. package/src/test/registerDeepLinkListener.test.tsx +10 -9
  641. package/src/test/resizing.test.ts +39 -38
  642. package/src/test/select.test.tsx +4 -3
  643. package/src/test/selection-omnibus.test.ts +11 -10
  644. package/src/test/shapeutils.test.ts +398 -48
  645. package/src/test/translating.test.ts +12 -11
  646. package/tldraw.css +759 -630
  647. package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +0 -7
  648. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +0 -7
  649. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +0 -7
  650. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +0 -7
  651. package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +0 -7
  652. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +0 -7
  653. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +0 -7
  654. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +0 -113
  655. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +0 -7
  656. package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +0 -109
package/src/lib/ui.css CHANGED
@@ -1,15 +1,15 @@
1
1
  /* @tldraw/ui */
2
2
 
3
3
  .tl-container {
4
- --layer-above: 1;
5
- --layer-focused-input: 10;
6
- --layer-menu-click-capture: 250;
7
- --layer-panels: 300;
8
- --layer-menus: 400;
9
- --layer-toasts: 650;
10
- --layer-cursor: 700;
11
- --layer-header-footer: 999;
12
- --layer-following-indicator: 1000;
4
+ --tl-layer-above: 1;
5
+ --tl-layer-focused-input: 10;
6
+ --tl-layer-menu-click-capture: 250;
7
+ --tl-layer-panels: 300;
8
+ --tl-layer-menus: 400;
9
+ --tl-layer-toasts: 650;
10
+ --tl-layer-cursor: 700;
11
+ --tl-layer-header-footer: 999;
12
+ --tl-layer-following-indicator: 1000;
13
13
  }
14
14
 
15
15
  /* Button */
@@ -33,23 +33,23 @@
33
33
  text-rendering: optimizeLegibility;
34
34
  font-size: 12px;
35
35
  gap: 0px;
36
- color: var(--color-text-1);
36
+ color: var(--tl-color-text-1);
37
37
  z-index: 0;
38
38
  }
39
39
 
40
40
  .tlui-button:disabled {
41
- color: var(--color-text-3);
41
+ color: var(--tl-color-text-3);
42
42
  text-shadow: none;
43
43
  cursor: default;
44
44
  }
45
45
 
46
46
  .tlui-button:disabled .tlui-kbd {
47
- color: var(--color-text-3);
47
+ color: var(--tl-color-text-3);
48
48
  }
49
49
 
50
50
  .tlui-button > * {
51
51
  position: relative;
52
- z-index: var(--layer-above);
52
+ z-index: var(--tl-layer-above);
53
53
  }
54
54
 
55
55
  .tlui-button__label {
@@ -65,7 +65,7 @@
65
65
  */
66
66
  .tl-container__focused:not(.tl-container__no-focus-ring) .tlui-button:focus-visible {
67
67
  border-radius: 10px;
68
- outline: 2px solid var(--color-focus);
68
+ outline: 2px solid var(--tl-color-focus);
69
69
  outline-offset: -5px;
70
70
  }
71
71
  .tl-container__focused:not(.tl-container__no-focus-ring) .tlui-button__tool:focus-visible {
@@ -73,7 +73,7 @@
73
73
  }
74
74
  .tlui-slider__container:has(.tlui-slider__thumb:focus-visible) {
75
75
  border-radius: 10px;
76
- outline: 2px solid var(--color-focus);
76
+ outline: 2px solid var(--tl-color-focus);
77
77
  outline-offset: -5px;
78
78
  }
79
79
 
@@ -82,8 +82,8 @@
82
82
  content: '';
83
83
  position: absolute;
84
84
  inset: 4px;
85
- border-radius: var(--radius-2);
86
- background: var(--color-muted-2);
85
+ border-radius: var(--tl-radius-2);
86
+ background: var(--tl-color-muted-2);
87
87
  opacity: 0;
88
88
  }
89
89
 
@@ -93,18 +93,18 @@
93
93
 
94
94
  .tlui-button[data-isactive='true']::after,
95
95
  .tlui-button[data-isactive='true']:not(:disabled, :focus-visible):active:after {
96
- background: var(--color-hint);
96
+ background: var(--tl-color-hint);
97
97
  opacity: 1;
98
98
  }
99
99
 
100
- .tlui-button[aria-expanded='true'][data-direction='left']::after {
101
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
100
+ .tlui-button[aria-expanded='true'][data-direction='left'] {
101
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
102
102
  opacity: 1;
103
103
  }
104
104
 
105
105
  @media (hover: hover) {
106
106
  .tlui-button[aria-expanded='true'][data-direction='left']:not(:hover)::after {
107
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
107
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
108
108
  opacity: 1;
109
109
  }
110
110
 
@@ -118,18 +118,18 @@
118
118
  }
119
119
 
120
120
  .tlui-button__icon + .tlui-button__label {
121
- margin-left: var(--space-2);
121
+ margin-left: var(--tl-space-2);
122
122
  }
123
123
 
124
124
  /* Low button */
125
125
 
126
126
  .tlui-button__low {
127
- border-radius: var(--radius-3);
128
- background-color: var(--color-low);
127
+ border-radius: var(--tl-radius-3);
128
+ background-color: var(--tl-color-low);
129
129
  }
130
130
 
131
131
  .tlui-button__low::after {
132
- background-color: var(--color-muted-2);
132
+ background-color: var(--tl-color-muted-2);
133
133
  opacity: 0;
134
134
  }
135
135
 
@@ -142,31 +142,25 @@
142
142
  /* Primary / danger buttons */
143
143
 
144
144
  .tlui-button__primary {
145
- color: var(--color-primary);
145
+ color: var(--tl-color-primary);
146
146
  }
147
147
 
148
148
  .tlui-button__danger {
149
- color: var(--color-danger);
149
+ color: var(--tl-color-danger);
150
150
  text-shadow: none;
151
151
  }
152
152
 
153
153
  @media (hover: hover) {
154
154
  .tlui-button__primary:not(:disabled, :focus-visible):hover {
155
- color: var(--color-primary);
155
+ color: var(--tl-color-primary);
156
156
  }
157
157
 
158
158
  .tlui-button__danger:not(:disabled, :focus-visible):hover {
159
- color: var(--color-danger);
159
+ color: var(--tl-color-danger);
160
160
  text-shadow: none;
161
161
  }
162
162
  }
163
163
 
164
- /* Panel button */
165
-
166
- .tlui-button__panel {
167
- position: relative;
168
- }
169
-
170
164
  /* Menu button */
171
165
 
172
166
  .tlui-button__menu {
@@ -179,7 +173,7 @@
179
173
 
180
174
  .tlui-button__menu::after {
181
175
  inset: 4px;
182
- border-radius: var(--radius-2);
176
+ border-radius: var(--tl-radius-2);
183
177
  }
184
178
 
185
179
  .tlui-button__menu > .tlui-icon + .tlui-button__label {
@@ -207,18 +201,26 @@
207
201
 
208
202
  /* Tool lock button */
209
203
 
210
- .tlui-toolbar__lock-button {
204
+ .tlui-main-toolbar__lock-button {
211
205
  position: absolute;
212
- top: 4px;
213
- right: 0px;
214
206
  pointer-events: all;
215
207
  height: 40px;
216
208
  width: 40px;
209
+ border-radius: var(--tl-radius-2);
210
+ }
211
+
212
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__lock-button {
213
+ top: 4px;
214
+ right: 0px;
217
215
  min-width: 0px;
218
- border-radius: var(--radius-2);
219
216
  }
220
217
 
221
- .tlui-toolbar__lock-button::after {
218
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__lock-button {
219
+ bottom: 0px;
220
+ min-height: 0px;
221
+ }
222
+
223
+ .tlui-main-toolbar__lock-button::after {
222
224
  top: 4px;
223
225
  left: 8px;
224
226
  inset: 4px;
@@ -230,16 +232,6 @@
230
232
  position: relative;
231
233
  height: 48px;
232
234
  width: 48px;
233
- margin-left: -2px;
234
- margin-right: -2px;
235
- }
236
-
237
- .tlui-button__tool:nth-of-type(1) {
238
- margin-left: 0px;
239
- }
240
-
241
- .tlui-button__tool:nth-last-of-type(1) {
242
- margin-right: 0px;
243
235
  }
244
236
 
245
237
  .tlui-button__tool::after {
@@ -248,69 +240,64 @@
248
240
  }
249
241
 
250
242
  .tlui-button__tool[aria-pressed='true'] {
251
- color: var(--color-selected-contrast);
243
+ color: var(--tl-color-selected-contrast);
252
244
  }
253
245
 
254
246
  .tlui-button__tool[aria-pressed='true']:not(:disabled, :focus-visible):active {
255
- color: var(--color-selected-contrast);
247
+ color: var(--tl-color-selected-contrast);
256
248
  }
257
249
 
258
250
  .tlui-button__tool[aria-pressed='true']:not(:disabled)::after {
259
- background: var(--color-selected);
251
+ background: var(--tl-color-selected);
260
252
  opacity: 1;
261
253
  }
262
254
 
263
- .tlui-layout__mobile .tlui-button__tool {
255
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool {
264
256
  height: 48px;
265
257
  width: 43px;
266
258
  }
267
259
 
268
- .tlui-layout__mobile .tlui-button__tool > .tlui-icon {
260
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool > .tlui-icon {
269
261
  height: 16px;
270
262
  width: 16px;
271
263
  }
272
264
 
273
- /* Button Row */
265
+ /* Row layout */
274
266
 
275
- .tlui-buttons__horizontal {
267
+ .tlui-row {
276
268
  display: flex;
277
269
  flex-direction: row;
270
+ padding: 0 2px;
278
271
  }
279
- .tlui-buttons__horizontal > * {
272
+ .tlui-row > * {
280
273
  margin-left: -2px;
281
274
  margin-right: -2px;
282
275
  }
283
- .tlui-buttons__horizontal > *:nth-child(1) {
284
- margin-left: 0px;
276
+
277
+ /* Column layout */
278
+
279
+ .tlui-column {
280
+ display: flex;
281
+ flex-direction: column;
282
+ padding: 2px 0;
285
283
  }
286
- .tlui-buttons__horizontal > *:nth-last-child(1) {
287
- margin-right: 0px;
284
+ .tlui-column > * {
285
+ margin-top: -2px;
286
+ margin-bottom: -2px;
288
287
  }
289
288
 
290
- /* Button Grid */
289
+ /* Grid layout */
291
290
 
292
- .tlui-buttons__grid {
291
+ .tlui-grid {
293
292
  display: grid;
294
- grid-template-columns: repeat(4, auto);
293
+ grid-template-columns: repeat(4, 1fr);
295
294
  grid-auto-flow: row;
296
295
  overflow: hidden;
296
+ padding: 2px;
297
297
  }
298
- .tlui-buttons__grid > .tlui-button {
298
+ .tlui-grid > * {
299
299
  margin: -2px;
300
300
  }
301
- .tlui-buttons__grid > .tlui-button:nth-of-type(4n),
302
- .tlui-buttons__vertical-align > .tlui-button:nth-of-type(3n) {
303
- margin-right: 0px;
304
- }
305
- .tlui-buttons__grid > .tlui-button:nth-of-type(4n - 3) {
306
- margin-left: 0px;
307
- }
308
- .tlui-buttons__grid > .tlui-button:nth-of-type(-n + 4) {
309
- margin-top: 0px;
310
- }
311
- .tlui-buttons__grid > .tlui-button:nth-last-of-type(-n + 4) {
312
- margin-bottom: 0px;
313
- }
314
301
 
315
302
  /* Zoom button */
316
303
 
@@ -334,9 +321,9 @@
334
321
  pointer-events: none;
335
322
  user-select: none;
336
323
  contain: strict;
337
- z-index: var(--layer-panels);
324
+ z-index: var(--tl-layer-panels);
338
325
  transform: translate3d(0, 0, 0);
339
- --sab: env(safe-area-inset-bottom);
326
+ --tl-sab: env(safe-area-inset-bottom);
340
327
  font-weight: 500;
341
328
  line-height: 1.6;
342
329
  -webkit-font-smoothing: antialiased;
@@ -389,11 +376,11 @@
389
376
  justify-content: flex-start;
390
377
  align-items: flex-start;
391
378
  width: min-content;
392
- gap: var(--space-3);
393
- margin: var(--space-2) var(--space-3);
379
+ gap: var(--tl-space-3);
380
+ margin: var(--tl-space-2) var(--tl-space-3);
394
381
  white-space: nowrap;
395
382
  pointer-events: none;
396
- z-index: var(--layer-panels);
383
+ z-index: var(--tl-layer-panels);
397
384
  }
398
385
 
399
386
  /* ---------------------- Icon ---------------------- */
@@ -421,7 +408,7 @@
421
408
 
422
409
  .tlui-slider__container {
423
410
  width: 100%;
424
- padding: 0px var(--space-4);
411
+ padding: 0px var(--tl-space-4);
425
412
  }
426
413
 
427
414
  .tlui-slider {
@@ -447,7 +434,7 @@
447
434
  content: '';
448
435
  height: 3px;
449
436
  width: 100%;
450
- background-color: var(--color-muted-1);
437
+ background-color: var(--tl-color-muted-1);
451
438
  border-radius: 14px;
452
439
  }
453
440
 
@@ -456,7 +443,7 @@
456
443
  top: calc(50% - 2px);
457
444
  left: 0px;
458
445
  height: 3px;
459
- background-color: var(--color-selected);
446
+ background-color: var(--tl-color-selected);
460
447
  border-radius: 14px;
461
448
  }
462
449
 
@@ -468,16 +455,16 @@
468
455
  height: 18px;
469
456
  position: relative;
470
457
  top: -1px;
471
- background-color: var(--color-panel);
458
+ background-color: var(--tl-color-panel);
472
459
  border-radius: 999px;
473
- box-shadow: inset 0px 0px 0px 2px var(--color-text-1);
460
+ box-shadow: inset 0px 0px 0px 2px var(--tl-color-text-1);
474
461
  }
475
462
 
476
463
  .tlui-slider__thumb:active {
477
464
  cursor: grabbing;
478
465
  box-shadow:
479
- inset 0px 0px 0px 2px var(--color-text-1),
480
- var(--shadow-1);
466
+ inset 0px 0px 0px 2px var(--tl-color-text-1),
467
+ var(--tl-shadow-1);
481
468
  }
482
469
 
483
470
  /* ---------------------- Input --------------------- */
@@ -486,7 +473,7 @@
486
473
  background: none;
487
474
  margin: 0px;
488
475
  position: relative;
489
- z-index: var(--layer-above);
476
+ z-index: var(--tl-layer-above);
490
477
  height: 40px;
491
478
  max-height: 40px;
492
479
  display: flex;
@@ -495,8 +482,8 @@
495
482
  font-family: inherit;
496
483
  font-size: 12px;
497
484
  font-weight: inherit;
498
- color: var(--color-text-1);
499
- padding: var(--space-4);
485
+ color: var(--tl-color-text-1);
486
+ padding: var(--tl-space-4);
500
487
  padding-left: 0px;
501
488
  border: none;
502
489
  outline: none;
@@ -512,8 +499,8 @@
512
499
  height: 44px;
513
500
  display: flex;
514
501
  align-items: center;
515
- gap: var(--space-4);
516
- color: var(--color-text);
502
+ gap: var(--tl-space-4);
503
+ color: var(--tl-color-text);
517
504
  }
518
505
 
519
506
  .tlui-input__wrapper > .tlui-icon {
@@ -545,7 +532,7 @@
545
532
  grid-auto-columns: minmax(1em, auto);
546
533
  align-self: bottom;
547
534
  color: currentColor;
548
- margin-left: var(--space-4);
535
+ margin-left: var(--tl-space-4);
549
536
  }
550
537
 
551
538
  .tlui-kbd > span {
@@ -562,13 +549,13 @@
562
549
  }
563
550
 
564
551
  .tlui-kbd:not(:last-child) {
565
- margin-right: var(--space-2);
552
+ margin-right: var(--tl-space-2);
566
553
  }
567
554
 
568
555
  /* Focus Mode Button */
569
556
 
570
557
  .tlui-focus-button {
571
- z-index: var(--layer-panels);
558
+ z-index: var(--tl-layer-panels);
572
559
  pointer-events: all;
573
560
  }
574
561
 
@@ -579,16 +566,16 @@
579
566
  }
580
567
 
581
568
  .tlui-menu {
582
- z-index: var(--layer-menus);
569
+ z-index: var(--tl-layer-menus);
583
570
  height: fit-content;
584
571
  width: fit-content;
585
- border-radius: var(--radius-3);
572
+ border-radius: var(--tl-radius-3);
586
573
  pointer-events: all;
587
574
  touch-action: auto;
588
575
  overflow-y: auto;
589
576
  overscroll-behavior: none;
590
- background-color: var(--color-panel);
591
- box-shadow: var(--shadow-3);
577
+ background-color: var(--tl-color-panel);
578
+ box-shadow: var(--tl-shadow-3);
592
579
  }
593
580
 
594
581
  .tlui-menu::-webkit-scrollbar {
@@ -606,7 +593,7 @@
606
593
  }
607
594
 
608
595
  .tlui-menu__group {
609
- border-bottom: 1px solid var(--color-divider);
596
+ border-bottom: 1px solid var(--tl-color-divider);
610
597
  }
611
598
  .tlui-menu__group:nth-last-of-type(1) {
612
599
  border-bottom: none;
@@ -616,23 +603,23 @@
616
603
 
617
604
  .tlui-menu__submenu__trigger[data-state='open']::after {
618
605
  opacity: 1;
619
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
606
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
620
607
  }
621
608
 
622
609
  .tlui-menu__submenu__trigger[data-direction='left'][data-state='open']::after {
623
610
  opacity: 1;
624
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
611
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
625
612
  }
626
613
 
627
614
  @media (hover: hover) {
628
615
  .tlui-menu__submenu__trigger[data-state='open']:not(:hover)::after {
629
616
  opacity: 1;
630
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
617
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
631
618
  }
632
619
 
633
620
  .tlui-menu__submenu__trigger[data-direction='left'][data-state='open']:not(:hover)::after {
634
621
  opacity: 1;
635
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
622
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
636
623
  }
637
624
  }
638
625
 
@@ -657,7 +644,7 @@
657
644
  .tlui-menu-click-capture {
658
645
  position: fixed;
659
646
  inset: 0;
660
- z-index: var(--layer-menu-click-capture);
647
+ z-index: var(--tl-layer-menu-click-capture);
661
648
  }
662
649
 
663
650
  /* --------------------- Popover -------------------- */
@@ -673,10 +660,10 @@
673
660
  max-height: calc(var(--radix-popover-content-available-height) - 8px);
674
661
  margin: 0px;
675
662
  border: none;
676
- border-radius: var(--radius-3);
677
- background-color: var(--color-panel);
678
- box-shadow: var(--shadow-3);
679
- z-index: var(--layer-menus);
663
+ border-radius: var(--tl-radius-3);
664
+ background-color: var(--tl-color-panel);
665
+ box-shadow: var(--tl-shadow-3);
666
+ z-index: var(--tl-layer-menus);
680
667
  overflow: hidden;
681
668
  overflow-y: auto;
682
669
  touch-action: auto;
@@ -689,22 +676,22 @@
689
676
 
690
677
  .tlui-menu-zone {
691
678
  position: relative;
692
- z-index: var(--layer-panels);
679
+ z-index: var(--tl-layer-panels);
693
680
  width: fit-content;
694
- border-right: 2px solid var(--color-background);
695
- border-bottom: 2px solid var(--color-background);
696
- border-bottom-right-radius: var(--radius-4);
697
- background-color: var(--color-low);
681
+ border-right: 2px solid var(--tl-color-background);
682
+ border-bottom: 2px solid var(--tl-color-background);
683
+ border-bottom-right-radius: var(--tl-radius-4);
684
+ background-color: var(--tl-color-low);
698
685
  }
699
686
 
700
687
  .tlui-menu-zone *[data-state='open']::after {
701
- background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
688
+ background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
702
689
  opacity: 1;
703
690
  }
704
691
 
705
692
  @media (hover: hover) {
706
693
  .tlui-menu-zone *[data-state='open']:not(:hover)::after {
707
- background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
694
+ background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
708
695
  opacity: 1;
709
696
  }
710
697
  }
@@ -730,8 +717,8 @@
730
717
  align-items: center;
731
718
  width: 100%;
732
719
  height: 40px;
733
- padding-left: var(--space-4);
734
- border-bottom: 1px solid var(--color-divider);
720
+ padding-left: var(--tl-space-4);
721
+ border-bottom: 1px solid var(--tl-color-divider);
735
722
  }
736
723
 
737
724
  .tlui-page-menu__header > .tlui-button:nth-of-type(1) {
@@ -739,7 +726,7 @@
739
726
  }
740
727
 
741
728
  .tlui-page-menu__header__title {
742
- color: var(--color-text);
729
+ color: var(--tl-color-text);
743
730
  font-size: 12px;
744
731
  flex-grow: 2;
745
732
  }
@@ -824,7 +811,7 @@
824
811
  display: inline-flex;
825
812
  align-items: center;
826
813
  justify-content: center;
827
- color: var(--color-text);
814
+ color: var(--tl-color-text);
828
815
  }
829
816
 
830
817
  .tlui-page_menu__item__sortable {
@@ -837,7 +824,7 @@
837
824
  flex-direction: row;
838
825
  align-items: center;
839
826
  overflow: hidden;
840
- z-index: var(--layer-above);
827
+ z-index: var(--tl-layer-above);
841
828
  }
842
829
 
843
830
  .tlui-page_menu__item__sortable__title {
@@ -849,7 +836,7 @@
849
836
  }
850
837
 
851
838
  .tlui-page_menu__item__sortable:focus-visible {
852
- z-index: var(--layer-focused-input);
839
+ z-index: var(--tl-layer-focused-input);
853
840
  }
854
841
 
855
842
  .tlui-page_menu__item__sortable__handle {
@@ -858,7 +845,7 @@
858
845
  min-width: 0px;
859
846
  height: 40px;
860
847
  cursor: grab;
861
- color: var(--color-text-3);
848
+ color: var(--tl-color-text-3);
862
849
  flex-shrink: 0;
863
850
  margin-right: -9px;
864
851
  }
@@ -900,13 +887,13 @@
900
887
  }
901
888
 
902
889
  .tlui-page_menu__item__submenu > .tlui-button[data-state='open']::after {
903
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
890
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
904
891
  opacity: 1;
905
892
  }
906
893
 
907
894
  @media (hover: hover) {
908
895
  .tlui-page_menu__item__submenu > .tlui-button[data-state='open']:not(:hover)::after {
909
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
896
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
910
897
  opacity: 1;
911
898
  }
912
899
  }
@@ -942,7 +929,7 @@
942
929
  top: 48px;
943
930
  left: -9999px;
944
931
  padding: 8px 16px;
945
- z-index: var(--layer-toasts);
932
+ z-index: var(--tl-layer-toasts);
946
933
  }
947
934
 
948
935
  .tl-skip-to-main-content:focus {
@@ -954,17 +941,17 @@
954
941
  .tlui-offline-indicator {
955
942
  display: flex;
956
943
  flex-direction: row;
957
- gap: var(--space-3);
958
- color: var(--color-text);
959
- background-color: var(--color-low);
960
- border: 3px solid var(--color-background);
961
- padding: 0px var(--space-5);
944
+ gap: var(--tl-space-3);
945
+ color: var(--tl-color-text);
946
+ background-color: var(--tl-color-low);
947
+ border: 3px solid var(--tl-color-background);
948
+ padding: 0px var(--tl-space-5);
962
949
  height: 42px;
963
950
  align-items: center;
964
951
  justify-content: center;
965
952
  border-radius: 99px;
966
953
  opacity: 0;
967
- animation: fade-in;
954
+ animation: tl-fade-in;
968
955
  animation-duration: 0.12s;
969
956
  animation-delay: 2s;
970
957
  animation-fill-mode: forwards;
@@ -973,10 +960,10 @@
973
960
  /* ------------------- Style panel ------------------ */
974
961
 
975
962
  .tlui-style-panel__wrapper {
976
- box-shadow: var(--shadow-2);
977
- border-radius: var(--radius-3);
963
+ box-shadow: var(--tl-shadow-2);
964
+ border-radius: var(--tl-radius-3);
978
965
  pointer-events: all;
979
- background-color: var(--color-panel);
966
+ background-color: var(--tl-color-panel);
980
967
  height: fit-content;
981
968
  max-height: 100%;
982
969
  margin: 8px;
@@ -985,7 +972,7 @@
985
972
  overscroll-behavior: none;
986
973
  overflow-y: auto;
987
974
  overflow-x: hidden;
988
- color: var(--color-text);
975
+ color: var(--tl-color-text);
989
976
  }
990
977
  /* if the style panel is the only child (ie no share menu), increase the margin */
991
978
  .tlui-style-panel__wrapper:only-child {
@@ -994,12 +981,18 @@
994
981
 
995
982
  .tlui-style-panel {
996
983
  position: relative;
997
- z-index: var(--layer-panels);
984
+ z-index: var(--tl-layer-panels);
998
985
  pointer-events: all;
999
986
  width: 148px;
1000
987
  max-width: 148px;
1001
988
  }
1002
989
 
990
+ .tlui-style-panel[data-show-ui-labels='true'] .tlui-button[data-isactive='true'] {
991
+ border-radius: 10px;
992
+ outline: 2px solid var(--tl-color-text);
993
+ outline-offset: -5px;
994
+ }
995
+
1003
996
  .tlui-style-panel::-webkit-scrollbar {
1004
997
  display: none;
1005
998
  }
@@ -1014,8 +1007,22 @@
1014
1007
  flex-direction: column;
1015
1008
  }
1016
1009
 
1017
- .tlui-style-panel__section:nth-of-type(n + 2):not(:last-child) {
1018
- border-bottom: 1px solid var(--color-divider);
1010
+ /*
1011
+ add a border to the bottom of all but the last section. we have to handle empty sections too, which
1012
+ are hidden and shouldn't be counted
1013
+ */
1014
+ .tlui-style-panel__section:not(:nth-last-child(-n + 1 of .tlui-style-panel__section:not(:empty))) {
1015
+ border-bottom: 1px solid var(--tl-color-divider);
1016
+ }
1017
+ /*
1018
+ if a section ends with a slider and we're adding a border, we need some extra space for visual
1019
+ balance. we need to handle empty sections as above. is this the most complex css selector in all of
1020
+ tldraw? probably.
1021
+ */
1022
+ .tlui-style-panel__section:has(.tlui-slider__container:last-child):not(
1023
+ :nth-last-child(-n + 1 of .tlui-style-panel__section:not(:empty))
1024
+ ) {
1025
+ margin-bottom: 7px;
1019
1026
  }
1020
1027
 
1021
1028
  .tlui-style-panel__section:empty {
@@ -1024,23 +1031,19 @@
1024
1031
 
1025
1032
  .tlui-style-panel__section__common:not(:only-child) {
1026
1033
  margin-bottom: 7px;
1027
- border-bottom: 1px solid var(--color-divider);
1034
+ border-bottom: 1px solid var(--tl-color-divider);
1028
1035
  }
1029
1036
 
1030
- .tlui-style-panel__row {
1031
- display: flex;
1032
- }
1033
- /* Only really used for the alignment picker */
1034
- .tlui-style-panel__row__extra-button {
1035
- margin-left: -2px;
1037
+ .tlui-style-panel__dropdown-picker:only-child {
1038
+ flex: 1;
1036
1039
  }
1037
1040
 
1038
1041
  .tlui-style-panel__double-select-picker {
1039
1042
  display: flex;
1040
1043
  grid-template-columns: 1fr auto;
1041
1044
  align-items: center;
1042
- padding-left: var(--space-4);
1043
- color: var(--color-text-1);
1045
+ padding-left: var(--tl-space-4);
1046
+ color: var(--tl-color-text-1);
1044
1047
  font-size: 12px;
1045
1048
  }
1046
1049
 
@@ -1054,25 +1057,48 @@
1054
1057
 
1055
1058
  .tlui-style-panel .tlui-button[data-state='open']::after {
1056
1059
  opacity: 1;
1057
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1060
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1058
1061
  }
1059
1062
 
1060
1063
  @media (hover: hover) {
1064
+ .tlui-style-panel .tlui-button[aria-expanded='true'] {
1065
+ background: none;
1066
+ }
1061
1067
  .tlui-style-panel .tlui-button[data-state='open']:not(:hover)::after {
1062
1068
  opacity: 1;
1063
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1069
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1064
1070
  }
1065
1071
  }
1066
1072
 
1073
+ /* Accessibility subheadings */
1074
+
1075
+ .tlui-style-panel__section .tlui-style-panel__subheading,
1076
+ .tlui-style-panel__section__common .tlui-style-panel__subheading,
1077
+ .tlui-style-panel__subheading + .tlui-slider__container {
1078
+ margin: 0;
1079
+ padding: var(--tl-space-2) var(--tl-space-3) 0px var(--tl-space-4);
1080
+ font-size: 12px;
1081
+ font-weight: inherit;
1082
+ line-height: inherit;
1083
+ }
1084
+
1085
+ .tlui-style-panel .tlui-style-panel__subheading:nth-of-type(1) {
1086
+ padding-top: var(--tl-space-3);
1087
+ }
1088
+
1089
+ .tlui-style-panel__subheading + .tlui-slider__container {
1090
+ padding-top: 0px;
1091
+ }
1092
+
1067
1093
  /* --------------------- Bottom --------------------- */
1068
1094
 
1069
1095
  .tlui-layout__bottom {
1070
1096
  grid-row: 2;
1097
+ width: 100%;
1071
1098
  }
1072
1099
 
1073
1100
  .tlui-layout__bottom__main {
1074
1101
  width: 100%;
1075
- position: relative;
1076
1102
  display: flex;
1077
1103
  align-items: flex-end;
1078
1104
  justify-content: center;
@@ -1084,11 +1110,10 @@
1084
1110
  display: flex;
1085
1111
  width: min-content;
1086
1112
  flex-direction: column;
1087
- z-index: var(--layer-panels);
1113
+ z-index: var(--tl-layer-panels);
1088
1114
  pointer-events: all;
1089
1115
  position: absolute;
1090
1116
  left: 0px;
1091
- bottom: 0px;
1092
1117
  }
1093
1118
 
1094
1119
  .tlui-navigation-panel::before {
@@ -1098,30 +1123,16 @@
1098
1123
  z-index: -1;
1099
1124
  inset: -2px -2px 0px 0px;
1100
1125
  border-radius: 0;
1101
- border-top: 2px solid var(--color-background);
1102
- border-right: 2px solid var(--color-background);
1103
- border-top-right-radius: var(--radius-4);
1104
- background-color: var(--color-low);
1126
+ border-top: 2px solid var(--tl-color-background);
1127
+ border-right: 2px solid var(--tl-color-background);
1128
+ border-top-right-radius: var(--tl-radius-4);
1129
+ background-color: var(--tl-color-low);
1105
1130
  }
1106
1131
 
1107
1132
  .tlui-navigation-panel[data-a11y='true']::before {
1108
1133
  display: none;
1109
1134
  }
1110
1135
 
1111
- .tlui-navigation-panel__toggle .tlui-icon {
1112
- opacity: 0.24;
1113
- }
1114
-
1115
- .tlui-navigation-panel__toggle:active .tlui-icon {
1116
- opacity: 1;
1117
- }
1118
-
1119
- @media (hover: hover) {
1120
- .tlui-navigation-panel__toggle:hover .tlui-icon {
1121
- opacity: 1;
1122
- }
1123
- }
1124
-
1125
1136
  /* Minimap */
1126
1137
 
1127
1138
  .tlui-minimap {
@@ -1129,7 +1140,7 @@
1129
1140
  height: 96px;
1130
1141
  min-height: 96px;
1131
1142
  overflow: hidden;
1132
- padding: var(--space-3);
1143
+ padding: var(--tl-space-3);
1133
1144
  padding-top: 0px;
1134
1145
  }
1135
1146
 
@@ -1142,114 +1153,220 @@
1142
1153
  /* --------------------- Toolbar -------------------- */
1143
1154
 
1144
1155
  /* Wide container */
1145
- .tlui-toolbar {
1156
+ .tlui-main-toolbar {
1146
1157
  grid-column: 1 / span 3;
1147
1158
  grid-row: 1;
1148
1159
  display: flex;
1149
1160
  align-items: center;
1150
1161
  justify-content: center;
1151
1162
  flex-grow: 2;
1152
- padding-bottom: calc(var(--space-3) + var(--sab));
1163
+ }
1164
+
1165
+ .tlui-main-toolbar--horizontal {
1166
+ padding-bottom: calc(var(--tl-space-3) + var(--tl-sab));
1167
+ max-width: 100%;
1168
+ }
1169
+
1170
+ .tlui-main-toolbar--vertical {
1171
+ position: absolute;
1172
+ left: 0;
1173
+ top: 90px; /* height of page menu + 'back to content' button */
1174
+ bottom: 140px; /* height of expanded mini-map */
1175
+ padding-left: calc(var(--tl-space-3) + var(--tl-sab));
1176
+ }
1177
+
1178
+ [data-breakpoints-below*='6'] .tlui-main-toolbar--vertical {
1179
+ bottom: 90px; /* collapsed mini-map, but same as top to keep things looking even */
1153
1180
  }
1154
1181
 
1155
1182
  /* Centered Content */
1156
- .tlui-toolbar__inner {
1183
+ .tlui-main-toolbar__inner {
1157
1184
  position: relative;
1158
1185
  width: fit-content;
1159
1186
  display: flex;
1160
- gap: var(--space-3);
1161
- align-items: flex-end;
1187
+ gap: var(--tl-space-3);
1188
+ align-items: flex-start;
1189
+ }
1190
+
1191
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__inner {
1192
+ flex-direction: column;
1162
1193
  }
1163
1194
 
1164
- .tlui-toolbar__left {
1195
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__left {
1165
1196
  width: fit-content;
1166
1197
  }
1198
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__left {
1199
+ display: flex;
1200
+ height: fit-content;
1201
+ }
1167
1202
 
1168
1203
  /* Row of controls + lock button */
1169
- .tlui-toolbar__extras {
1204
+ .tlui-main-toolbar__extras {
1170
1205
  position: relative;
1171
- z-index: var(--layer-above);
1172
- width: 100%;
1206
+ z-index: var(--tl-layer-above);
1173
1207
  pointer-events: none;
1174
- top: 6px;
1175
- height: 48px;
1208
+ align-self: stretch;
1176
1209
  }
1177
1210
 
1178
- .tlui-toolbar__extras:empty {
1211
+ .tlui-main-toolbar__extras:empty {
1179
1212
  display: none;
1180
1213
  }
1181
1214
 
1182
- .tlui-toolbar__extras__controls {
1183
- display: flex;
1215
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras {
1216
+ height: 48px;
1217
+ top: 6px;
1218
+ }
1219
+
1220
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras {
1221
+ width: 48px;
1222
+ order: 1;
1223
+ }
1224
+
1225
+ .tlui-main-toolbar__extras__controls {
1184
1226
  position: relative;
1185
- flex-direction: row;
1186
- z-index: var(--layer-above);
1187
- background-color: var(--color-low);
1188
- border-top-left-radius: var(--radius-4);
1189
- border-top-right-radius: var(--radius-4);
1190
- border: 2px solid var(--color-background);
1227
+ z-index: var(--tl-layer-above);
1228
+ background-color: var(--tl-color-low);
1229
+ border: 2px solid var(--tl-color-background);
1230
+ pointer-events: all;
1231
+ }
1232
+
1233
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras__controls {
1234
+ border-top-left-radius: var(--tl-radius-4);
1235
+ border-top-right-radius: var(--tl-radius-4);
1191
1236
  margin-left: 8px;
1192
1237
  margin-right: 0px;
1193
- pointer-events: all;
1194
1238
  width: fit-content;
1195
1239
  }
1196
1240
 
1197
- .tlui-toolbar__tools {
1198
- display: flex;
1199
- flex-direction: row;
1200
- align-items: center;
1201
- border-radius: var(--radius-4);
1202
- z-index: var(--layer-panels);
1241
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras__controls {
1242
+ border-top-right-radius: var(--tl-radius-4);
1243
+ border-bottom-right-radius: var(--tl-radius-4);
1244
+ margin-top: 8px;
1245
+ margin-left: -2px;
1246
+ margin-bottom: 0px;
1247
+ width: fit-content;
1248
+ }
1249
+
1250
+ .tlui-main-toolbar__tools {
1251
+ border-radius: var(--tl-radius-4);
1252
+ z-index: var(--tl-layer-panels);
1203
1253
  pointer-events: all;
1204
1254
  position: relative;
1205
- background: var(--color-panel);
1206
- box-shadow: var(--shadow-2);
1255
+ background: var(--tl-color-panel);
1256
+ box-shadow: var(--tl-shadow-2);
1207
1257
  }
1208
- .tlui-toolbar__tools__list {
1209
- display: flex;
1210
- flex-direction: row;
1211
- align-items: center;
1258
+
1259
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__mobile-style-panel {
1260
+ align-self: flex-end;
1261
+ }
1262
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__mobile-style-panel {
1263
+ align-self: flex-start;
1212
1264
  }
1213
1265
 
1214
- .tlui-toolbar__overflow {
1266
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1215
1267
  width: 40px;
1268
+ margin-left: 2px;
1269
+ }
1270
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__overflow {
1271
+ height: 40px;
1272
+ margin-top: 2px;
1216
1273
  }
1217
1274
 
1218
- .tlui-layout__mobile .tlui-toolbar__overflow {
1275
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1219
1276
  width: 32px;
1220
1277
  padding: 0px;
1221
1278
  }
1222
1279
 
1223
- .tlui-toolbar *[data-state='open']::after {
1224
- background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1280
+ .tlui-main-toolbar--horizontal *[data-state='open']::after {
1281
+ background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1282
+ opacity: 1;
1283
+ }
1284
+ .tlui-main-toolbar--vertical *[data-state='open']::after {
1285
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1225
1286
  opacity: 1;
1226
1287
  }
1227
1288
 
1289
+ .tlui-main-toolbar__overflow-content {
1290
+ touch-action: none;
1291
+ }
1292
+
1293
+ .tlui-main-toolbar__tools [data-toolbar-visible='false'],
1294
+ .tlui-main-toolbar__overflow-content [data-toolbar-visible='false'] {
1295
+ display: none;
1296
+ }
1297
+
1298
+ .tlui-main-toolbar__group:empty {
1299
+ display: none;
1300
+ }
1301
+ .tlui-row.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1302
+ border-right: 1px solid var(--color-divider);
1303
+ margin-right: 2px;
1304
+ }
1305
+ .tlui-column.tlui-main-toolbar__group:not(
1306
+ :nth-last-child(-n + 1 of [data-toolbar-visible='true'])
1307
+ ) {
1308
+ border-bottom: 1px solid var(--color-divider);
1309
+ margin-bottom: 2px;
1310
+ }
1311
+ .tlui-grid.tlui-main-toolbar__group {
1312
+ grid-column: 1 / span 4;
1313
+ }
1314
+ .tlui-grid.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1315
+ border-bottom: 1px solid var(--color-divider);
1316
+ margin-bottom: 2px;
1317
+ }
1318
+
1228
1319
  @media (hover: hover) {
1229
- .tlui-toolbar *[data-state='open']:not(:hover)::after {
1230
- background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1320
+ .tlui-main-toolbar--horizontal *[data-state='open']:not(:hover)::after {
1321
+ background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1322
+ opacity: 1;
1323
+ }
1324
+ .tlui-main-toolbar--vertical *[data-state='open']:not(:hover)::after {
1325
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1231
1326
  opacity: 1;
1232
1327
  }
1233
1328
  }
1234
1329
 
1235
- .tlui-layout__mobile .tlui-toolbar {
1236
- transition: transform 0.15s ease-out 0.05s;
1330
+ /* ------------------- Tooltip -------------------- */
1331
+
1332
+ .tlui-tooltip {
1333
+ font-size: 12px;
1334
+ padding: 2px 8px;
1335
+ border-radius: 4px;
1336
+ background-color: var(--tl-color-tooltip);
1337
+ box-shadow: none;
1338
+ color: var(--tl-color-text-shadow);
1339
+ max-width: 400px;
1340
+ width: fit-content;
1341
+ text-align: center;
1342
+ will-change: transform, opacity;
1343
+ z-index: 2;
1344
+ }
1345
+
1346
+ .tlui-tooltip__arrow {
1347
+ fill: var(--tl-color-tooltip);
1348
+ will-change: opacity;
1349
+ }
1350
+
1351
+ [data-radix-popper-content-wrapper]:has(.tlui-tooltip) {
1352
+ z-index: var(--tl-layer-toasts) !important;
1353
+ pointer-events: none;
1237
1354
  }
1238
1355
 
1239
1356
  /* ------------------- Debug panel ------------------ */
1240
1357
 
1241
1358
  .tlui-debug-panel {
1242
- background-color: var(--color-low);
1359
+ background-color: var(--tl-color-low);
1243
1360
  width: 100%;
1244
1361
  display: grid;
1245
1362
  align-items: center;
1246
1363
  grid-template-columns: 1fr auto auto auto;
1247
1364
  justify-content: space-between;
1248
- padding-left: var(--space-4);
1249
- border-top: 1px solid var(--color-background);
1365
+ padding-left: var(--tl-space-4);
1366
+ border-top: 1px solid var(--tl-color-background);
1250
1367
  font-size: 12px;
1251
- color: var(--color-text-1);
1252
- z-index: var(--layer-panels);
1368
+ color: var(--tl-color-text-1);
1369
+ z-index: var(--tl-layer-panels);
1253
1370
  pointer-events: all;
1254
1371
  }
1255
1372
 
@@ -1265,7 +1382,7 @@
1265
1382
 
1266
1383
  .tlui-debug-panel__fps__slow {
1267
1384
  font-weight: bold;
1268
- color: var(--color-danger);
1385
+ color: var(--tl-color-danger);
1269
1386
  }
1270
1387
 
1271
1388
  .tlui-a11y-audit {
@@ -1275,7 +1392,7 @@
1275
1392
  .tlui-a11y-audit th,
1276
1393
  .tlui-a11y-audit td {
1277
1394
  padding: 8px;
1278
- border: 1px solid var(--color-low-border);
1395
+ border: 1px solid var(--tl-color-low-border);
1279
1396
  }
1280
1397
 
1281
1398
  /* --------------------- Toasts --------------------- */
@@ -1288,10 +1405,10 @@
1288
1405
  align-items: flex-end;
1289
1406
  justify-content: flex-end;
1290
1407
  flex-direction: column;
1291
- gap: var(--space-3);
1408
+ gap: var(--tl-space-3);
1292
1409
  pointer-events: none;
1293
- padding: 0px var(--space-3) 64px 0px;
1294
- z-index: var(--layer-toasts);
1410
+ padding: 0px var(--tl-space-3) 64px 0px;
1411
+ z-index: var(--tl-layer-toasts);
1295
1412
  }
1296
1413
 
1297
1414
  .tlui-toast__viewport > * {
@@ -1300,34 +1417,34 @@
1300
1417
 
1301
1418
  .tlui-toast__icon {
1302
1419
  padding-top: 11px;
1303
- padding-left: var(--space-4);
1304
- color: var(--color-text-1);
1420
+ padding-left: var(--tl-space-4);
1421
+ color: var(--tl-color-text-1);
1305
1422
  }
1306
1423
 
1307
1424
  .tlui-toast__container {
1308
1425
  min-width: 200px;
1309
1426
  display: flex;
1310
1427
  flex-direction: row;
1311
- background-color: var(--color-panel);
1312
- box-shadow: var(--shadow-2);
1313
- border-radius: var(--radius-3);
1428
+ background-color: var(--tl-color-panel);
1429
+ box-shadow: var(--tl-shadow-2);
1430
+ border-radius: var(--tl-radius-3);
1314
1431
  font-size: 12px;
1315
1432
  }
1316
1433
 
1317
1434
  .tlui-toast__container[data-severity='success'] .tlui-icon {
1318
- color: var(--color-success);
1435
+ color: var(--tl-color-success);
1319
1436
  }
1320
1437
 
1321
1438
  .tlui-toast__container[data-severity='info'] .tlui-icon {
1322
- color: var(--color-info);
1439
+ color: var(--tl-color-info);
1323
1440
  }
1324
1441
 
1325
1442
  .tlui-toast__container[data-severity='warning'] .tlui-icon {
1326
- color: var(--color-warning);
1443
+ color: var(--tl-color-warning);
1327
1444
  }
1328
1445
 
1329
1446
  .tlui-toast__container[data-severity='error'] .tlui-icon {
1330
- color: var(--color-danger);
1447
+ color: var(--tl-color-danger);
1331
1448
  }
1332
1449
 
1333
1450
  .tlui-toast__main {
@@ -1336,27 +1453,27 @@
1336
1453
  }
1337
1454
 
1338
1455
  .tlui-toast__content {
1339
- padding: var(--space-4);
1456
+ padding: var(--tl-space-4);
1340
1457
  display: flex;
1341
1458
  line-height: 1.4;
1342
1459
  flex-direction: column;
1343
- gap: var(--space-3);
1460
+ gap: var(--tl-space-3);
1344
1461
  }
1345
1462
 
1346
1463
  .tlui-toast__main[data-actions='true'] .tlui-toast__content {
1347
- padding-bottom: var(--space-2);
1464
+ padding-bottom: var(--tl-space-2);
1348
1465
  }
1349
1466
 
1350
1467
  .tlui-toast__title {
1351
1468
  font-weight: bold;
1352
- color: var(--color-text-1);
1469
+ color: var(--tl-color-text-1);
1353
1470
  /* this makes the default toast look better */
1354
1471
  line-height: 16px;
1355
1472
  }
1356
1473
 
1357
1474
  .tlui-toast__description {
1358
- color: var(--color-text-1);
1359
- padding: var(--space-3);
1475
+ color: var(--tl-color-text-1);
1476
+ padding: var(--tl-space-3);
1360
1477
  margin: 0px;
1361
1478
  padding: 0px;
1362
1479
  }
@@ -1379,11 +1496,11 @@
1379
1496
 
1380
1497
  @media (prefers-reduced-motion: no-preference) {
1381
1498
  .tlui-toast__container[data-state='open'] {
1382
- animation: slide-in 200ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
1499
+ animation: tlui-slide-in 200ms cubic-bezier(0.785, 0.135, 0.15, 0.86);
1383
1500
  }
1384
1501
 
1385
1502
  .tlui-toast__container[data-state='closed'] {
1386
- animation: hide 100ms ease-in;
1503
+ animation: tlui-fade-out 100ms ease-in;
1387
1504
  }
1388
1505
 
1389
1506
  .tlui-toast__container[data-swipe='move'] {
@@ -1396,7 +1513,7 @@
1396
1513
  }
1397
1514
 
1398
1515
  .tlui-toast__container[data-swipe='end'] {
1399
- animation: swipe-out 100ms ease-out;
1516
+ animation: tlui-slide-out 100ms ease-out;
1400
1517
  }
1401
1518
  }
1402
1519
 
@@ -1408,14 +1525,14 @@
1408
1525
  left: 0px;
1409
1526
  width: 100%;
1410
1527
  height: 100%;
1411
- z-index: var(--layer-canvas-overlays);
1412
- background-color: var(--color-overlay);
1528
+ z-index: var(--tl-layer-canvas-overlays);
1529
+ background-color: var(--tl-color-overlay);
1413
1530
  pointer-events: all;
1414
- animation: fadeIn 0.12s ease-out;
1531
+ animation: tl-fade-in 0.12s ease-out;
1415
1532
  display: grid;
1416
1533
  place-items: center;
1417
1534
  overflow-y: auto;
1418
- padding: 0px var(--space-3);
1535
+ padding: 0px var(--tl-space-3);
1419
1536
  }
1420
1537
 
1421
1538
  .tlui-dialog__content {
@@ -1423,9 +1540,9 @@
1423
1540
  flex-direction: column;
1424
1541
  position: relative;
1425
1542
  cursor: default;
1426
- background-color: var(--color-panel);
1427
- box-shadow: var(--shadow-3);
1428
- border-radius: var(--radius-3);
1543
+ background-color: var(--tl-color-panel);
1544
+ box-shadow: var(--tl-shadow-3);
1545
+ border-radius: var(--tl-radius-3);
1429
1546
  font-size: 12px;
1430
1547
  overflow: hidden;
1431
1548
  min-width: 300px;
@@ -1438,9 +1555,9 @@
1438
1555
  display: flex;
1439
1556
  align-items: center;
1440
1557
  flex: 0;
1441
- z-index: var(--layer-header-footer);
1442
- padding-left: var(--space-4);
1443
- color: var(--color-text);
1558
+ z-index: var(--tl-layer-header-footer);
1559
+ padding-left: var(--tl-space-4);
1560
+ color: var(--tl-color-text);
1444
1561
  height: 40px;
1445
1562
  }
1446
1563
 
@@ -1449,7 +1566,7 @@
1449
1566
  font-weight: inherit;
1450
1567
  font-size: 12px;
1451
1568
  margin: 0px;
1452
- color: var(--color-text-1);
1569
+ color: var(--tl-color-text-1);
1453
1570
  }
1454
1571
 
1455
1572
  .tlui-dialog__header__close {
@@ -1457,16 +1574,16 @@
1457
1574
  }
1458
1575
 
1459
1576
  .tlui-dialog__body {
1460
- padding: var(--space-4) var(--space-4);
1577
+ padding: var(--tl-space-4) var(--tl-space-4);
1461
1578
  flex: 0 1;
1462
1579
  overflow-y: auto;
1463
1580
  overflow-x: hidden;
1464
- color: var(--color-text-1);
1581
+ color: var(--tl-color-text-1);
1465
1582
  user-select: all;
1466
1583
  -webkit-user-select: text;
1467
1584
  }
1468
1585
  .tlui-dialog__body a {
1469
- color: var(--color-selected);
1586
+ color: var(--tl-color-selected);
1470
1587
  }
1471
1588
 
1472
1589
  .tlui-dialog__body ul,
@@ -1474,13 +1591,13 @@
1474
1591
  padding-left: 16px;
1475
1592
  display: flex;
1476
1593
  flex-direction: column;
1477
- gap: var(--space-2);
1594
+ gap: var(--tl-space-2);
1478
1595
  }
1479
1596
 
1480
1597
  .tlui-dialog__footer {
1481
1598
  position: relative;
1482
1599
  min-height: 12px;
1483
- z-index: var(--layer-header-footer);
1600
+ z-index: var(--tl-layer-header-footer);
1484
1601
  }
1485
1602
 
1486
1603
  .tlui-dialog__footer__actions {
@@ -1500,15 +1617,15 @@
1500
1617
  .tlui-edit-link-dialog {
1501
1618
  display: flex;
1502
1619
  flex-direction: column;
1503
- gap: var(--space-4);
1504
- color: var(--color-text);
1620
+ gap: var(--tl-space-4);
1621
+ color: var(--tl-color-text);
1505
1622
  }
1506
1623
 
1507
1624
  .tlui-edit-link-dialog__input {
1508
- background-color: var(--color-muted-2);
1625
+ background-color: var(--tl-color-muted-2);
1509
1626
  flex-grow: 2;
1510
- border-radius: var(--radius-2);
1511
- padding: 0px var(--space-4);
1627
+ border-radius: var(--tl-radius-2);
1628
+ padding: 0px var(--tl-space-4);
1512
1629
  }
1513
1630
 
1514
1631
  /* Embed Dialog */
@@ -1516,15 +1633,15 @@
1516
1633
  .tlui-embed__spacer {
1517
1634
  flex-grow: 2;
1518
1635
  min-height: 0px;
1519
- margin-left: calc(-1 * var(--space-4));
1520
- margin-top: calc(-1 * var(--space-4));
1636
+ margin-left: calc(-1 * var(--tl-space-4));
1637
+ margin-top: calc(-1 * var(--tl-space-4));
1521
1638
  pointer-events: none;
1522
1639
  }
1523
1640
 
1524
1641
  .tlui-embed-dialog__list {
1525
1642
  display: flex;
1526
1643
  flex-direction: column;
1527
- padding: 0px var(--space-3) var(--space-4) var(--space-3);
1644
+ padding: 0px var(--tl-space-3) var(--tl-space-4) var(--tl-space-3);
1528
1645
  }
1529
1646
 
1530
1647
  .tlui-embed-dialog__item__image {
@@ -1536,49 +1653,49 @@
1536
1653
  background-size: contain;
1537
1654
  background-repeat: no-repeat;
1538
1655
  background-position: center center;
1539
- background-color: var(--color-selected-contrast);
1540
- border-radius: var(--radius-1);
1656
+ background-color: var(--tl-color-selected-contrast);
1657
+ border-radius: var(--tl-radius-1);
1541
1658
  }
1542
1659
 
1543
1660
  .tlui-embed-dialog__enter {
1544
1661
  display: flex;
1545
1662
  flex-direction: column;
1546
- gap: var(--space-4);
1547
- color: var(--color-text-1);
1663
+ gap: var(--tl-space-4);
1664
+ color: var(--tl-color-text-1);
1548
1665
  }
1549
1666
 
1550
1667
  .tlui-embed-dialog__input {
1551
- background-color: var(--color-muted-2);
1668
+ background-color: var(--tl-color-muted-2);
1552
1669
  flex-grow: 2;
1553
- border-radius: var(--radius-2);
1554
- padding: 0px var(--space-4);
1670
+ border-radius: var(--tl-radius-2);
1671
+ padding: 0px var(--tl-space-4);
1555
1672
  }
1556
1673
 
1557
1674
  .tlui-embed-dialog__warning {
1558
- color: var(--color-danger);
1675
+ color: var(--tl-color-danger);
1559
1676
  text-shadow: none;
1560
1677
  }
1561
1678
 
1562
1679
  .tlui-embed-dialog__instruction__link {
1563
1680
  display: flex;
1564
- gap: var(--space-1);
1565
- margin-top: var(--space-4);
1681
+ gap: var(--tl-space-1);
1682
+ margin-top: var(--tl-space-4);
1566
1683
  }
1567
1684
 
1568
1685
  .tlui-embed-dialog__enter a {
1569
- color: var(--color-text-1);
1686
+ color: var(--tl-color-text-1);
1570
1687
  }
1571
1688
 
1572
1689
  /* --------------- Keyboard shortcuts --------------- */
1573
1690
 
1574
1691
  .tlui-shortcuts-dialog__header {
1575
- border-bottom: 1px solid var(--color-divider);
1692
+ border-bottom: 1px solid var(--tl-color-divider);
1576
1693
  }
1577
1694
 
1578
1695
  .tlui-shortcuts-dialog__body {
1579
1696
  position: relative;
1580
1697
  columns: 3;
1581
- column-gap: var(--space-9);
1698
+ column-gap: var(--tl-space-9);
1582
1699
  pointer-events: all;
1583
1700
  touch-action: auto;
1584
1701
 
@@ -1596,14 +1713,14 @@
1596
1713
 
1597
1714
  .tlui-shortcuts-dialog__group {
1598
1715
  break-inside: avoid-column;
1599
- padding-bottom: var(--space-6);
1716
+ padding-bottom: var(--tl-space-6);
1600
1717
  }
1601
1718
 
1602
1719
  .tlui-shortcuts-dialog__group__title {
1603
1720
  font-size: inherit;
1604
1721
  font-weight: inherit;
1605
1722
  margin: 0px;
1606
- color: var(--color-text-3);
1723
+ color: var(--tl-color-text-3);
1607
1724
  height: 32px;
1608
1725
  display: flex;
1609
1726
  align-items: center;
@@ -1612,12 +1729,12 @@
1612
1729
  .tlui-shortcuts-dialog__group__content {
1613
1730
  display: flex;
1614
1731
  flex-direction: column;
1615
- color: var(--color-text-1);
1732
+ color: var(--tl-color-text-1);
1616
1733
  }
1617
1734
 
1618
1735
  .tlui-shortcuts-dialog__key-pair {
1619
1736
  display: flex;
1620
- gap: var(--space-4);
1737
+ gap: var(--tl-space-4);
1621
1738
  align-items: center;
1622
1739
  justify-content: space-between;
1623
1740
  height: 32px;
@@ -1644,12 +1761,12 @@
1644
1761
  height: 24px;
1645
1762
  background: linear-gradient(
1646
1763
  to bottom,
1647
- var(--color-panel-transparent) 0%,
1648
- var(--color-panel) 90%,
1649
- var(--color-panel) 100%
1764
+ var(--tl-color-panel-transparent) 0%,
1765
+ var(--tl-color-panel) 90%,
1766
+ var(--tl-color-panel) 100%
1650
1767
  );
1651
- border-bottom-left-radius: var(--radius-3);
1652
- border-bottom-right-radius: var(--radius-3);
1768
+ border-bottom-left-radius: var(--tl-radius-3);
1769
+ border-bottom-right-radius: var(--tl-radius-3);
1653
1770
  pointer-events: none;
1654
1771
  }
1655
1772
 
@@ -1664,10 +1781,10 @@
1664
1781
  .tlui-help-menu {
1665
1782
  pointer-events: all;
1666
1783
  position: absolute;
1667
- bottom: var(--space-2);
1668
- right: var(--space-2);
1669
- z-index: var(--layer-panels);
1670
- border: 2px solid var(--color-background);
1784
+ bottom: var(--tl-space-2);
1785
+ right: var(--tl-space-2);
1786
+ z-index: var(--tl-layer-panels);
1787
+ border: 2px solid var(--tl-color-background);
1671
1788
  border-radius: 100%;
1672
1789
  }
1673
1790
 
@@ -1678,7 +1795,7 @@
1678
1795
  display: flex;
1679
1796
  flex-direction: row;
1680
1797
  justify-content: flex-end;
1681
- z-index: var(--layer-panels);
1798
+ z-index: var(--tl-layer-panels);
1682
1799
  align-items: center;
1683
1800
  padding-top: 2px;
1684
1801
  padding-right: 4px;
@@ -1694,7 +1811,7 @@
1694
1811
  border: none;
1695
1812
  cursor: pointer;
1696
1813
  pointer-events: all;
1697
- border-radius: var(--radius-1);
1814
+ border-radius: var(--tl-radius-1);
1698
1815
  padding-right: 1px;
1699
1816
  height: 100%;
1700
1817
  }
@@ -1707,8 +1824,8 @@
1707
1824
  .tlui-people-menu__avatar {
1708
1825
  height: 24px;
1709
1826
  width: 24px;
1710
- border: 2px solid var(--color-background);
1711
- background-color: var(--color-low);
1827
+ border: 2px solid var(--tl-color-background);
1828
+ background-color: var(--tl-color-low);
1712
1829
  border-radius: 100%;
1713
1830
  display: flex;
1714
1831
  align-items: center;
@@ -1717,7 +1834,7 @@
1717
1834
  font-size: 10px;
1718
1835
  font-weight: bold;
1719
1836
  text-align: center;
1720
- color: var(--color-selected-contrast);
1837
+ color: var(--tl-color-selected-contrast);
1721
1838
  z-index: 2;
1722
1839
  }
1723
1840
 
@@ -1731,7 +1848,7 @@
1731
1848
 
1732
1849
  @media (hover: hover) {
1733
1850
  .tlui-people-menu__avatars-button:hover .tlui-people-menu__avatar {
1734
- border-color: var(--color-low);
1851
+ border-color: var(--tl-color-low);
1735
1852
  }
1736
1853
  }
1737
1854
 
@@ -1739,12 +1856,12 @@
1739
1856
  min-width: 0px;
1740
1857
  font-size: 11px;
1741
1858
  font-weight: 600;
1742
- color: var(--color-text-1);
1859
+ color: var(--tl-color-text-1);
1743
1860
  font-family: inherit;
1744
1861
  padding: 0px 4px;
1745
1862
  }
1746
1863
  .tlui-people-menu__more::after {
1747
- border-radius: var(--radius-2);
1864
+ border-radius: var(--tl-radius-2);
1748
1865
  inset: 0px;
1749
1866
  }
1750
1867
 
@@ -1773,7 +1890,7 @@
1773
1890
  }
1774
1891
 
1775
1892
  .tlui-people-menu__section:not(:last-child) {
1776
- border-bottom: 1px solid var(--color-divider);
1893
+ border-bottom: 1px solid var(--tl-color-divider);
1777
1894
  }
1778
1895
 
1779
1896
  .tlui-people-menu__user {
@@ -1792,7 +1909,7 @@
1792
1909
  text-overflow: ellipsis;
1793
1910
  white-space: nowrap;
1794
1911
  font-size: 12px;
1795
- color: var(--color-text-1);
1912
+ color: var(--tl-color-text-1);
1796
1913
  max-width: 100%;
1797
1914
  flex-grow: 1;
1798
1915
  flex-shrink: 100;
@@ -1804,7 +1921,7 @@
1804
1921
  text-overflow: ellipsis;
1805
1922
  white-space: nowrap;
1806
1923
  font-size: 12px;
1807
- color: var(--color-text-3);
1924
+ color: var(--tl-color-text-3);
1808
1925
  flex-grow: 100;
1809
1926
  flex-shrink: 0;
1810
1927
  margin-left: 4px;
@@ -1895,7 +2012,7 @@
1895
2012
  inset: 0px;
1896
2013
  border-width: 2px;
1897
2014
  border-style: solid;
1898
- z-index: var(--layer-following-indicator);
2015
+ z-index: var(--tl-layer-following-indicator);
1899
2016
  pointer-events: none;
1900
2017
  }
1901
2018
 
@@ -1914,7 +2031,7 @@
1914
2031
  }
1915
2032
 
1916
2033
  .tlui-contextual-toolbar [data-isactive='true']::after {
1917
- background-color: var(--color-muted-2);
2034
+ background-color: var(--tl-color-muted-2);
1918
2035
  opacity: 1;
1919
2036
  }
1920
2037
 
@@ -1930,7 +2047,7 @@
1930
2047
 
1931
2048
  .tlui-contextual-toolbar[data-visible='true'] {
1932
2049
  opacity: 1;
1933
- z-index: var(--layer-menus);
2050
+ z-index: var(--tl-layer-menus);
1934
2051
  }
1935
2052
 
1936
2053
  .tlui-contextual-toolbar[data-interactive='true'],
@@ -1978,7 +2095,7 @@
1978
2095
  }
1979
2096
 
1980
2097
  /* ------------------- Animations ------------------- */
1981
- @keyframes hide {
2098
+ @keyframes tlui-fade-out {
1982
2099
  0% {
1983
2100
  opacity: 1;
1984
2101
  }
@@ -1987,20 +2104,20 @@
1987
2104
  }
1988
2105
  }
1989
2106
 
1990
- @keyframes slide-in {
2107
+ @keyframes tlui-slide-in {
1991
2108
  from {
1992
- transform: translateX(calc(100% + var(--space-3)));
2109
+ transform: translateX(calc(100% + var(--tl-space-3)));
1993
2110
  }
1994
2111
  to {
1995
2112
  transform: translateX(0px);
1996
2113
  }
1997
2114
  }
1998
2115
 
1999
- @keyframes swipe-out {
2116
+ @keyframes tlui-slide-out {
2000
2117
  from {
2001
2118
  transform: translateX(var(--radix-toast-swipe-end-x));
2002
2119
  }
2003
2120
  to {
2004
- transform: translateX(calc(100% + var(--space-3)));
2121
+ transform: translateX(calc(100% + var(--tl-space-3)));
2005
2122
  }
2006
2123
  }