tldraw 3.16.0-canary.6f3aedaa1c01 → 3.16.0-canary.76c0d51de595

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 (453) hide show
  1. package/dist-cjs/index.d.ts +359 -113
  2. package/dist-cjs/index.js +40 -14
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/Tldraw.js +12 -2
  5. package/dist-cjs/lib/Tldraw.js.map +2 -2
  6. package/dist-cjs/lib/canvas/TldrawScribble.js +1 -1
  7. package/dist-cjs/lib/canvas/TldrawScribble.js.map +2 -2
  8. package/dist-cjs/lib/defaultExternalContentHandlers.js +15 -4
  9. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  10. package/dist-cjs/lib/shapes/arrow/arrow-types.js.map +1 -1
  11. package/dist-cjs/lib/shapes/arrow/arrowLabel.js +6 -0
  12. package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +3 -3
  13. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +3 -2
  14. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
  15. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
  16. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  17. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +1 -1
  18. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +2 -2
  19. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js +4 -4
  20. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js.map +2 -2
  21. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  22. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  23. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +12 -5
  24. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  25. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  26. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  27. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +8 -2
  28. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +2 -2
  29. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +1 -0
  30. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  31. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +6 -3
  32. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +2 -2
  33. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +2 -1
  34. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  35. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js +4 -4
  36. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js.map +2 -2
  37. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +1 -3
  38. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +2 -2
  39. package/dist-cjs/lib/shapes/shared/ShapeFill.js +1 -1
  40. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  41. package/dist-cjs/lib/shapes/shared/freehand/svg.js.map +2 -2
  42. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js +3 -5
  43. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js.map +2 -2
  44. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js +0 -2
  45. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js.map +2 -2
  46. package/dist-cjs/lib/shapes/text/PlainTextArea.js +3 -2
  47. package/dist-cjs/lib/shapes/text/PlainTextArea.js.map +2 -2
  48. package/dist-cjs/lib/shapes/text/RichTextArea.js +3 -3
  49. package/dist-cjs/lib/shapes/text/RichTextArea.js.map +2 -2
  50. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  51. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  52. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +25 -1
  53. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  54. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +12 -0
  55. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  56. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +3 -1
  57. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
  58. package/dist-cjs/lib/ui/TldrawUi.js +27 -12
  59. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  60. package/dist-cjs/lib/ui/assetUrls.js +13 -10
  61. package/dist-cjs/lib/ui/assetUrls.js.map +2 -2
  62. package/dist-cjs/lib/ui/components/A11y.js +1 -1
  63. package/dist-cjs/lib/ui/components/A11y.js.map +2 -2
  64. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +10 -2
  65. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  66. package/dist-cjs/lib/ui/components/{FollowingIndicator.js → DefaultFollowingIndicator.js} +6 -6
  67. package/dist-cjs/lib/ui/components/DefaultFollowingIndicator.js.map +7 -0
  68. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +6 -6
  69. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +1 -1
  70. package/dist-cjs/lib/ui/components/LanguageMenu.js +1 -0
  71. package/dist-cjs/lib/ui/components/LanguageMenu.js.map +2 -2
  72. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js +2 -1
  73. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js.map +2 -2
  74. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  75. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  76. package/dist-cjs/lib/ui/components/MobileStylePanel.js +4 -2
  77. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  78. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +1 -1
  79. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  80. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +9 -4
  81. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  82. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +255 -316
  83. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  84. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js +147 -0
  85. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +7 -0
  86. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js +68 -0
  87. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js.map +7 -0
  88. package/dist-cjs/lib/ui/components/StylePanel/{DoubleDropdownPicker.js → StylePanelDoubleDropdownPicker.js} +23 -22
  89. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js.map +7 -0
  90. package/dist-cjs/lib/ui/components/StylePanel/{DropdownPicker.js → StylePanelDropdownPicker.js} +24 -21
  91. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js.map +7 -0
  92. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js +28 -0
  93. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js.map +7 -0
  94. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js +2 -0
  95. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
  96. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +39 -10
  97. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  98. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -22
  99. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  100. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js +15 -3
  101. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js.map +2 -2
  102. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js +2 -1
  103. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js.map +2 -2
  104. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +188 -78
  105. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  106. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +6 -2
  107. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  108. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +11 -2
  109. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  110. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js +5 -3
  111. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js.map +2 -2
  112. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +18 -5
  113. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  114. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +18 -3
  115. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  116. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +187 -165
  117. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +2 -2
  118. package/dist-cjs/lib/ui/components/primitives/layout.js +30 -5
  119. package/dist-cjs/lib/ui/components/primitives/layout.js.map +2 -2
  120. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js +3 -0
  121. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js.map +2 -2
  122. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  123. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
  124. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  125. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +11 -27
  126. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  127. package/dist-cjs/lib/ui/context/actions.js +29 -10
  128. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  129. package/dist-cjs/lib/ui/context/components.js +2 -0
  130. package/dist-cjs/lib/ui/context/components.js.map +2 -2
  131. package/dist-cjs/lib/ui/context/events.js.map +1 -1
  132. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +1 -1
  133. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
  134. package/dist-cjs/lib/ui/hooks/useExportAs.js +3 -2
  135. package/dist-cjs/lib/ui/hooks/useExportAs.js.map +2 -2
  136. package/dist-cjs/lib/ui/hooks/useTools.js +22 -4
  137. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  138. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  139. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +6 -2
  140. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  141. package/dist-cjs/lib/ui/kbd-utils.js +9 -3
  142. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  143. package/dist-cjs/lib/ui/version.js +3 -3
  144. package/dist-cjs/lib/ui/version.js.map +1 -1
  145. package/dist-cjs/lib/utils/export/copyAs.js +1 -2
  146. package/dist-cjs/lib/utils/export/copyAs.js.map +2 -2
  147. package/dist-cjs/lib/utils/export/export.js +0 -20
  148. package/dist-cjs/lib/utils/export/export.js.map +2 -2
  149. package/dist-cjs/lib/utils/export/exportAs.js +1 -2
  150. package/dist-cjs/lib/utils/export/exportAs.js.map +2 -2
  151. package/dist-esm/index.d.mts +359 -113
  152. package/dist-esm/index.mjs +76 -30
  153. package/dist-esm/index.mjs.map +2 -2
  154. package/dist-esm/lib/Tldraw.mjs +14 -4
  155. package/dist-esm/lib/Tldraw.mjs.map +2 -2
  156. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  157. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  158. package/dist-esm/lib/defaultExternalContentHandlers.mjs +15 -4
  159. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  160. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +6 -0
  161. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +3 -3
  162. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +3 -2
  163. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
  164. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  165. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  166. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +1 -1
  167. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +2 -2
  168. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs +4 -5
  169. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs.map +2 -2
  170. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  171. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  172. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +12 -5
  173. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  174. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  175. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  176. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +9 -3
  177. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +2 -2
  178. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +1 -0
  179. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  180. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +6 -3
  181. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +2 -2
  182. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +2 -1
  183. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  184. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs +5 -5
  185. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs.map +2 -2
  186. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +1 -3
  187. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  188. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +1 -1
  189. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  190. package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
  191. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs +3 -6
  192. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
  193. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs +0 -2
  194. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs.map +2 -2
  195. package/dist-esm/lib/shapes/text/PlainTextArea.mjs +4 -3
  196. package/dist-esm/lib/shapes/text/PlainTextArea.mjs.map +2 -2
  197. package/dist-esm/lib/shapes/text/RichTextArea.mjs +3 -4
  198. package/dist-esm/lib/shapes/text/RichTextArea.mjs.map +2 -2
  199. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  200. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  201. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +26 -1
  202. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  203. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +13 -0
  204. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  205. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +3 -1
  206. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
  207. package/dist-esm/lib/ui/TldrawUi.mjs +29 -14
  208. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  209. package/dist-esm/lib/ui/assetUrls.mjs +13 -10
  210. package/dist-esm/lib/ui/assetUrls.mjs.map +2 -2
  211. package/dist-esm/lib/ui/components/A11y.mjs +1 -2
  212. package/dist-esm/lib/ui/components/A11y.mjs.map +2 -2
  213. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +10 -2
  214. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  215. package/dist-esm/lib/ui/components/{FollowingIndicator.mjs → DefaultFollowingIndicator.mjs} +3 -3
  216. package/dist-esm/lib/ui/components/DefaultFollowingIndicator.mjs.map +7 -0
  217. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +6 -6
  218. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +1 -1
  219. package/dist-esm/lib/ui/components/LanguageMenu.mjs +1 -0
  220. package/dist-esm/lib/ui/components/LanguageMenu.mjs.map +2 -2
  221. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs +2 -1
  222. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs.map +2 -2
  223. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  224. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  225. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +4 -2
  226. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  227. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +1 -2
  228. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  229. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +14 -5
  230. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  231. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +257 -320
  232. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  233. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +135 -0
  234. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +7 -0
  235. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs +48 -0
  236. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs.map +7 -0
  237. package/dist-esm/lib/ui/components/StylePanel/{DoubleDropdownPicker.mjs → StylePanelDoubleDropdownPicker.mjs} +20 -19
  238. package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs.map +7 -0
  239. package/dist-esm/lib/ui/components/StylePanel/{DropdownPicker.mjs → StylePanelDropdownPicker.mjs} +21 -18
  240. package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs.map +7 -0
  241. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs +8 -0
  242. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs.map +7 -0
  243. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs +2 -0
  244. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
  245. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +39 -10
  246. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  247. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -22
  248. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  249. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs +15 -3
  250. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs.map +2 -2
  251. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs +2 -1
  252. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs.map +2 -2
  253. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -80
  254. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  255. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +6 -2
  256. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  257. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +11 -3
  258. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  259. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs +6 -4
  260. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs.map +2 -2
  261. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +18 -5
  262. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  263. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +19 -4
  264. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  265. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +197 -167
  266. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +2 -2
  267. package/dist-esm/lib/ui/components/primitives/layout.mjs +31 -6
  268. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +2 -2
  269. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs +3 -0
  270. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs.map +2 -2
  271. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  272. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
  273. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  274. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +11 -27
  275. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  276. package/dist-esm/lib/ui/context/actions.mjs +29 -10
  277. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  278. package/dist-esm/lib/ui/context/components.mjs +2 -0
  279. package/dist-esm/lib/ui/context/components.mjs.map +2 -2
  280. package/dist-esm/lib/ui/context/events.mjs.map +1 -1
  281. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +1 -2
  282. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
  283. package/dist-esm/lib/ui/hooks/useExportAs.mjs +3 -2
  284. package/dist-esm/lib/ui/hooks/useExportAs.mjs.map +2 -2
  285. package/dist-esm/lib/ui/hooks/useTools.mjs +23 -4
  286. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  287. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +6 -2
  288. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  289. package/dist-esm/lib/ui/kbd-utils.mjs +9 -3
  290. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  291. package/dist-esm/lib/ui/version.mjs +3 -3
  292. package/dist-esm/lib/ui/version.mjs.map +1 -1
  293. package/dist-esm/lib/utils/export/copyAs.mjs +1 -2
  294. package/dist-esm/lib/utils/export/copyAs.mjs.map +2 -2
  295. package/dist-esm/lib/utils/export/export.mjs +0 -20
  296. package/dist-esm/lib/utils/export/export.mjs.map +2 -2
  297. package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
  298. package/dist-esm/lib/utils/export/exportAs.mjs.map +2 -2
  299. package/package.json +11 -34
  300. package/src/index.ts +56 -22
  301. package/src/lib/Tldraw.tsx +15 -2
  302. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  303. package/src/lib/defaultExternalContentHandlers.ts +26 -4
  304. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +85 -14
  305. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +103 -8
  306. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +48 -6
  307. package/src/lib/shapes/arrow/arrow-types.ts +3 -5
  308. package/src/lib/shapes/arrow/arrowLabel.ts +8 -0
  309. package/src/lib/shapes/arrow/arrowTargetState.ts +34 -3
  310. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  311. package/src/lib/shapes/arrow/toolStates/Pointing.tsx +1 -1
  312. package/src/lib/shapes/bookmark/BookmarkShapeUtil.tsx +4 -5
  313. package/src/lib/shapes/draw/DrawShapeTool.test.ts +0 -5
  314. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  315. package/src/lib/shapes/frame/FrameShapeUtil.tsx +21 -4
  316. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  317. package/src/lib/shapes/frame/components/FrameLabelInput.tsx +10 -3
  318. package/src/lib/shapes/geo/GeoShapeUtil.tsx +1 -0
  319. package/src/lib/shapes/image/ImageShapeUtil.tsx +6 -3
  320. package/src/lib/shapes/line/LineShapeUtil.test.tsx +4 -3
  321. package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
  322. package/src/lib/shapes/note/NoteShapeUtil.tsx +1 -0
  323. package/src/lib/shapes/shared/HyperlinkButton.tsx +5 -5
  324. package/src/lib/shapes/shared/PlainTextLabel.tsx +0 -6
  325. package/src/lib/shapes/shared/ShapeFill.tsx +1 -1
  326. package/src/lib/shapes/shared/freehand/svg.ts +2 -0
  327. package/src/lib/shapes/shared/useEditablePlainText.ts +3 -10
  328. package/src/lib/shapes/shared/useImageOrVideoAsset.ts +0 -7
  329. package/src/lib/shapes/text/PlainTextArea.tsx +4 -3
  330. package/src/lib/shapes/text/RichTextArea.tsx +3 -4
  331. package/src/lib/shapes/text/TextShapeTool.test.ts +6 -5
  332. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  333. package/src/lib/tools/EraserTool/childStates/Erasing.ts +34 -1
  334. package/src/lib/tools/EraserTool/childStates/Pointing.ts +20 -0
  335. package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +6 -2
  336. package/src/lib/ui/TldrawUi.tsx +33 -12
  337. package/src/lib/ui/assetUrls.ts +13 -10
  338. package/src/lib/ui/components/A11y.tsx +1 -2
  339. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +13 -2
  340. package/src/lib/ui/components/{FollowingIndicator.tsx → DefaultFollowingIndicator.tsx} +2 -1
  341. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +6 -6
  342. package/src/lib/ui/components/LanguageMenu.tsx +1 -0
  343. package/src/lib/ui/components/Minimap/DefaultMinimap.tsx +2 -1
  344. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  345. package/src/lib/ui/components/MobileStylePanel.tsx +4 -3
  346. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +1 -2
  347. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +27 -13
  348. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +260 -381
  349. package/src/lib/ui/components/{primitives/TldrawUiButtonPicker.tsx → StylePanel/StylePanelButtonPicker.tsx} +70 -50
  350. package/src/lib/ui/components/StylePanel/StylePanelContext.tsx +63 -0
  351. package/src/lib/ui/components/StylePanel/{DoubleDropdownPicker.tsx → StylePanelDoubleDropdownPicker.tsx} +28 -19
  352. package/src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx +119 -0
  353. package/src/lib/ui/components/StylePanel/StylePanelSubheading.tsx +9 -0
  354. package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +2 -0
  355. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +33 -16
  356. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -24
  357. package/src/lib/ui/components/Toolbar/DefaultVideoToolbarContent.tsx +12 -4
  358. package/src/lib/ui/components/Toolbar/LinkEditor.tsx +1 -0
  359. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +208 -56
  360. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +9 -2
  361. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +7 -3
  362. package/src/lib/ui/components/primitives/TldrawUiInput.tsx +6 -3
  363. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +52 -32
  364. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +27 -6
  365. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +232 -185
  366. package/src/lib/ui/components/primitives/layout.tsx +79 -5
  367. package/src/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.tsx +4 -0
  368. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
  369. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
  370. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +14 -27
  371. package/src/lib/ui/context/actions.tsx +36 -10
  372. package/src/lib/ui/context/components.tsx +3 -0
  373. package/src/lib/ui/context/events.tsx +1 -1
  374. package/src/lib/ui/hooks/useClipboardEvents.ts +1 -2
  375. package/src/lib/ui/hooks/useExportAs.ts +3 -2
  376. package/src/lib/ui/hooks/useTools.tsx +26 -4
  377. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +4 -0
  378. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +6 -2
  379. package/src/lib/ui/kbd-utils.ts +10 -3
  380. package/src/lib/ui/version.ts +3 -3
  381. package/src/lib/ui.css +389 -246
  382. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +5 -5
  383. package/src/lib/utils/export/copyAs.ts +1 -24
  384. package/src/lib/utils/export/export.ts +0 -36
  385. package/src/lib/utils/export/exportAs.ts +1 -32
  386. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +4 -4
  387. package/src/test/A11y.test.tsx +3 -2
  388. package/src/test/ClickManager.test.ts +7 -6
  389. package/src/test/Editor.test.tsx +20 -19
  390. package/src/test/EraserTool.test.ts +184 -13
  391. package/src/test/HandTool.test.ts +10 -9
  392. package/src/test/HighlightShape.test.ts +2 -1
  393. package/src/test/SelectTool.test.ts +3 -2
  394. package/src/test/TLUserPreferences.test.ts +4 -3
  395. package/src/test/TestEditor.ts +21 -17
  396. package/src/test/TldrawEditor.test.tsx +11 -10
  397. package/src/test/ZoomTool.test.ts +7 -6
  398. package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
  399. package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
  400. package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
  401. package/src/test/arrows-megabus.test.tsx +5 -4
  402. package/src/test/bindings.test.tsx +24 -37
  403. package/src/test/bookmark-shapes.test.ts +1 -8
  404. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +23 -7
  405. package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
  406. package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
  407. package/src/test/commands/alignShapes.test.tsx +25 -24
  408. package/src/test/commands/animationSpeed.test.ts +2 -1
  409. package/src/test/commands/centerOnPoint.test.ts +3 -2
  410. package/src/test/commands/clipboard.test.ts +3 -2
  411. package/src/test/commands/createShapes.test.ts +2 -1
  412. package/src/test/commands/deleteShapes.test.ts +2 -1
  413. package/src/test/commands/distributeShapes.test.tsx +11 -10
  414. package/src/test/commands/getSvgString.test.ts +2 -1
  415. package/src/test/commands/packShapes.test.ts +5 -4
  416. package/src/test/commands/resizeShape.test.ts +2 -1
  417. package/src/test/commands/rotateShapes.test.ts +7 -6
  418. package/src/test/commands/setCamera.test.ts +4 -3
  419. package/src/test/commands/setCurrentPage.test.ts +3 -2
  420. package/src/test/commands/stackShapes.test.ts +11 -10
  421. package/src/test/commands/stretch.test.tsx +13 -12
  422. package/src/test/createDeepLink.test.tsx +2 -1
  423. package/src/test/cropping.test.ts +3 -2
  424. package/src/test/custom-clipping.test.ts +436 -0
  425. package/src/test/drawing.test.ts +2 -1
  426. package/src/test/flipShapes.test.ts +4 -3
  427. package/src/test/frames.test.ts +25 -24
  428. package/src/test/getCulledShapes.test.tsx +74 -4
  429. package/src/test/groups.test.tsx +1 -1
  430. package/src/test/handleDeepLink.test.tsx +2 -1
  431. package/src/test/maxShapes.test.ts +3 -2
  432. package/src/test/modifiers.test.ts +5 -4
  433. package/src/test/navigation.test.ts +12 -11
  434. package/src/test/panning.test.ts +2 -1
  435. package/src/test/perf/perf.test.ts +2 -1
  436. package/src/test/registerDeepLinkListener.test.tsx +10 -9
  437. package/src/test/resizing.test.ts +39 -38
  438. package/src/test/select.test.tsx +4 -3
  439. package/src/test/selection-omnibus.test.ts +11 -10
  440. package/src/test/shapeutils.test.ts +4 -3
  441. package/src/test/translating.test.ts +9 -8
  442. package/tldraw.css +697 -538
  443. package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +0 -7
  444. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +0 -7
  445. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +0 -7
  446. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js +0 -131
  447. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +0 -7
  448. package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +0 -7
  449. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +0 -7
  450. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +0 -7
  451. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +0 -115
  452. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +0 -7
  453. package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +0 -110
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
100
  .tlui-button[aria-expanded='true'][data-direction='left'] {
101
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
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,21 +142,21 @@
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
  }
@@ -168,12 +168,12 @@
168
168
  min-height: 40px;
169
169
  width: 100%;
170
170
  gap: 8px;
171
- margin: -4px 0px;
171
+ margin-top: -4px;
172
172
  }
173
173
 
174
174
  .tlui-button__menu::after {
175
175
  inset: 4px;
176
- border-radius: var(--radius-2);
176
+ border-radius: var(--tl-radius-2);
177
177
  }
178
178
 
179
179
  .tlui-button__menu > .tlui-icon + .tlui-button__label {
@@ -203,13 +203,21 @@
203
203
 
204
204
  .tlui-main-toolbar__lock-button {
205
205
  position: absolute;
206
- top: 4px;
207
- right: 0px;
208
206
  pointer-events: all;
209
207
  height: 40px;
210
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;
211
215
  min-width: 0px;
212
- border-radius: var(--radius-2);
216
+ }
217
+
218
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__lock-button {
219
+ bottom: 0px;
220
+ min-height: 0px;
213
221
  }
214
222
 
215
223
  .tlui-main-toolbar__lock-button::after {
@@ -232,24 +240,24 @@
232
240
  }
233
241
 
234
242
  .tlui-button__tool[aria-pressed='true'] {
235
- color: var(--color-selected-contrast);
243
+ color: var(--tl-color-selected-contrast);
236
244
  }
237
245
 
238
246
  .tlui-button__tool[aria-pressed='true']:not(:disabled, :focus-visible):active {
239
- color: var(--color-selected-contrast);
247
+ color: var(--tl-color-selected-contrast);
240
248
  }
241
249
 
242
250
  .tlui-button__tool[aria-pressed='true']:not(:disabled)::after {
243
- background: var(--color-selected);
251
+ background: var(--tl-color-selected);
244
252
  opacity: 1;
245
253
  }
246
254
 
247
- .tlui-layout__mobile .tlui-button__tool {
255
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool {
248
256
  height: 48px;
249
257
  width: 43px;
250
258
  }
251
259
 
252
- .tlui-layout__mobile .tlui-button__tool > .tlui-icon {
260
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool > .tlui-icon {
253
261
  height: 16px;
254
262
  width: 16px;
255
263
  }
@@ -266,6 +274,18 @@
266
274
  margin-right: -2px;
267
275
  }
268
276
 
277
+ /* Column layout */
278
+
279
+ .tlui-column {
280
+ display: flex;
281
+ flex-direction: column;
282
+ padding: 2px 0;
283
+ }
284
+ .tlui-column > * {
285
+ margin-top: -2px;
286
+ margin-bottom: -2px;
287
+ }
288
+
269
289
  /* Grid layout */
270
290
 
271
291
  .tlui-grid {
@@ -301,9 +321,9 @@
301
321
  pointer-events: none;
302
322
  user-select: none;
303
323
  contain: strict;
304
- z-index: var(--layer-panels);
324
+ z-index: var(--tl-layer-panels);
305
325
  transform: translate3d(0, 0, 0);
306
- --sab: env(safe-area-inset-bottom);
326
+ --tl-sab: env(safe-area-inset-bottom);
307
327
  font-weight: 500;
308
328
  line-height: 1.6;
309
329
  -webkit-font-smoothing: antialiased;
@@ -356,11 +376,11 @@
356
376
  justify-content: flex-start;
357
377
  align-items: flex-start;
358
378
  width: min-content;
359
- gap: var(--space-3);
360
- margin: var(--space-2) var(--space-3);
379
+ gap: var(--tl-space-3);
380
+ margin: var(--tl-space-2) var(--tl-space-3);
361
381
  white-space: nowrap;
362
382
  pointer-events: none;
363
- z-index: var(--layer-panels);
383
+ z-index: var(--tl-layer-panels);
364
384
  }
365
385
 
366
386
  /* ---------------------- Icon ---------------------- */
@@ -388,7 +408,7 @@
388
408
 
389
409
  .tlui-slider__container {
390
410
  width: 100%;
391
- padding: 0px var(--space-4);
411
+ padding: 0px var(--tl-space-4);
392
412
  }
393
413
 
394
414
  .tlui-slider {
@@ -414,7 +434,7 @@
414
434
  content: '';
415
435
  height: 3px;
416
436
  width: 100%;
417
- background-color: var(--color-muted-1);
437
+ background-color: var(--tl-color-muted-1);
418
438
  border-radius: 14px;
419
439
  }
420
440
 
@@ -423,7 +443,7 @@
423
443
  top: calc(50% - 2px);
424
444
  left: 0px;
425
445
  height: 3px;
426
- background-color: var(--color-selected);
446
+ background-color: var(--tl-color-selected);
427
447
  border-radius: 14px;
428
448
  }
429
449
 
@@ -435,16 +455,16 @@
435
455
  height: 18px;
436
456
  position: relative;
437
457
  top: -1px;
438
- background-color: var(--color-panel);
458
+ background-color: var(--tl-color-panel);
439
459
  border-radius: 999px;
440
- box-shadow: inset 0px 0px 0px 2px var(--color-text-1);
460
+ box-shadow: inset 0px 0px 0px 2px var(--tl-color-text-1);
441
461
  }
442
462
 
443
463
  .tlui-slider__thumb:active {
444
464
  cursor: grabbing;
445
465
  box-shadow:
446
- inset 0px 0px 0px 2px var(--color-text-1),
447
- var(--shadow-1);
466
+ inset 0px 0px 0px 2px var(--tl-color-text-1),
467
+ var(--tl-shadow-1);
448
468
  }
449
469
 
450
470
  /* ---------------------- Input --------------------- */
@@ -453,7 +473,7 @@
453
473
  background: none;
454
474
  margin: 0px;
455
475
  position: relative;
456
- z-index: var(--layer-above);
476
+ z-index: var(--tl-layer-above);
457
477
  height: 40px;
458
478
  max-height: 40px;
459
479
  display: flex;
@@ -462,8 +482,8 @@
462
482
  font-family: inherit;
463
483
  font-size: 12px;
464
484
  font-weight: inherit;
465
- color: var(--color-text-1);
466
- padding: var(--space-4);
485
+ color: var(--tl-color-text-1);
486
+ padding: var(--tl-space-4);
467
487
  padding-left: 0px;
468
488
  border: none;
469
489
  outline: none;
@@ -474,13 +494,17 @@
474
494
  -webkit-user-select: auto !important;
475
495
  }
476
496
 
497
+ .tlui-input::placeholder {
498
+ color: var(--tl-color-text-3);
499
+ }
500
+
477
501
  .tlui-input__wrapper {
478
502
  width: 100%;
479
503
  height: 44px;
480
504
  display: flex;
481
505
  align-items: center;
482
- gap: var(--space-4);
483
- color: var(--color-text);
506
+ gap: var(--tl-space-4);
507
+ color: var(--tl-color-text);
484
508
  }
485
509
 
486
510
  .tlui-input__wrapper > .tlui-icon {
@@ -512,7 +536,7 @@
512
536
  grid-auto-columns: minmax(1em, auto);
513
537
  align-self: bottom;
514
538
  color: currentColor;
515
- margin-left: var(--space-4);
539
+ margin-left: var(--tl-space-4);
516
540
  }
517
541
 
518
542
  .tlui-kbd > span {
@@ -529,13 +553,13 @@
529
553
  }
530
554
 
531
555
  .tlui-kbd:not(:last-child) {
532
- margin-right: var(--space-2);
556
+ margin-right: var(--tl-space-2);
533
557
  }
534
558
 
535
559
  /* Focus Mode Button */
536
560
 
537
561
  .tlui-focus-button {
538
- z-index: var(--layer-panels);
562
+ z-index: var(--tl-layer-panels);
539
563
  pointer-events: all;
540
564
  }
541
565
 
@@ -546,16 +570,22 @@
546
570
  }
547
571
 
548
572
  .tlui-menu {
549
- z-index: var(--layer-menus);
573
+ z-index: var(--tl-layer-menus);
550
574
  height: fit-content;
551
575
  width: fit-content;
552
- border-radius: var(--radius-3);
576
+ border-radius: var(--tl-radius-3);
553
577
  pointer-events: all;
554
578
  touch-action: auto;
555
579
  overflow-y: auto;
556
580
  overscroll-behavior: none;
557
- background-color: var(--color-panel);
558
- box-shadow: var(--shadow-3);
581
+ background-color: var(--tl-color-panel);
582
+ box-shadow: var(--tl-shadow-3);
583
+ }
584
+
585
+ @media (max-height: 600px) {
586
+ .tlui-menu {
587
+ max-height: 70vh;
588
+ }
559
589
  }
560
590
 
561
591
  .tlui-menu::-webkit-scrollbar {
@@ -573,7 +603,7 @@
573
603
  }
574
604
 
575
605
  .tlui-menu__group {
576
- border-bottom: 1px solid var(--color-divider);
606
+ border-bottom: 1px solid var(--tl-color-divider);
577
607
  }
578
608
  .tlui-menu__group:nth-last-of-type(1) {
579
609
  border-bottom: none;
@@ -583,23 +613,23 @@
583
613
 
584
614
  .tlui-menu__submenu__trigger[data-state='open']::after {
585
615
  opacity: 1;
586
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
616
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
587
617
  }
588
618
 
589
619
  .tlui-menu__submenu__trigger[data-direction='left'][data-state='open']::after {
590
620
  opacity: 1;
591
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
621
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
592
622
  }
593
623
 
594
624
  @media (hover: hover) {
595
625
  .tlui-menu__submenu__trigger[data-state='open']:not(:hover)::after {
596
626
  opacity: 1;
597
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
627
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
598
628
  }
599
629
 
600
630
  .tlui-menu__submenu__trigger[data-direction='left'][data-state='open']:not(:hover)::after {
601
631
  opacity: 1;
602
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
632
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
603
633
  }
604
634
  }
605
635
 
@@ -624,7 +654,7 @@
624
654
  .tlui-menu-click-capture {
625
655
  position: fixed;
626
656
  inset: 0;
627
- z-index: var(--layer-menu-click-capture);
657
+ z-index: var(--tl-layer-menu-click-capture);
628
658
  }
629
659
 
630
660
  /* --------------------- Popover -------------------- */
@@ -640,10 +670,10 @@
640
670
  max-height: calc(var(--radix-popover-content-available-height) - 8px);
641
671
  margin: 0px;
642
672
  border: none;
643
- border-radius: var(--radius-3);
644
- background-color: var(--color-panel);
645
- box-shadow: var(--shadow-3);
646
- z-index: var(--layer-menus);
673
+ border-radius: var(--tl-radius-3);
674
+ background-color: var(--tl-color-panel);
675
+ box-shadow: var(--tl-shadow-3);
676
+ z-index: var(--tl-layer-menus);
647
677
  overflow: hidden;
648
678
  overflow-y: auto;
649
679
  touch-action: auto;
@@ -656,22 +686,22 @@
656
686
 
657
687
  .tlui-menu-zone {
658
688
  position: relative;
659
- z-index: var(--layer-panels);
689
+ z-index: var(--tl-layer-panels);
660
690
  width: fit-content;
661
- border-right: 2px solid var(--color-background);
662
- border-bottom: 2px solid var(--color-background);
663
- border-bottom-right-radius: var(--radius-4);
664
- background-color: var(--color-low);
691
+ border-right: 2px solid var(--tl-color-background);
692
+ border-bottom: 2px solid var(--tl-color-background);
693
+ border-bottom-right-radius: var(--tl-radius-4);
694
+ background-color: var(--tl-color-low);
665
695
  }
666
696
 
667
697
  .tlui-menu-zone *[data-state='open']::after {
668
- background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
698
+ background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
669
699
  opacity: 1;
670
700
  }
671
701
 
672
702
  @media (hover: hover) {
673
703
  .tlui-menu-zone *[data-state='open']:not(:hover)::after {
674
- background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
704
+ background: linear-gradient(180deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
675
705
  opacity: 1;
676
706
  }
677
707
  }
@@ -697,8 +727,8 @@
697
727
  align-items: center;
698
728
  width: 100%;
699
729
  height: 40px;
700
- padding-left: var(--space-4);
701
- border-bottom: 1px solid var(--color-divider);
730
+ padding-left: var(--tl-space-4);
731
+ border-bottom: 1px solid var(--tl-color-divider);
702
732
  }
703
733
 
704
734
  .tlui-page-menu__header > .tlui-button:nth-of-type(1) {
@@ -706,7 +736,7 @@
706
736
  }
707
737
 
708
738
  .tlui-page-menu__header__title {
709
- color: var(--color-text);
739
+ color: var(--tl-color-text);
710
740
  font-size: 12px;
711
741
  flex-grow: 2;
712
742
  }
@@ -791,7 +821,7 @@
791
821
  display: inline-flex;
792
822
  align-items: center;
793
823
  justify-content: center;
794
- color: var(--color-text);
824
+ color: var(--tl-color-text);
795
825
  }
796
826
 
797
827
  .tlui-page_menu__item__sortable {
@@ -804,7 +834,7 @@
804
834
  flex-direction: row;
805
835
  align-items: center;
806
836
  overflow: hidden;
807
- z-index: var(--layer-above);
837
+ z-index: var(--tl-layer-above);
808
838
  }
809
839
 
810
840
  .tlui-page_menu__item__sortable__title {
@@ -816,7 +846,7 @@
816
846
  }
817
847
 
818
848
  .tlui-page_menu__item__sortable:focus-visible {
819
- z-index: var(--layer-focused-input);
849
+ z-index: var(--tl-layer-focused-input);
820
850
  }
821
851
 
822
852
  .tlui-page_menu__item__sortable__handle {
@@ -825,7 +855,7 @@
825
855
  min-width: 0px;
826
856
  height: 40px;
827
857
  cursor: grab;
828
- color: var(--color-text-3);
858
+ color: var(--tl-color-text-3);
829
859
  flex-shrink: 0;
830
860
  margin-right: -9px;
831
861
  }
@@ -867,13 +897,13 @@
867
897
  }
868
898
 
869
899
  .tlui-page_menu__item__submenu > .tlui-button[data-state='open']::after {
870
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
900
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
871
901
  opacity: 1;
872
902
  }
873
903
 
874
904
  @media (hover: hover) {
875
905
  .tlui-page_menu__item__submenu > .tlui-button[data-state='open']:not(:hover)::after {
876
- background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
906
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
877
907
  opacity: 1;
878
908
  }
879
909
  }
@@ -909,7 +939,7 @@
909
939
  top: 48px;
910
940
  left: -9999px;
911
941
  padding: 8px 16px;
912
- z-index: var(--layer-toasts);
942
+ z-index: var(--tl-layer-toasts);
913
943
  }
914
944
 
915
945
  .tl-skip-to-main-content:focus {
@@ -921,11 +951,11 @@
921
951
  .tlui-offline-indicator {
922
952
  display: flex;
923
953
  flex-direction: row;
924
- gap: var(--space-3);
925
- color: var(--color-text);
926
- background-color: var(--color-low);
927
- border: 3px solid var(--color-background);
928
- padding: 0px var(--space-5);
954
+ gap: var(--tl-space-3);
955
+ color: var(--tl-color-text);
956
+ background-color: var(--tl-color-low);
957
+ border: 3px solid var(--tl-color-background);
958
+ padding: 0px var(--tl-space-5);
929
959
  height: 42px;
930
960
  align-items: center;
931
961
  justify-content: center;
@@ -940,10 +970,10 @@
940
970
  /* ------------------- Style panel ------------------ */
941
971
 
942
972
  .tlui-style-panel__wrapper {
943
- box-shadow: var(--shadow-2);
944
- border-radius: var(--radius-3);
973
+ box-shadow: var(--tl-shadow-2);
974
+ border-radius: var(--tl-radius-3);
945
975
  pointer-events: all;
946
- background-color: var(--color-panel);
976
+ background-color: var(--tl-color-panel);
947
977
  height: fit-content;
948
978
  max-height: 100%;
949
979
  margin: 8px;
@@ -952,7 +982,7 @@
952
982
  overscroll-behavior: none;
953
983
  overflow-y: auto;
954
984
  overflow-x: hidden;
955
- color: var(--color-text);
985
+ color: var(--tl-color-text);
956
986
  }
957
987
  /* if the style panel is the only child (ie no share menu), increase the margin */
958
988
  .tlui-style-panel__wrapper:only-child {
@@ -961,7 +991,7 @@
961
991
 
962
992
  .tlui-style-panel {
963
993
  position: relative;
964
- z-index: var(--layer-panels);
994
+ z-index: var(--tl-layer-panels);
965
995
  pointer-events: all;
966
996
  width: 148px;
967
997
  max-width: 148px;
@@ -969,7 +999,7 @@
969
999
 
970
1000
  .tlui-style-panel[data-show-ui-labels='true'] .tlui-button[data-isactive='true'] {
971
1001
  border-radius: 10px;
972
- outline: 2px solid var(--color-text);
1002
+ outline: 2px solid var(--tl-color-text);
973
1003
  outline-offset: -5px;
974
1004
  }
975
1005
 
@@ -987,29 +1017,56 @@
987
1017
  flex-direction: column;
988
1018
  }
989
1019
 
990
- .tlui-style-panel__section:nth-of-type(n + 2):not(:last-child) {
991
- border-bottom: 1px solid var(--color-divider);
1020
+ /*
1021
+ add a border to the bottom of all but the last section. we have to handle empty sections too, which
1022
+ are hidden and shouldn't be counted
1023
+ */
1024
+ .tlui-style-panel__section:not(:nth-last-child(-n + 1 of .tlui-style-panel__section:not(:empty))) {
1025
+ border-bottom: 1px solid var(--tl-color-divider);
1026
+ }
1027
+ /*
1028
+ if a section ends with a slider and we're adding a border, we need some extra space for visual
1029
+ balance. we need to handle empty sections as above. is this the most complex css selector in all of
1030
+ tldraw? probably.
1031
+ */
1032
+ .tlui-style-panel__section:has(.tlui-slider__container:last-child):not(
1033
+ :nth-last-child(-n + 1 of .tlui-style-panel__section:not(:empty))
1034
+ ) {
1035
+ margin-bottom: 7px;
992
1036
  }
993
1037
 
994
1038
  .tlui-style-panel__section:empty {
995
1039
  display: none;
996
1040
  }
997
1041
 
1042
+ /*
1043
+ * This is used in a couple places, like Align and Vertical Align.
1044
+ * It's because we have a toolbar with a Toggle Group but then an adjacent button
1045
+ * next to it that opens a popup.
1046
+ */
1047
+ .tlui-style-panel__section .tlui-toolbar:has(.tlui-toolbar) {
1048
+ flex-wrap: wrap;
1049
+ }
1050
+
1051
+ .tlui-style-panel__section .tlui-toolbar:has(.tlui-toolbar) .tlui-style-panel__subheading {
1052
+ margin-left: -2px;
1053
+ }
1054
+
998
1055
  .tlui-style-panel__section__common:not(:only-child) {
999
1056
  margin-bottom: 7px;
1000
- border-bottom: 1px solid var(--color-divider);
1057
+ border-bottom: 1px solid var(--tl-color-divider);
1001
1058
  }
1002
1059
 
1003
1060
  .tlui-style-panel__dropdown-picker:only-child {
1004
- width: 100%;
1061
+ flex: 1;
1005
1062
  }
1006
1063
 
1007
1064
  .tlui-style-panel__double-select-picker {
1008
1065
  display: flex;
1009
1066
  grid-template-columns: 1fr auto;
1010
1067
  align-items: center;
1011
- padding-left: var(--space-4);
1012
- color: var(--color-text-1);
1068
+ padding-left: var(--tl-space-4);
1069
+ color: var(--tl-color-text-1);
1013
1070
  font-size: 12px;
1014
1071
  }
1015
1072
 
@@ -1023,13 +1080,16 @@
1023
1080
 
1024
1081
  .tlui-style-panel .tlui-button[data-state='open']::after {
1025
1082
  opacity: 1;
1026
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1083
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1027
1084
  }
1028
1085
 
1029
1086
  @media (hover: hover) {
1087
+ .tlui-style-panel .tlui-button[aria-expanded='true'] {
1088
+ background: none;
1089
+ }
1030
1090
  .tlui-style-panel .tlui-button[data-state='open']:not(:hover)::after {
1031
1091
  opacity: 1;
1032
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1092
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1033
1093
  }
1034
1094
  }
1035
1095
 
@@ -1039,14 +1099,14 @@
1039
1099
  .tlui-style-panel__section__common .tlui-style-panel__subheading,
1040
1100
  .tlui-style-panel__subheading + .tlui-slider__container {
1041
1101
  margin: 0;
1042
- padding: var(--space-2) var(--space-3) 0px var(--space-4);
1102
+ padding: var(--tl-space-2) var(--tl-space-3) 0px var(--tl-space-4);
1043
1103
  font-size: 12px;
1044
1104
  font-weight: inherit;
1045
1105
  line-height: inherit;
1046
1106
  }
1047
1107
 
1048
1108
  .tlui-style-panel .tlui-style-panel__subheading:nth-of-type(1) {
1049
- padding-top: var(--space-3);
1109
+ padding-top: var(--tl-space-3);
1050
1110
  }
1051
1111
 
1052
1112
  .tlui-style-panel__subheading + .tlui-slider__container {
@@ -1057,11 +1117,11 @@
1057
1117
 
1058
1118
  .tlui-layout__bottom {
1059
1119
  grid-row: 2;
1120
+ width: 100%;
1060
1121
  }
1061
1122
 
1062
1123
  .tlui-layout__bottom__main {
1063
1124
  width: 100%;
1064
- position: relative;
1065
1125
  display: flex;
1066
1126
  align-items: flex-end;
1067
1127
  justify-content: center;
@@ -1073,11 +1133,10 @@
1073
1133
  display: flex;
1074
1134
  width: min-content;
1075
1135
  flex-direction: column;
1076
- z-index: var(--layer-panels);
1136
+ z-index: var(--tl-layer-panels);
1077
1137
  pointer-events: all;
1078
1138
  position: absolute;
1079
1139
  left: 0px;
1080
- bottom: 0px;
1081
1140
  }
1082
1141
 
1083
1142
  .tlui-navigation-panel::before {
@@ -1087,10 +1146,10 @@
1087
1146
  z-index: -1;
1088
1147
  inset: -2px -2px 0px 0px;
1089
1148
  border-radius: 0;
1090
- border-top: 2px solid var(--color-background);
1091
- border-right: 2px solid var(--color-background);
1092
- border-top-right-radius: var(--radius-4);
1093
- background-color: var(--color-low);
1149
+ border-top: 2px solid var(--tl-color-background);
1150
+ border-right: 2px solid var(--tl-color-background);
1151
+ border-top-right-radius: var(--tl-radius-4);
1152
+ background-color: var(--tl-color-low);
1094
1153
  }
1095
1154
 
1096
1155
  .tlui-navigation-panel[data-a11y='true']::before {
@@ -1104,7 +1163,7 @@
1104
1163
  height: 96px;
1105
1164
  min-height: 96px;
1106
1165
  overflow: hidden;
1107
- padding: var(--space-3);
1166
+ padding: var(--tl-space-3);
1108
1167
  padding-top: 0px;
1109
1168
  }
1110
1169
 
@@ -1124,7 +1183,23 @@
1124
1183
  align-items: center;
1125
1184
  justify-content: center;
1126
1185
  flex-grow: 2;
1127
- padding-bottom: calc(var(--space-3) + var(--sab));
1186
+ }
1187
+
1188
+ .tlui-main-toolbar--horizontal {
1189
+ padding-bottom: calc(var(--tl-space-3) + var(--tl-sab));
1190
+ max-width: 100%;
1191
+ }
1192
+
1193
+ .tlui-main-toolbar--vertical {
1194
+ position: absolute;
1195
+ left: 0;
1196
+ top: 90px; /* height of page menu + 'back to content' button */
1197
+ bottom: 140px; /* height of expanded mini-map */
1198
+ padding-left: calc(var(--tl-space-3) + var(--tl-sab));
1199
+ }
1200
+
1201
+ [data-breakpoints-below*='6'] .tlui-main-toolbar--vertical {
1202
+ bottom: 90px; /* collapsed mini-map, but same as top to keep things looking even */
1128
1203
  }
1129
1204
 
1130
1205
  /* Centered Content */
@@ -1132,73 +1207,145 @@
1132
1207
  position: relative;
1133
1208
  width: fit-content;
1134
1209
  display: flex;
1135
- gap: var(--space-3);
1136
- align-items: flex-end;
1210
+ gap: var(--tl-space-3);
1211
+ align-items: flex-start;
1137
1212
  }
1138
1213
 
1139
- .tlui-main-toolbar__left {
1214
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__inner {
1215
+ flex-direction: column;
1216
+ }
1217
+
1218
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__left {
1140
1219
  width: fit-content;
1141
1220
  }
1221
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__left {
1222
+ display: flex;
1223
+ height: fit-content;
1224
+ }
1142
1225
 
1143
1226
  /* Row of controls + lock button */
1144
1227
  .tlui-main-toolbar__extras {
1145
1228
  position: relative;
1146
- z-index: var(--layer-above);
1147
- width: 100%;
1229
+ z-index: var(--tl-layer-above);
1148
1230
  pointer-events: none;
1149
- top: 6px;
1150
- height: 48px;
1231
+ align-self: stretch;
1151
1232
  }
1152
1233
 
1153
1234
  .tlui-main-toolbar__extras:empty {
1154
1235
  display: none;
1155
1236
  }
1156
1237
 
1238
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras {
1239
+ height: 48px;
1240
+ top: 6px;
1241
+ }
1242
+
1243
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras {
1244
+ width: 48px;
1245
+ order: 1;
1246
+ }
1247
+
1157
1248
  .tlui-main-toolbar__extras__controls {
1158
- display: flex;
1159
1249
  position: relative;
1160
- flex-direction: row;
1161
- z-index: var(--layer-above);
1162
- background-color: var(--color-low);
1163
- border-top-left-radius: var(--radius-4);
1164
- border-top-right-radius: var(--radius-4);
1165
- border: 2px solid var(--color-background);
1250
+ z-index: var(--tl-layer-above);
1251
+ background-color: var(--tl-color-low);
1252
+ border: 2px solid var(--tl-color-background);
1253
+ pointer-events: all;
1254
+ }
1255
+
1256
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras__controls {
1257
+ border-top-left-radius: var(--tl-radius-4);
1258
+ border-top-right-radius: var(--tl-radius-4);
1166
1259
  margin-left: 8px;
1167
1260
  margin-right: 0px;
1168
- pointer-events: all;
1261
+ width: fit-content;
1262
+ }
1263
+
1264
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras__controls {
1265
+ border-top-right-radius: var(--tl-radius-4);
1266
+ border-bottom-right-radius: var(--tl-radius-4);
1267
+ margin-top: 8px;
1268
+ margin-left: -2px;
1269
+ margin-bottom: 0px;
1169
1270
  width: fit-content;
1170
1271
  }
1171
1272
 
1172
1273
  .tlui-main-toolbar__tools {
1173
- display: flex;
1174
- flex-direction: row;
1175
- align-items: center;
1176
- border-radius: var(--radius-4);
1177
- z-index: var(--layer-panels);
1274
+ border-radius: var(--tl-radius-4);
1275
+ z-index: var(--tl-layer-panels);
1178
1276
  pointer-events: all;
1179
1277
  position: relative;
1180
- background: var(--color-panel);
1181
- box-shadow: var(--shadow-2);
1278
+ background: var(--tl-color-panel);
1279
+ box-shadow: var(--tl-shadow-2);
1182
1280
  }
1183
1281
 
1184
- .tlui-main-toolbar__overflow {
1282
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__mobile-style-panel {
1283
+ align-self: flex-end;
1284
+ }
1285
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__mobile-style-panel {
1286
+ align-self: flex-start;
1287
+ }
1288
+
1289
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1185
1290
  width: 40px;
1186
1291
  margin-left: 2px;
1187
1292
  }
1293
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__overflow {
1294
+ height: 40px;
1295
+ margin-top: 2px;
1296
+ }
1188
1297
 
1189
- .tlui-layout__mobile .tlui-main-toolbar__overflow {
1298
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1190
1299
  width: 32px;
1191
1300
  padding: 0px;
1192
1301
  }
1193
1302
 
1194
- .tlui-main-toolbar *[data-state='open']::after {
1195
- background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1303
+ .tlui-main-toolbar--horizontal *[data-state='open']::after {
1304
+ background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1196
1305
  opacity: 1;
1197
1306
  }
1307
+ .tlui-main-toolbar--vertical *[data-state='open']::after {
1308
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1309
+ opacity: 1;
1310
+ }
1311
+
1312
+ .tlui-main-toolbar__overflow-content {
1313
+ touch-action: none;
1314
+ }
1315
+
1316
+ .tlui-main-toolbar__tools [data-toolbar-visible='false'],
1317
+ .tlui-main-toolbar__overflow-content [data-toolbar-visible='false'] {
1318
+ display: none;
1319
+ }
1320
+
1321
+ .tlui-main-toolbar__group:empty {
1322
+ display: none;
1323
+ }
1324
+ .tlui-row.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1325
+ border-right: 1px solid var(--color-divider);
1326
+ margin-right: 2px;
1327
+ }
1328
+ .tlui-column.tlui-main-toolbar__group:not(
1329
+ :nth-last-child(-n + 1 of [data-toolbar-visible='true'])
1330
+ ) {
1331
+ border-bottom: 1px solid var(--color-divider);
1332
+ margin-bottom: 2px;
1333
+ }
1334
+ .tlui-grid.tlui-main-toolbar__group {
1335
+ grid-column: 1 / span 4;
1336
+ }
1337
+ .tlui-grid.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1338
+ border-bottom: 1px solid var(--color-divider);
1339
+ margin-bottom: 2px;
1340
+ }
1198
1341
 
1199
1342
  @media (hover: hover) {
1200
- .tlui-main-toolbar *[data-state='open']:not(:hover)::after {
1201
- background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1343
+ .tlui-main-toolbar--horizontal *[data-state='open']:not(:hover)::after {
1344
+ background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1345
+ opacity: 1;
1346
+ }
1347
+ .tlui-main-toolbar--vertical *[data-state='open']:not(:hover)::after {
1348
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1202
1349
  opacity: 1;
1203
1350
  }
1204
1351
  }
@@ -1209,44 +1356,40 @@
1209
1356
  font-size: 12px;
1210
1357
  padding: 2px 8px;
1211
1358
  border-radius: 4px;
1212
- background-color: var(--color-tooltip);
1359
+ background-color: var(--tl-color-tooltip);
1213
1360
  box-shadow: none;
1214
- color: var(--color-text-shadow);
1361
+ color: var(--tl-color-text-shadow);
1215
1362
  max-width: 400px;
1216
1363
  width: fit-content;
1217
1364
  text-align: center;
1218
- pointer-events: none;
1219
1365
  will-change: transform, opacity;
1220
1366
  z-index: 2;
1221
1367
  }
1222
1368
 
1223
1369
  .tlui-tooltip__arrow {
1224
- fill: var(--color-tooltip);
1370
+ fill: var(--tl-color-tooltip);
1225
1371
  will-change: opacity;
1226
1372
  }
1227
1373
 
1228
1374
  [data-radix-popper-content-wrapper]:has(.tlui-tooltip) {
1229
- z-index: var(--layer-toasts) !important;
1230
- }
1231
-
1232
- [data-radix-popper-content-wrapper]:has(.tlui-tooltip[data-should-animate='true']) {
1233
- transition: all 0.1s ease-out;
1375
+ z-index: var(--tl-layer-toasts) !important;
1376
+ pointer-events: none;
1234
1377
  }
1235
1378
 
1236
1379
  /* ------------------- Debug panel ------------------ */
1237
1380
 
1238
1381
  .tlui-debug-panel {
1239
- background-color: var(--color-low);
1382
+ background-color: var(--tl-color-low);
1240
1383
  width: 100%;
1241
1384
  display: grid;
1242
1385
  align-items: center;
1243
1386
  grid-template-columns: 1fr auto auto auto;
1244
1387
  justify-content: space-between;
1245
- padding-left: var(--space-4);
1246
- border-top: 1px solid var(--color-background);
1388
+ padding-left: var(--tl-space-4);
1389
+ border-top: 1px solid var(--tl-color-background);
1247
1390
  font-size: 12px;
1248
- color: var(--color-text-1);
1249
- z-index: var(--layer-panels);
1391
+ color: var(--tl-color-text-1);
1392
+ z-index: var(--tl-layer-panels);
1250
1393
  pointer-events: all;
1251
1394
  }
1252
1395
 
@@ -1262,7 +1405,7 @@
1262
1405
 
1263
1406
  .tlui-debug-panel__fps__slow {
1264
1407
  font-weight: bold;
1265
- color: var(--color-danger);
1408
+ color: var(--tl-color-danger);
1266
1409
  }
1267
1410
 
1268
1411
  .tlui-a11y-audit {
@@ -1272,7 +1415,7 @@
1272
1415
  .tlui-a11y-audit th,
1273
1416
  .tlui-a11y-audit td {
1274
1417
  padding: 8px;
1275
- border: 1px solid var(--color-low-border);
1418
+ border: 1px solid var(--tl-color-low-border);
1276
1419
  }
1277
1420
 
1278
1421
  /* --------------------- Toasts --------------------- */
@@ -1285,10 +1428,10 @@
1285
1428
  align-items: flex-end;
1286
1429
  justify-content: flex-end;
1287
1430
  flex-direction: column;
1288
- gap: var(--space-3);
1431
+ gap: var(--tl-space-3);
1289
1432
  pointer-events: none;
1290
- padding: 0px var(--space-3) 64px 0px;
1291
- z-index: var(--layer-toasts);
1433
+ padding: 0px var(--tl-space-3) 64px 0px;
1434
+ z-index: var(--tl-layer-toasts);
1292
1435
  }
1293
1436
 
1294
1437
  .tlui-toast__viewport > * {
@@ -1297,34 +1440,34 @@
1297
1440
 
1298
1441
  .tlui-toast__icon {
1299
1442
  padding-top: 11px;
1300
- padding-left: var(--space-4);
1301
- color: var(--color-text-1);
1443
+ padding-left: var(--tl-space-4);
1444
+ color: var(--tl-color-text-1);
1302
1445
  }
1303
1446
 
1304
1447
  .tlui-toast__container {
1305
1448
  min-width: 200px;
1306
1449
  display: flex;
1307
1450
  flex-direction: row;
1308
- background-color: var(--color-panel);
1309
- box-shadow: var(--shadow-2);
1310
- border-radius: var(--radius-3);
1451
+ background-color: var(--tl-color-panel);
1452
+ box-shadow: var(--tl-shadow-2);
1453
+ border-radius: var(--tl-radius-3);
1311
1454
  font-size: 12px;
1312
1455
  }
1313
1456
 
1314
1457
  .tlui-toast__container[data-severity='success'] .tlui-icon {
1315
- color: var(--color-success);
1458
+ color: var(--tl-color-success);
1316
1459
  }
1317
1460
 
1318
1461
  .tlui-toast__container[data-severity='info'] .tlui-icon {
1319
- color: var(--color-info);
1462
+ color: var(--tl-color-info);
1320
1463
  }
1321
1464
 
1322
1465
  .tlui-toast__container[data-severity='warning'] .tlui-icon {
1323
- color: var(--color-warning);
1466
+ color: var(--tl-color-warning);
1324
1467
  }
1325
1468
 
1326
1469
  .tlui-toast__container[data-severity='error'] .tlui-icon {
1327
- color: var(--color-danger);
1470
+ color: var(--tl-color-danger);
1328
1471
  }
1329
1472
 
1330
1473
  .tlui-toast__main {
@@ -1333,27 +1476,27 @@
1333
1476
  }
1334
1477
 
1335
1478
  .tlui-toast__content {
1336
- padding: var(--space-4);
1479
+ padding: var(--tl-space-4);
1337
1480
  display: flex;
1338
1481
  line-height: 1.4;
1339
1482
  flex-direction: column;
1340
- gap: var(--space-3);
1483
+ gap: var(--tl-space-3);
1341
1484
  }
1342
1485
 
1343
1486
  .tlui-toast__main[data-actions='true'] .tlui-toast__content {
1344
- padding-bottom: var(--space-2);
1487
+ padding-bottom: var(--tl-space-2);
1345
1488
  }
1346
1489
 
1347
1490
  .tlui-toast__title {
1348
1491
  font-weight: bold;
1349
- color: var(--color-text-1);
1492
+ color: var(--tl-color-text-1);
1350
1493
  /* this makes the default toast look better */
1351
1494
  line-height: 16px;
1352
1495
  }
1353
1496
 
1354
1497
  .tlui-toast__description {
1355
- color: var(--color-text-1);
1356
- padding: var(--space-3);
1498
+ color: var(--tl-color-text-1);
1499
+ padding: var(--tl-space-3);
1357
1500
  margin: 0px;
1358
1501
  padding: 0px;
1359
1502
  }
@@ -1405,14 +1548,14 @@
1405
1548
  left: 0px;
1406
1549
  width: 100%;
1407
1550
  height: 100%;
1408
- z-index: var(--layer-canvas-overlays);
1409
- background-color: var(--color-overlay);
1551
+ z-index: var(--tl-layer-canvas-overlays);
1552
+ background-color: var(--tl-color-overlay);
1410
1553
  pointer-events: all;
1411
1554
  animation: tl-fade-in 0.12s ease-out;
1412
1555
  display: grid;
1413
1556
  place-items: center;
1414
1557
  overflow-y: auto;
1415
- padding: 0px var(--space-3);
1558
+ padding: 0px var(--tl-space-3);
1416
1559
  }
1417
1560
 
1418
1561
  .tlui-dialog__content {
@@ -1420,9 +1563,9 @@
1420
1563
  flex-direction: column;
1421
1564
  position: relative;
1422
1565
  cursor: default;
1423
- background-color: var(--color-panel);
1424
- box-shadow: var(--shadow-3);
1425
- border-radius: var(--radius-3);
1566
+ background-color: var(--tl-color-panel);
1567
+ box-shadow: var(--tl-shadow-3);
1568
+ border-radius: var(--tl-radius-3);
1426
1569
  font-size: 12px;
1427
1570
  overflow: hidden;
1428
1571
  min-width: 300px;
@@ -1435,9 +1578,9 @@
1435
1578
  display: flex;
1436
1579
  align-items: center;
1437
1580
  flex: 0;
1438
- z-index: var(--layer-header-footer);
1439
- padding-left: var(--space-4);
1440
- color: var(--color-text);
1581
+ z-index: var(--tl-layer-header-footer);
1582
+ padding-left: var(--tl-space-4);
1583
+ color: var(--tl-color-text);
1441
1584
  height: 40px;
1442
1585
  }
1443
1586
 
@@ -1446,7 +1589,7 @@
1446
1589
  font-weight: inherit;
1447
1590
  font-size: 12px;
1448
1591
  margin: 0px;
1449
- color: var(--color-text-1);
1592
+ color: var(--tl-color-text-1);
1450
1593
  }
1451
1594
 
1452
1595
  .tlui-dialog__header__close {
@@ -1454,16 +1597,16 @@
1454
1597
  }
1455
1598
 
1456
1599
  .tlui-dialog__body {
1457
- padding: var(--space-4) var(--space-4);
1600
+ padding: var(--tl-space-4) var(--tl-space-4);
1458
1601
  flex: 0 1;
1459
1602
  overflow-y: auto;
1460
1603
  overflow-x: hidden;
1461
- color: var(--color-text-1);
1604
+ color: var(--tl-color-text-1);
1462
1605
  user-select: all;
1463
1606
  -webkit-user-select: text;
1464
1607
  }
1465
1608
  .tlui-dialog__body a {
1466
- color: var(--color-selected);
1609
+ color: var(--tl-color-selected);
1467
1610
  }
1468
1611
 
1469
1612
  .tlui-dialog__body ul,
@@ -1471,13 +1614,13 @@
1471
1614
  padding-left: 16px;
1472
1615
  display: flex;
1473
1616
  flex-direction: column;
1474
- gap: var(--space-2);
1617
+ gap: var(--tl-space-2);
1475
1618
  }
1476
1619
 
1477
1620
  .tlui-dialog__footer {
1478
1621
  position: relative;
1479
1622
  min-height: 12px;
1480
- z-index: var(--layer-header-footer);
1623
+ z-index: var(--tl-layer-header-footer);
1481
1624
  }
1482
1625
 
1483
1626
  .tlui-dialog__footer__actions {
@@ -1497,15 +1640,15 @@
1497
1640
  .tlui-edit-link-dialog {
1498
1641
  display: flex;
1499
1642
  flex-direction: column;
1500
- gap: var(--space-4);
1501
- color: var(--color-text);
1643
+ gap: var(--tl-space-4);
1644
+ color: var(--tl-color-text);
1502
1645
  }
1503
1646
 
1504
1647
  .tlui-edit-link-dialog__input {
1505
- background-color: var(--color-muted-2);
1648
+ background-color: var(--tl-color-muted-2);
1506
1649
  flex-grow: 2;
1507
- border-radius: var(--radius-2);
1508
- padding: 0px var(--space-4);
1650
+ border-radius: var(--tl-radius-2);
1651
+ padding: 0px var(--tl-space-4);
1509
1652
  }
1510
1653
 
1511
1654
  /* Embed Dialog */
@@ -1513,15 +1656,15 @@
1513
1656
  .tlui-embed__spacer {
1514
1657
  flex-grow: 2;
1515
1658
  min-height: 0px;
1516
- margin-left: calc(-1 * var(--space-4));
1517
- margin-top: calc(-1 * var(--space-4));
1659
+ margin-left: calc(-1 * var(--tl-space-4));
1660
+ margin-top: calc(-1 * var(--tl-space-4));
1518
1661
  pointer-events: none;
1519
1662
  }
1520
1663
 
1521
1664
  .tlui-embed-dialog__list {
1522
1665
  display: flex;
1523
1666
  flex-direction: column;
1524
- padding: 0px var(--space-3) var(--space-4) var(--space-3);
1667
+ padding: 0px var(--tl-space-3) var(--tl-space-4) var(--tl-space-3);
1525
1668
  }
1526
1669
 
1527
1670
  .tlui-embed-dialog__item__image {
@@ -1533,49 +1676,49 @@
1533
1676
  background-size: contain;
1534
1677
  background-repeat: no-repeat;
1535
1678
  background-position: center center;
1536
- background-color: var(--color-selected-contrast);
1537
- border-radius: var(--radius-1);
1679
+ background-color: var(--tl-color-selected-contrast);
1680
+ border-radius: var(--tl-radius-1);
1538
1681
  }
1539
1682
 
1540
1683
  .tlui-embed-dialog__enter {
1541
1684
  display: flex;
1542
1685
  flex-direction: column;
1543
- gap: var(--space-4);
1544
- color: var(--color-text-1);
1686
+ gap: var(--tl-space-4);
1687
+ color: var(--tl-color-text-1);
1545
1688
  }
1546
1689
 
1547
1690
  .tlui-embed-dialog__input {
1548
- background-color: var(--color-muted-2);
1691
+ background-color: var(--tl-color-muted-2);
1549
1692
  flex-grow: 2;
1550
- border-radius: var(--radius-2);
1551
- padding: 0px var(--space-4);
1693
+ border-radius: var(--tl-radius-2);
1694
+ padding: 0px var(--tl-space-4);
1552
1695
  }
1553
1696
 
1554
1697
  .tlui-embed-dialog__warning {
1555
- color: var(--color-danger);
1698
+ color: var(--tl-color-danger);
1556
1699
  text-shadow: none;
1557
1700
  }
1558
1701
 
1559
1702
  .tlui-embed-dialog__instruction__link {
1560
1703
  display: flex;
1561
- gap: var(--space-1);
1562
- margin-top: var(--space-4);
1704
+ gap: var(--tl-space-1);
1705
+ margin-top: var(--tl-space-4);
1563
1706
  }
1564
1707
 
1565
1708
  .tlui-embed-dialog__enter a {
1566
- color: var(--color-text-1);
1709
+ color: var(--tl-color-text-1);
1567
1710
  }
1568
1711
 
1569
1712
  /* --------------- Keyboard shortcuts --------------- */
1570
1713
 
1571
1714
  .tlui-shortcuts-dialog__header {
1572
- border-bottom: 1px solid var(--color-divider);
1715
+ border-bottom: 1px solid var(--tl-color-divider);
1573
1716
  }
1574
1717
 
1575
1718
  .tlui-shortcuts-dialog__body {
1576
1719
  position: relative;
1577
1720
  columns: 3;
1578
- column-gap: var(--space-9);
1721
+ column-gap: var(--tl-space-9);
1579
1722
  pointer-events: all;
1580
1723
  touch-action: auto;
1581
1724
 
@@ -1593,14 +1736,14 @@
1593
1736
 
1594
1737
  .tlui-shortcuts-dialog__group {
1595
1738
  break-inside: avoid-column;
1596
- padding-bottom: var(--space-6);
1739
+ padding-bottom: var(--tl-space-6);
1597
1740
  }
1598
1741
 
1599
1742
  .tlui-shortcuts-dialog__group__title {
1600
1743
  font-size: inherit;
1601
1744
  font-weight: inherit;
1602
1745
  margin: 0px;
1603
- color: var(--color-text-3);
1746
+ color: var(--tl-color-text-3);
1604
1747
  height: 32px;
1605
1748
  display: flex;
1606
1749
  align-items: center;
@@ -1609,12 +1752,12 @@
1609
1752
  .tlui-shortcuts-dialog__group__content {
1610
1753
  display: flex;
1611
1754
  flex-direction: column;
1612
- color: var(--color-text-1);
1755
+ color: var(--tl-color-text-1);
1613
1756
  }
1614
1757
 
1615
1758
  .tlui-shortcuts-dialog__key-pair {
1616
1759
  display: flex;
1617
- gap: var(--space-4);
1760
+ gap: var(--tl-space-4);
1618
1761
  align-items: center;
1619
1762
  justify-content: space-between;
1620
1763
  height: 32px;
@@ -1641,12 +1784,12 @@
1641
1784
  height: 24px;
1642
1785
  background: linear-gradient(
1643
1786
  to bottom,
1644
- var(--color-panel-transparent) 0%,
1645
- var(--color-panel) 90%,
1646
- var(--color-panel) 100%
1787
+ var(--tl-color-panel-transparent) 0%,
1788
+ var(--tl-color-panel) 90%,
1789
+ var(--tl-color-panel) 100%
1647
1790
  );
1648
- border-bottom-left-radius: var(--radius-3);
1649
- border-bottom-right-radius: var(--radius-3);
1791
+ border-bottom-left-radius: var(--tl-radius-3);
1792
+ border-bottom-right-radius: var(--tl-radius-3);
1650
1793
  pointer-events: none;
1651
1794
  }
1652
1795
 
@@ -1661,10 +1804,10 @@
1661
1804
  .tlui-help-menu {
1662
1805
  pointer-events: all;
1663
1806
  position: absolute;
1664
- bottom: var(--space-2);
1665
- right: var(--space-2);
1666
- z-index: var(--layer-panels);
1667
- border: 2px solid var(--color-background);
1807
+ bottom: var(--tl-space-2);
1808
+ right: var(--tl-space-2);
1809
+ z-index: var(--tl-layer-panels);
1810
+ border: 2px solid var(--tl-color-background);
1668
1811
  border-radius: 100%;
1669
1812
  }
1670
1813
 
@@ -1675,7 +1818,7 @@
1675
1818
  display: flex;
1676
1819
  flex-direction: row;
1677
1820
  justify-content: flex-end;
1678
- z-index: var(--layer-panels);
1821
+ z-index: var(--tl-layer-panels);
1679
1822
  align-items: center;
1680
1823
  padding-top: 2px;
1681
1824
  padding-right: 4px;
@@ -1691,7 +1834,7 @@
1691
1834
  border: none;
1692
1835
  cursor: pointer;
1693
1836
  pointer-events: all;
1694
- border-radius: var(--radius-1);
1837
+ border-radius: var(--tl-radius-1);
1695
1838
  padding-right: 1px;
1696
1839
  height: 100%;
1697
1840
  }
@@ -1704,8 +1847,8 @@
1704
1847
  .tlui-people-menu__avatar {
1705
1848
  height: 24px;
1706
1849
  width: 24px;
1707
- border: 2px solid var(--color-background);
1708
- background-color: var(--color-low);
1850
+ border: 2px solid var(--tl-color-background);
1851
+ background-color: var(--tl-color-low);
1709
1852
  border-radius: 100%;
1710
1853
  display: flex;
1711
1854
  align-items: center;
@@ -1714,7 +1857,7 @@
1714
1857
  font-size: 10px;
1715
1858
  font-weight: bold;
1716
1859
  text-align: center;
1717
- color: var(--color-selected-contrast);
1860
+ color: var(--tl-color-selected-contrast);
1718
1861
  z-index: 2;
1719
1862
  }
1720
1863
 
@@ -1728,7 +1871,7 @@
1728
1871
 
1729
1872
  @media (hover: hover) {
1730
1873
  .tlui-people-menu__avatars-button:hover .tlui-people-menu__avatar {
1731
- border-color: var(--color-low);
1874
+ border-color: var(--tl-color-low);
1732
1875
  }
1733
1876
  }
1734
1877
 
@@ -1736,12 +1879,12 @@
1736
1879
  min-width: 0px;
1737
1880
  font-size: 11px;
1738
1881
  font-weight: 600;
1739
- color: var(--color-text-1);
1882
+ color: var(--tl-color-text-1);
1740
1883
  font-family: inherit;
1741
1884
  padding: 0px 4px;
1742
1885
  }
1743
1886
  .tlui-people-menu__more::after {
1744
- border-radius: var(--radius-2);
1887
+ border-radius: var(--tl-radius-2);
1745
1888
  inset: 0px;
1746
1889
  }
1747
1890
 
@@ -1770,7 +1913,7 @@
1770
1913
  }
1771
1914
 
1772
1915
  .tlui-people-menu__section:not(:last-child) {
1773
- border-bottom: 1px solid var(--color-divider);
1916
+ border-bottom: 1px solid var(--tl-color-divider);
1774
1917
  }
1775
1918
 
1776
1919
  .tlui-people-menu__user {
@@ -1789,7 +1932,7 @@
1789
1932
  text-overflow: ellipsis;
1790
1933
  white-space: nowrap;
1791
1934
  font-size: 12px;
1792
- color: var(--color-text-1);
1935
+ color: var(--tl-color-text-1);
1793
1936
  max-width: 100%;
1794
1937
  flex-grow: 1;
1795
1938
  flex-shrink: 100;
@@ -1801,7 +1944,7 @@
1801
1944
  text-overflow: ellipsis;
1802
1945
  white-space: nowrap;
1803
1946
  font-size: 12px;
1804
- color: var(--color-text-3);
1947
+ color: var(--tl-color-text-3);
1805
1948
  flex-grow: 100;
1806
1949
  flex-shrink: 0;
1807
1950
  margin-left: 4px;
@@ -1892,7 +2035,7 @@
1892
2035
  inset: 0px;
1893
2036
  border-width: 2px;
1894
2037
  border-style: solid;
1895
- z-index: var(--layer-following-indicator);
2038
+ z-index: var(--tl-layer-following-indicator);
1896
2039
  pointer-events: none;
1897
2040
  }
1898
2041
 
@@ -1911,7 +2054,7 @@
1911
2054
  }
1912
2055
 
1913
2056
  .tlui-contextual-toolbar [data-isactive='true']::after {
1914
- background-color: var(--color-muted-2);
2057
+ background-color: var(--tl-color-muted-2);
1915
2058
  opacity: 1;
1916
2059
  }
1917
2060
 
@@ -1927,7 +2070,7 @@
1927
2070
 
1928
2071
  .tlui-contextual-toolbar[data-visible='true'] {
1929
2072
  opacity: 1;
1930
- z-index: var(--layer-menus);
2073
+ z-index: var(--tl-layer-menus);
1931
2074
  }
1932
2075
 
1933
2076
  .tlui-contextual-toolbar[data-interactive='true'],
@@ -1986,7 +2129,7 @@
1986
2129
 
1987
2130
  @keyframes tlui-slide-in {
1988
2131
  from {
1989
- transform: translateX(calc(100% + var(--space-3)));
2132
+ transform: translateX(calc(100% + var(--tl-space-3)));
1990
2133
  }
1991
2134
  to {
1992
2135
  transform: translateX(0px);
@@ -1998,6 +2141,6 @@
1998
2141
  transform: translateX(var(--radix-toast-swipe-end-x));
1999
2142
  }
2000
2143
  to {
2001
- transform: translateX(calc(100% + var(--space-3)));
2144
+ transform: translateX(calc(100% + var(--tl-space-3)));
2002
2145
  }
2003
2146
  }