tldraw 3.16.0-canary.efdec30fc411 → 3.16.0-canary.f20b7a478e22

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 (466) hide show
  1. package/dist-cjs/index.d.ts +275 -110
  2. package/dist-cjs/index.js +36 -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/ArrowShapeUtil.js +3 -3
  11. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  12. package/dist-cjs/lib/shapes/arrow/arrowLabel.js +6 -0
  13. package/dist-cjs/lib/shapes/arrow/arrowLabel.js.map +3 -3
  14. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js +3 -3
  15. package/dist-cjs/lib/shapes/arrow/elbow/ElbowArrowDebug.js.map +1 -1
  16. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js +4 -4
  17. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js.map +2 -2
  18. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +3 -3
  19. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  20. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js +1 -1
  21. package/dist-cjs/lib/shapes/embed/EmbedShapeUtil.js.map +1 -1
  22. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +20 -13
  23. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  24. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js +1 -1
  25. package/dist-cjs/lib/shapes/frame/components/FrameHeading.js.map +2 -2
  26. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +2 -2
  27. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +2 -2
  28. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +3 -2
  29. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  30. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +2 -1
  31. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
  32. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +5 -1
  33. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  34. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js +6 -3
  35. package/dist-cjs/lib/shapes/image/ImageShapeUtil.js.map +2 -2
  36. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +5 -1
  37. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  38. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +6 -5
  39. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  40. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js +4 -4
  41. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js.map +2 -2
  42. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js +1 -3
  43. package/dist-cjs/lib/shapes/shared/PlainTextLabel.js.map +2 -2
  44. package/dist-cjs/lib/shapes/shared/ShapeFill.js +4 -4
  45. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  46. package/dist-cjs/lib/shapes/shared/freehand/svg.js.map +2 -2
  47. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js +3 -4
  48. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js.map +2 -2
  49. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js +0 -2
  50. package/dist-cjs/lib/shapes/shared/useImageOrVideoAsset.js.map +2 -2
  51. package/dist-cjs/lib/shapes/text/PlainTextArea.js +2 -2
  52. package/dist-cjs/lib/shapes/text/PlainTextArea.js.map +2 -2
  53. package/dist-cjs/lib/shapes/text/RichTextArea.js +3 -3
  54. package/dist-cjs/lib/shapes/text/RichTextArea.js.map +2 -2
  55. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +2 -2
  56. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  57. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js +3 -3
  58. package/dist-cjs/lib/shapes/video/VideoShapeUtil.js.map +1 -1
  59. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js +25 -1
  60. package/dist-cjs/lib/tools/EraserTool/childStates/Erasing.js.map +2 -2
  61. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js +12 -0
  62. package/dist-cjs/lib/tools/EraserTool/childStates/Pointing.js.map +2 -2
  63. package/dist-cjs/lib/ui/TldrawUi.js +27 -12
  64. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  65. package/dist-cjs/lib/ui/assetUrls.js +13 -10
  66. package/dist-cjs/lib/ui/assetUrls.js.map +2 -2
  67. package/dist-cjs/lib/ui/components/A11y.js +1 -1
  68. package/dist-cjs/lib/ui/components/A11y.js.map +2 -2
  69. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +10 -2
  70. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  71. package/dist-cjs/lib/ui/components/{FollowingIndicator.js → DefaultFollowingIndicator.js} +6 -6
  72. package/dist-cjs/lib/ui/components/DefaultFollowingIndicator.js.map +7 -0
  73. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +6 -6
  74. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +1 -1
  75. package/dist-cjs/lib/ui/components/LanguageMenu.js +1 -0
  76. package/dist-cjs/lib/ui/components/LanguageMenu.js.map +2 -2
  77. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js +1 -0
  78. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js.map +2 -2
  79. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js +4 -4
  80. package/dist-cjs/lib/ui/components/Minimap/MinimapManager.js.map +2 -2
  81. package/dist-cjs/lib/ui/components/MobileStylePanel.js +5 -3
  82. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  83. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +1 -1
  84. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  85. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +9 -4
  86. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  87. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +255 -316
  88. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  89. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js +147 -0
  90. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +7 -0
  91. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js +68 -0
  92. package/dist-cjs/lib/ui/components/StylePanel/StylePanelContext.js.map +7 -0
  93. package/dist-cjs/lib/ui/components/StylePanel/{DoubleDropdownPicker.js → StylePanelDoubleDropdownPicker.js} +23 -22
  94. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.js.map +7 -0
  95. package/dist-cjs/lib/ui/components/StylePanel/{DropdownPicker.js → StylePanelDropdownPicker.js} +24 -21
  96. package/dist-cjs/lib/ui/components/StylePanel/StylePanelDropdownPicker.js.map +7 -0
  97. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js +28 -0
  98. package/dist-cjs/lib/ui/components/StylePanel/StylePanelSubheading.js.map +7 -0
  99. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js +2 -0
  100. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
  101. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js +39 -10
  102. package/dist-cjs/lib/ui/components/Toolbar/DefaultImageToolbarContent.js.map +2 -2
  103. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -22
  104. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  105. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js +15 -3
  106. package/dist-cjs/lib/ui/components/Toolbar/DefaultVideoToolbarContent.js.map +2 -2
  107. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js +2 -1
  108. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js.map +2 -2
  109. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +188 -78
  110. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  111. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +6 -2
  112. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  113. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +11 -2
  114. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  115. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js +5 -3
  116. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js.map +2 -2
  117. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +18 -5
  118. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  119. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +18 -3
  120. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  121. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +187 -165
  122. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +2 -2
  123. package/dist-cjs/lib/ui/components/primitives/layout.js +30 -5
  124. package/dist-cjs/lib/ui/components/primitives/layout.js.map +2 -2
  125. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js +3 -0
  126. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js.map +2 -2
  127. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuContext.js.map +2 -2
  128. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +25 -12
  129. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  130. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +8 -24
  131. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  132. package/dist-cjs/lib/ui/context/actions.js +29 -10
  133. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  134. package/dist-cjs/lib/ui/context/components.js +2 -0
  135. package/dist-cjs/lib/ui/context/components.js.map +2 -2
  136. package/dist-cjs/lib/ui/context/events.js.map +1 -1
  137. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +1 -1
  138. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
  139. package/dist-cjs/lib/ui/hooks/useExportAs.js +3 -2
  140. package/dist-cjs/lib/ui/hooks/useExportAs.js.map +2 -2
  141. package/dist-cjs/lib/ui/hooks/useTools.js +22 -4
  142. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  143. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  144. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +6 -2
  145. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  146. package/dist-cjs/lib/ui/kbd-utils.js +9 -3
  147. package/dist-cjs/lib/ui/kbd-utils.js.map +2 -2
  148. package/dist-cjs/lib/ui/version.js +3 -3
  149. package/dist-cjs/lib/ui/version.js.map +1 -1
  150. package/dist-cjs/lib/utils/export/copyAs.js +1 -2
  151. package/dist-cjs/lib/utils/export/copyAs.js.map +2 -2
  152. package/dist-cjs/lib/utils/export/export.js +0 -20
  153. package/dist-cjs/lib/utils/export/export.js.map +2 -2
  154. package/dist-cjs/lib/utils/export/exportAs.js +1 -2
  155. package/dist-cjs/lib/utils/export/exportAs.js.map +2 -2
  156. package/dist-esm/index.d.mts +275 -110
  157. package/dist-esm/index.mjs +68 -30
  158. package/dist-esm/index.mjs.map +2 -2
  159. package/dist-esm/lib/Tldraw.mjs +14 -4
  160. package/dist-esm/lib/Tldraw.mjs.map +2 -2
  161. package/dist-esm/lib/canvas/TldrawScribble.mjs +1 -1
  162. package/dist-esm/lib/canvas/TldrawScribble.mjs.map +2 -2
  163. package/dist-esm/lib/defaultExternalContentHandlers.mjs +15 -4
  164. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  165. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +4 -3
  166. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  167. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs +6 -0
  168. package/dist-esm/lib/shapes/arrow/arrowLabel.mjs.map +3 -3
  169. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs +3 -3
  170. package/dist-esm/lib/shapes/arrow/elbow/ElbowArrowDebug.mjs.map +1 -1
  171. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs +5 -5
  172. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs.map +2 -2
  173. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +4 -3
  174. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  175. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs +1 -1
  176. package/dist-esm/lib/shapes/embed/EmbedShapeUtil.mjs.map +1 -1
  177. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +21 -13
  178. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  179. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs +1 -1
  180. package/dist-esm/lib/shapes/frame/components/FrameHeading.mjs.map +2 -2
  181. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +3 -3
  182. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +2 -2
  183. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +4 -2
  184. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  185. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +2 -1
  186. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  187. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +6 -1
  188. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  189. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs +6 -3
  190. package/dist-esm/lib/shapes/image/ImageShapeUtil.mjs.map +2 -2
  191. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +6 -1
  192. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  193. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +7 -5
  194. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  195. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs +5 -5
  196. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs.map +2 -2
  197. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs +1 -3
  198. package/dist-esm/lib/shapes/shared/PlainTextLabel.mjs.map +2 -2
  199. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +5 -4
  200. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  201. package/dist-esm/lib/shapes/shared/freehand/svg.mjs.map +2 -2
  202. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs +4 -5
  203. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
  204. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs +0 -2
  205. package/dist-esm/lib/shapes/shared/useImageOrVideoAsset.mjs.map +2 -2
  206. package/dist-esm/lib/shapes/text/PlainTextArea.mjs +3 -3
  207. package/dist-esm/lib/shapes/text/PlainTextArea.mjs.map +2 -2
  208. package/dist-esm/lib/shapes/text/RichTextArea.mjs +3 -4
  209. package/dist-esm/lib/shapes/text/RichTextArea.mjs.map +2 -2
  210. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +3 -2
  211. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  212. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs +3 -3
  213. package/dist-esm/lib/shapes/video/VideoShapeUtil.mjs.map +1 -1
  214. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs +26 -1
  215. package/dist-esm/lib/tools/EraserTool/childStates/Erasing.mjs.map +2 -2
  216. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs +13 -0
  217. package/dist-esm/lib/tools/EraserTool/childStates/Pointing.mjs.map +2 -2
  218. package/dist-esm/lib/ui/TldrawUi.mjs +29 -14
  219. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  220. package/dist-esm/lib/ui/assetUrls.mjs +13 -10
  221. package/dist-esm/lib/ui/assetUrls.mjs.map +2 -2
  222. package/dist-esm/lib/ui/components/A11y.mjs +2 -2
  223. package/dist-esm/lib/ui/components/A11y.mjs.map +2 -2
  224. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +10 -2
  225. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  226. package/dist-esm/lib/ui/components/{FollowingIndicator.mjs → DefaultFollowingIndicator.mjs} +3 -3
  227. package/dist-esm/lib/ui/components/DefaultFollowingIndicator.mjs.map +7 -0
  228. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +6 -6
  229. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +1 -1
  230. package/dist-esm/lib/ui/components/LanguageMenu.mjs +1 -0
  231. package/dist-esm/lib/ui/components/LanguageMenu.mjs.map +2 -2
  232. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs +1 -0
  233. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs.map +2 -2
  234. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs +4 -4
  235. package/dist-esm/lib/ui/components/Minimap/MinimapManager.mjs.map +2 -2
  236. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +6 -3
  237. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  238. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +2 -2
  239. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  240. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +14 -5
  241. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  242. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +257 -320
  243. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  244. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +135 -0
  245. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +7 -0
  246. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs +48 -0
  247. package/dist-esm/lib/ui/components/StylePanel/StylePanelContext.mjs.map +7 -0
  248. package/dist-esm/lib/ui/components/StylePanel/{DoubleDropdownPicker.mjs → StylePanelDoubleDropdownPicker.mjs} +20 -19
  249. package/dist-esm/lib/ui/components/StylePanel/StylePanelDoubleDropdownPicker.mjs.map +7 -0
  250. package/dist-esm/lib/ui/components/StylePanel/{DropdownPicker.mjs → StylePanelDropdownPicker.mjs} +21 -18
  251. package/dist-esm/lib/ui/components/StylePanel/StylePanelDropdownPicker.mjs.map +7 -0
  252. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs +8 -0
  253. package/dist-esm/lib/ui/components/StylePanel/StylePanelSubheading.mjs.map +7 -0
  254. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs +2 -0
  255. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
  256. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs +39 -10
  257. package/dist-esm/lib/ui/components/Toolbar/DefaultImageToolbarContent.mjs.map +2 -2
  258. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -22
  259. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  260. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs +15 -3
  261. package/dist-esm/lib/ui/components/Toolbar/DefaultVideoToolbarContent.mjs.map +2 -2
  262. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs +2 -1
  263. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs.map +2 -2
  264. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -80
  265. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  266. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +6 -2
  267. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  268. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +12 -3
  269. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  270. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs +6 -4
  271. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs.map +2 -2
  272. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +18 -5
  273. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  274. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +19 -4
  275. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  276. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +197 -167
  277. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +2 -2
  278. package/dist-esm/lib/ui/components/primitives/layout.mjs +31 -6
  279. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +2 -2
  280. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs +3 -0
  281. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs.map +2 -2
  282. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuContext.mjs.map +2 -2
  283. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +25 -12
  284. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  285. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +8 -24
  286. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  287. package/dist-esm/lib/ui/context/actions.mjs +29 -10
  288. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  289. package/dist-esm/lib/ui/context/components.mjs +2 -0
  290. package/dist-esm/lib/ui/context/components.mjs.map +2 -2
  291. package/dist-esm/lib/ui/context/events.mjs.map +1 -1
  292. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +2 -2
  293. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
  294. package/dist-esm/lib/ui/hooks/useExportAs.mjs +3 -2
  295. package/dist-esm/lib/ui/hooks/useExportAs.mjs.map +2 -2
  296. package/dist-esm/lib/ui/hooks/useTools.mjs +23 -4
  297. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  298. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +6 -2
  299. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  300. package/dist-esm/lib/ui/kbd-utils.mjs +9 -3
  301. package/dist-esm/lib/ui/kbd-utils.mjs.map +2 -2
  302. package/dist-esm/lib/ui/version.mjs +3 -3
  303. package/dist-esm/lib/ui/version.mjs.map +1 -1
  304. package/dist-esm/lib/utils/export/copyAs.mjs +1 -2
  305. package/dist-esm/lib/utils/export/copyAs.mjs.map +2 -2
  306. package/dist-esm/lib/utils/export/export.mjs +0 -20
  307. package/dist-esm/lib/utils/export/export.mjs.map +2 -2
  308. package/dist-esm/lib/utils/export/exportAs.mjs +1 -2
  309. package/dist-esm/lib/utils/export/exportAs.mjs.map +2 -2
  310. package/package.json +11 -34
  311. package/src/index.ts +49 -22
  312. package/src/lib/Tldraw.tsx +15 -2
  313. package/src/lib/canvas/TldrawScribble.tsx +1 -1
  314. package/src/lib/defaultExternalContentHandlers.ts +26 -4
  315. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +2 -1
  316. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +6 -5
  317. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +48 -6
  318. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +4 -3
  319. package/src/lib/shapes/arrow/arrowLabel.ts +8 -0
  320. package/src/lib/shapes/arrow/elbow/ElbowArrowDebug.tsx +3 -3
  321. package/src/lib/shapes/bookmark/BookmarkShapeUtil.tsx +5 -5
  322. package/src/lib/shapes/draw/DrawShapeTool.test.ts +0 -5
  323. package/src/lib/shapes/draw/DrawShapeUtil.tsx +4 -3
  324. package/src/lib/shapes/embed/EmbedShapeUtil.tsx +1 -1
  325. package/src/lib/shapes/frame/FrameShapeUtil.tsx +30 -14
  326. package/src/lib/shapes/frame/components/FrameHeading.tsx +1 -1
  327. package/src/lib/shapes/frame/components/FrameLabelInput.tsx +3 -3
  328. package/src/lib/shapes/geo/GeoShapeUtil.tsx +4 -2
  329. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  330. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +7 -1
  331. package/src/lib/shapes/image/ImageShapeUtil.tsx +6 -3
  332. package/src/lib/shapes/line/LineShapeUtil.test.tsx +4 -3
  333. package/src/lib/shapes/line/LineShapeUtil.tsx +6 -1
  334. package/src/lib/shapes/line/__snapshots__/LineShapeUtil.test.tsx.snap +2 -2
  335. package/src/lib/shapes/note/NoteShapeUtil.tsx +10 -4
  336. package/src/lib/shapes/shared/HyperlinkButton.tsx +5 -5
  337. package/src/lib/shapes/shared/PlainTextLabel.tsx +0 -6
  338. package/src/lib/shapes/shared/ShapeFill.tsx +5 -4
  339. package/src/lib/shapes/shared/freehand/svg.ts +2 -0
  340. package/src/lib/shapes/shared/useEditablePlainText.ts +5 -9
  341. package/src/lib/shapes/shared/useImageOrVideoAsset.ts +0 -7
  342. package/src/lib/shapes/text/PlainTextArea.tsx +3 -3
  343. package/src/lib/shapes/text/RichTextArea.tsx +3 -4
  344. package/src/lib/shapes/text/TextShapeTool.test.ts +6 -5
  345. package/src/lib/shapes/text/TextShapeUtil.tsx +3 -2
  346. package/src/lib/shapes/video/VideoShapeUtil.tsx +3 -3
  347. package/src/lib/tools/EraserTool/childStates/Erasing.ts +34 -1
  348. package/src/lib/tools/EraserTool/childStates/Pointing.ts +20 -0
  349. package/src/lib/ui/TldrawUi.tsx +33 -12
  350. package/src/lib/ui/assetUrls.ts +13 -10
  351. package/src/lib/ui/components/A11y.tsx +2 -2
  352. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +13 -2
  353. package/src/lib/ui/components/{FollowingIndicator.tsx → DefaultFollowingIndicator.tsx} +2 -1
  354. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +6 -6
  355. package/src/lib/ui/components/LanguageMenu.tsx +1 -0
  356. package/src/lib/ui/components/Minimap/DefaultMinimap.tsx +1 -0
  357. package/src/lib/ui/components/Minimap/MinimapManager.ts +4 -4
  358. package/src/lib/ui/components/MobileStylePanel.tsx +9 -6
  359. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +2 -2
  360. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +27 -13
  361. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +260 -381
  362. package/src/lib/ui/components/{primitives/TldrawUiButtonPicker.tsx → StylePanel/StylePanelButtonPicker.tsx} +72 -51
  363. package/src/lib/ui/components/StylePanel/StylePanelContext.tsx +63 -0
  364. package/src/lib/ui/components/StylePanel/{DoubleDropdownPicker.tsx → StylePanelDoubleDropdownPicker.tsx} +28 -19
  365. package/src/lib/ui/components/StylePanel/StylePanelDropdownPicker.tsx +119 -0
  366. package/src/lib/ui/components/StylePanel/StylePanelSubheading.tsx +9 -0
  367. package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +2 -0
  368. package/src/lib/ui/components/Toolbar/DefaultImageToolbarContent.tsx +33 -16
  369. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -24
  370. package/src/lib/ui/components/Toolbar/DefaultVideoToolbarContent.tsx +12 -4
  371. package/src/lib/ui/components/Toolbar/LinkEditor.tsx +1 -0
  372. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +208 -56
  373. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +9 -2
  374. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +8 -3
  375. package/src/lib/ui/components/primitives/TldrawUiInput.tsx +6 -3
  376. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +52 -32
  377. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +27 -6
  378. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +232 -185
  379. package/src/lib/ui/components/primitives/layout.tsx +79 -5
  380. package/src/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.tsx +4 -0
  381. package/src/lib/ui/components/primitives/menus/TldrawUiMenuContext.tsx +0 -1
  382. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +29 -16
  383. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +11 -24
  384. package/src/lib/ui/context/actions.tsx +36 -10
  385. package/src/lib/ui/context/components.tsx +3 -0
  386. package/src/lib/ui/context/events.tsx +1 -1
  387. package/src/lib/ui/hooks/useClipboardEvents.ts +2 -2
  388. package/src/lib/ui/hooks/useExportAs.ts +3 -2
  389. package/src/lib/ui/hooks/useTools.tsx +26 -4
  390. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +4 -0
  391. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +6 -2
  392. package/src/lib/ui/kbd-utils.ts +10 -3
  393. package/src/lib/ui/version.ts +3 -3
  394. package/src/lib/ui.css +375 -245
  395. package/src/lib/utils/excalidraw/__snapshots__/putExcalidrawContent.test.tsx.snap +5 -5
  396. package/src/lib/utils/export/copyAs.ts +1 -24
  397. package/src/lib/utils/export/export.ts +0 -36
  398. package/src/lib/utils/export/exportAs.ts +1 -32
  399. package/src/lib/utils/tldr/__snapshots__/buildFromV1Document.test.ts.snap +4 -4
  400. package/src/test/A11y.test.tsx +3 -2
  401. package/src/test/ClickManager.test.ts +7 -6
  402. package/src/test/Editor.test.tsx +20 -19
  403. package/src/test/EraserTool.test.ts +184 -13
  404. package/src/test/HandTool.test.ts +10 -9
  405. package/src/test/HighlightShape.test.ts +2 -1
  406. package/src/test/SelectTool.test.ts +3 -2
  407. package/src/test/TLUserPreferences.test.ts +4 -3
  408. package/src/test/TestEditor.ts +13 -15
  409. package/src/test/TldrawEditor.test.tsx +11 -10
  410. package/src/test/ZoomTool.test.ts +7 -6
  411. package/src/test/__snapshots__/drawing.test.ts.snap +2 -2
  412. package/src/test/__snapshots__/groups.test.tsx.snap +6 -6
  413. package/src/test/__snapshots__/resizing.test.ts.snap +2 -2
  414. package/src/test/arrows-megabus.test.tsx +5 -4
  415. package/src/test/bindings.test.tsx +24 -37
  416. package/src/test/bookmark-shapes.test.ts +1 -8
  417. package/src/test/commands/__snapshots__/getSvgString.test.ts.snap +23 -7
  418. package/src/test/commands/__snapshots__/packShapes.test.ts.snap +8 -8
  419. package/src/test/commands/__snapshots__/zoomToFit.test.ts.snap +2 -2
  420. package/src/test/commands/alignShapes.test.tsx +25 -24
  421. package/src/test/commands/animationSpeed.test.ts +2 -1
  422. package/src/test/commands/centerOnPoint.test.ts +3 -2
  423. package/src/test/commands/clipboard.test.ts +3 -2
  424. package/src/test/commands/createShapes.test.ts +2 -1
  425. package/src/test/commands/deleteShapes.test.ts +2 -1
  426. package/src/test/commands/distributeShapes.test.tsx +11 -10
  427. package/src/test/commands/getSvgString.test.ts +2 -1
  428. package/src/test/commands/packShapes.test.ts +5 -4
  429. package/src/test/commands/resizeShape.test.ts +2 -1
  430. package/src/test/commands/rotateShapes.test.ts +7 -6
  431. package/src/test/commands/setCamera.test.ts +4 -3
  432. package/src/test/commands/setCurrentPage.test.ts +3 -2
  433. package/src/test/commands/stackShapes.test.ts +11 -10
  434. package/src/test/commands/stretch.test.tsx +13 -12
  435. package/src/test/createDeepLink.test.tsx +2 -1
  436. package/src/test/cropping.test.ts +3 -2
  437. package/src/test/custom-clipping.test.ts +436 -0
  438. package/src/test/drawing.test.ts +2 -1
  439. package/src/test/flipShapes.test.ts +4 -3
  440. package/src/test/frames.test.ts +25 -24
  441. package/src/test/getCulledShapes.test.tsx +74 -4
  442. package/src/test/groups.test.tsx +1 -1
  443. package/src/test/handleDeepLink.test.tsx +2 -1
  444. package/src/test/maxShapes.test.ts +3 -2
  445. package/src/test/modifiers.test.ts +5 -4
  446. package/src/test/navigation.test.ts +12 -11
  447. package/src/test/panning.test.ts +2 -1
  448. package/src/test/perf/perf.test.ts +2 -1
  449. package/src/test/registerDeepLinkListener.test.tsx +10 -9
  450. package/src/test/resizing.test.ts +39 -38
  451. package/src/test/select.test.tsx +4 -3
  452. package/src/test/selection-omnibus.test.ts +11 -10
  453. package/src/test/shapeutils.test.ts +4 -3
  454. package/src/test/translating.test.ts +9 -8
  455. package/tldraw.css +683 -537
  456. package/dist-cjs/lib/ui/components/FollowingIndicator.js.map +0 -7
  457. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +0 -7
  458. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +0 -7
  459. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js +0 -131
  460. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +0 -7
  461. package/dist-esm/lib/ui/components/FollowingIndicator.mjs.map +0 -7
  462. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +0 -7
  463. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +0 -7
  464. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +0 -114
  465. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +0 -7
  466. 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
  }
@@ -173,7 +173,7 @@
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,8 +1017,22 @@
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 {
@@ -997,19 +1041,19 @@
997
1041
 
998
1042
  .tlui-style-panel__section__common:not(:only-child) {
999
1043
  margin-bottom: 7px;
1000
- border-bottom: 1px solid var(--color-divider);
1044
+ border-bottom: 1px solid var(--tl-color-divider);
1001
1045
  }
1002
1046
 
1003
1047
  .tlui-style-panel__dropdown-picker:only-child {
1004
- width: 100%;
1048
+ flex: 1;
1005
1049
  }
1006
1050
 
1007
1051
  .tlui-style-panel__double-select-picker {
1008
1052
  display: flex;
1009
1053
  grid-template-columns: 1fr auto;
1010
1054
  align-items: center;
1011
- padding-left: var(--space-4);
1012
- color: var(--color-text-1);
1055
+ padding-left: var(--tl-space-4);
1056
+ color: var(--tl-color-text-1);
1013
1057
  font-size: 12px;
1014
1058
  }
1015
1059
 
@@ -1023,13 +1067,16 @@
1023
1067
 
1024
1068
  .tlui-style-panel .tlui-button[data-state='open']::after {
1025
1069
  opacity: 1;
1026
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1070
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1027
1071
  }
1028
1072
 
1029
1073
  @media (hover: hover) {
1074
+ .tlui-style-panel .tlui-button[aria-expanded='true'] {
1075
+ background: none;
1076
+ }
1030
1077
  .tlui-style-panel .tlui-button[data-state='open']:not(:hover)::after {
1031
1078
  opacity: 1;
1032
- background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1079
+ background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1033
1080
  }
1034
1081
  }
1035
1082
 
@@ -1039,14 +1086,14 @@
1039
1086
  .tlui-style-panel__section__common .tlui-style-panel__subheading,
1040
1087
  .tlui-style-panel__subheading + .tlui-slider__container {
1041
1088
  margin: 0;
1042
- padding: var(--space-2) var(--space-3) 0px var(--space-4);
1089
+ padding: var(--tl-space-2) var(--tl-space-3) 0px var(--tl-space-4);
1043
1090
  font-size: 12px;
1044
1091
  font-weight: inherit;
1045
1092
  line-height: inherit;
1046
1093
  }
1047
1094
 
1048
1095
  .tlui-style-panel .tlui-style-panel__subheading:nth-of-type(1) {
1049
- padding-top: var(--space-3);
1096
+ padding-top: var(--tl-space-3);
1050
1097
  }
1051
1098
 
1052
1099
  .tlui-style-panel__subheading + .tlui-slider__container {
@@ -1057,11 +1104,11 @@
1057
1104
 
1058
1105
  .tlui-layout__bottom {
1059
1106
  grid-row: 2;
1107
+ width: 100%;
1060
1108
  }
1061
1109
 
1062
1110
  .tlui-layout__bottom__main {
1063
1111
  width: 100%;
1064
- position: relative;
1065
1112
  display: flex;
1066
1113
  align-items: flex-end;
1067
1114
  justify-content: center;
@@ -1073,11 +1120,10 @@
1073
1120
  display: flex;
1074
1121
  width: min-content;
1075
1122
  flex-direction: column;
1076
- z-index: var(--layer-panels);
1123
+ z-index: var(--tl-layer-panels);
1077
1124
  pointer-events: all;
1078
1125
  position: absolute;
1079
1126
  left: 0px;
1080
- bottom: 0px;
1081
1127
  }
1082
1128
 
1083
1129
  .tlui-navigation-panel::before {
@@ -1087,10 +1133,10 @@
1087
1133
  z-index: -1;
1088
1134
  inset: -2px -2px 0px 0px;
1089
1135
  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);
1136
+ border-top: 2px solid var(--tl-color-background);
1137
+ border-right: 2px solid var(--tl-color-background);
1138
+ border-top-right-radius: var(--tl-radius-4);
1139
+ background-color: var(--tl-color-low);
1094
1140
  }
1095
1141
 
1096
1142
  .tlui-navigation-panel[data-a11y='true']::before {
@@ -1104,7 +1150,7 @@
1104
1150
  height: 96px;
1105
1151
  min-height: 96px;
1106
1152
  overflow: hidden;
1107
- padding: var(--space-3);
1153
+ padding: var(--tl-space-3);
1108
1154
  padding-top: 0px;
1109
1155
  }
1110
1156
 
@@ -1124,7 +1170,23 @@
1124
1170
  align-items: center;
1125
1171
  justify-content: center;
1126
1172
  flex-grow: 2;
1127
- padding-bottom: calc(var(--space-3) + var(--sab));
1173
+ }
1174
+
1175
+ .tlui-main-toolbar--horizontal {
1176
+ padding-bottom: calc(var(--tl-space-3) + var(--tl-sab));
1177
+ max-width: 100%;
1178
+ }
1179
+
1180
+ .tlui-main-toolbar--vertical {
1181
+ position: absolute;
1182
+ left: 0;
1183
+ top: 90px; /* height of page menu + 'back to content' button */
1184
+ bottom: 140px; /* height of expanded mini-map */
1185
+ padding-left: calc(var(--tl-space-3) + var(--tl-sab));
1186
+ }
1187
+
1188
+ [data-breakpoints-below*='6'] .tlui-main-toolbar--vertical {
1189
+ bottom: 90px; /* collapsed mini-map, but same as top to keep things looking even */
1128
1190
  }
1129
1191
 
1130
1192
  /* Centered Content */
@@ -1132,73 +1194,145 @@
1132
1194
  position: relative;
1133
1195
  width: fit-content;
1134
1196
  display: flex;
1135
- gap: var(--space-3);
1136
- align-items: flex-end;
1197
+ gap: var(--tl-space-3);
1198
+ align-items: flex-start;
1199
+ }
1200
+
1201
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__inner {
1202
+ flex-direction: column;
1137
1203
  }
1138
1204
 
1139
- .tlui-main-toolbar__left {
1205
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__left {
1140
1206
  width: fit-content;
1141
1207
  }
1208
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__left {
1209
+ display: flex;
1210
+ height: fit-content;
1211
+ }
1142
1212
 
1143
1213
  /* Row of controls + lock button */
1144
1214
  .tlui-main-toolbar__extras {
1145
1215
  position: relative;
1146
- z-index: var(--layer-above);
1147
- width: 100%;
1216
+ z-index: var(--tl-layer-above);
1148
1217
  pointer-events: none;
1149
- top: 6px;
1150
- height: 48px;
1218
+ align-self: stretch;
1151
1219
  }
1152
1220
 
1153
1221
  .tlui-main-toolbar__extras:empty {
1154
1222
  display: none;
1155
1223
  }
1156
1224
 
1225
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras {
1226
+ height: 48px;
1227
+ top: 6px;
1228
+ }
1229
+
1230
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras {
1231
+ width: 48px;
1232
+ order: 1;
1233
+ }
1234
+
1157
1235
  .tlui-main-toolbar__extras__controls {
1158
- display: flex;
1159
1236
  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);
1237
+ z-index: var(--tl-layer-above);
1238
+ background-color: var(--tl-color-low);
1239
+ border: 2px solid var(--tl-color-background);
1240
+ pointer-events: all;
1241
+ }
1242
+
1243
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras__controls {
1244
+ border-top-left-radius: var(--tl-radius-4);
1245
+ border-top-right-radius: var(--tl-radius-4);
1166
1246
  margin-left: 8px;
1167
1247
  margin-right: 0px;
1168
- pointer-events: all;
1248
+ width: fit-content;
1249
+ }
1250
+
1251
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras__controls {
1252
+ border-top-right-radius: var(--tl-radius-4);
1253
+ border-bottom-right-radius: var(--tl-radius-4);
1254
+ margin-top: 8px;
1255
+ margin-left: -2px;
1256
+ margin-bottom: 0px;
1169
1257
  width: fit-content;
1170
1258
  }
1171
1259
 
1172
1260
  .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);
1261
+ border-radius: var(--tl-radius-4);
1262
+ z-index: var(--tl-layer-panels);
1178
1263
  pointer-events: all;
1179
1264
  position: relative;
1180
- background: var(--color-panel);
1181
- box-shadow: var(--shadow-2);
1265
+ background: var(--tl-color-panel);
1266
+ box-shadow: var(--tl-shadow-2);
1267
+ }
1268
+
1269
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__mobile-style-panel {
1270
+ align-self: flex-end;
1271
+ }
1272
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__mobile-style-panel {
1273
+ align-self: flex-start;
1182
1274
  }
1183
1275
 
1184
- .tlui-main-toolbar__overflow {
1276
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1185
1277
  width: 40px;
1186
1278
  margin-left: 2px;
1187
1279
  }
1280
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__overflow {
1281
+ height: 40px;
1282
+ margin-top: 2px;
1283
+ }
1188
1284
 
1189
- .tlui-layout__mobile .tlui-main-toolbar__overflow {
1285
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1190
1286
  width: 32px;
1191
1287
  padding: 0px;
1192
1288
  }
1193
1289
 
1194
- .tlui-main-toolbar *[data-state='open']::after {
1195
- background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1290
+ .tlui-main-toolbar--horizontal *[data-state='open']::after {
1291
+ background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1292
+ opacity: 1;
1293
+ }
1294
+ .tlui-main-toolbar--vertical *[data-state='open']::after {
1295
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1196
1296
  opacity: 1;
1197
1297
  }
1198
1298
 
1299
+ .tlui-main-toolbar__overflow-content {
1300
+ touch-action: none;
1301
+ }
1302
+
1303
+ .tlui-main-toolbar__tools [data-toolbar-visible='false'],
1304
+ .tlui-main-toolbar__overflow-content [data-toolbar-visible='false'] {
1305
+ display: none;
1306
+ }
1307
+
1308
+ .tlui-main-toolbar__group:empty {
1309
+ display: none;
1310
+ }
1311
+ .tlui-row.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1312
+ border-right: 1px solid var(--color-divider);
1313
+ margin-right: 2px;
1314
+ }
1315
+ .tlui-column.tlui-main-toolbar__group:not(
1316
+ :nth-last-child(-n + 1 of [data-toolbar-visible='true'])
1317
+ ) {
1318
+ border-bottom: 1px solid var(--color-divider);
1319
+ margin-bottom: 2px;
1320
+ }
1321
+ .tlui-grid.tlui-main-toolbar__group {
1322
+ grid-column: 1 / span 4;
1323
+ }
1324
+ .tlui-grid.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1325
+ border-bottom: 1px solid var(--color-divider);
1326
+ margin-bottom: 2px;
1327
+ }
1328
+
1199
1329
  @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%);
1330
+ .tlui-main-toolbar--horizontal *[data-state='open']:not(:hover)::after {
1331
+ background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1332
+ opacity: 1;
1333
+ }
1334
+ .tlui-main-toolbar--vertical *[data-state='open']:not(:hover)::after {
1335
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--tl-color-muted-2) 100%);
1202
1336
  opacity: 1;
1203
1337
  }
1204
1338
  }
@@ -1209,44 +1343,40 @@
1209
1343
  font-size: 12px;
1210
1344
  padding: 2px 8px;
1211
1345
  border-radius: 4px;
1212
- background-color: var(--color-tooltip);
1346
+ background-color: var(--tl-color-tooltip);
1213
1347
  box-shadow: none;
1214
- color: var(--color-text-shadow);
1348
+ color: var(--tl-color-text-shadow);
1215
1349
  max-width: 400px;
1216
1350
  width: fit-content;
1217
1351
  text-align: center;
1218
- pointer-events: none;
1219
1352
  will-change: transform, opacity;
1220
1353
  z-index: 2;
1221
1354
  }
1222
1355
 
1223
1356
  .tlui-tooltip__arrow {
1224
- fill: var(--color-tooltip);
1357
+ fill: var(--tl-color-tooltip);
1225
1358
  will-change: opacity;
1226
1359
  }
1227
1360
 
1228
1361
  [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;
1362
+ z-index: var(--tl-layer-toasts) !important;
1363
+ pointer-events: none;
1234
1364
  }
1235
1365
 
1236
1366
  /* ------------------- Debug panel ------------------ */
1237
1367
 
1238
1368
  .tlui-debug-panel {
1239
- background-color: var(--color-low);
1369
+ background-color: var(--tl-color-low);
1240
1370
  width: 100%;
1241
1371
  display: grid;
1242
1372
  align-items: center;
1243
1373
  grid-template-columns: 1fr auto auto auto;
1244
1374
  justify-content: space-between;
1245
- padding-left: var(--space-4);
1246
- border-top: 1px solid var(--color-background);
1375
+ padding-left: var(--tl-space-4);
1376
+ border-top: 1px solid var(--tl-color-background);
1247
1377
  font-size: 12px;
1248
- color: var(--color-text-1);
1249
- z-index: var(--layer-panels);
1378
+ color: var(--tl-color-text-1);
1379
+ z-index: var(--tl-layer-panels);
1250
1380
  pointer-events: all;
1251
1381
  }
1252
1382
 
@@ -1262,7 +1392,7 @@
1262
1392
 
1263
1393
  .tlui-debug-panel__fps__slow {
1264
1394
  font-weight: bold;
1265
- color: var(--color-danger);
1395
+ color: var(--tl-color-danger);
1266
1396
  }
1267
1397
 
1268
1398
  .tlui-a11y-audit {
@@ -1272,7 +1402,7 @@
1272
1402
  .tlui-a11y-audit th,
1273
1403
  .tlui-a11y-audit td {
1274
1404
  padding: 8px;
1275
- border: 1px solid var(--color-low-border);
1405
+ border: 1px solid var(--tl-color-low-border);
1276
1406
  }
1277
1407
 
1278
1408
  /* --------------------- Toasts --------------------- */
@@ -1285,10 +1415,10 @@
1285
1415
  align-items: flex-end;
1286
1416
  justify-content: flex-end;
1287
1417
  flex-direction: column;
1288
- gap: var(--space-3);
1418
+ gap: var(--tl-space-3);
1289
1419
  pointer-events: none;
1290
- padding: 0px var(--space-3) 64px 0px;
1291
- z-index: var(--layer-toasts);
1420
+ padding: 0px var(--tl-space-3) 64px 0px;
1421
+ z-index: var(--tl-layer-toasts);
1292
1422
  }
1293
1423
 
1294
1424
  .tlui-toast__viewport > * {
@@ -1297,34 +1427,34 @@
1297
1427
 
1298
1428
  .tlui-toast__icon {
1299
1429
  padding-top: 11px;
1300
- padding-left: var(--space-4);
1301
- color: var(--color-text-1);
1430
+ padding-left: var(--tl-space-4);
1431
+ color: var(--tl-color-text-1);
1302
1432
  }
1303
1433
 
1304
1434
  .tlui-toast__container {
1305
1435
  min-width: 200px;
1306
1436
  display: flex;
1307
1437
  flex-direction: row;
1308
- background-color: var(--color-panel);
1309
- box-shadow: var(--shadow-2);
1310
- border-radius: var(--radius-3);
1438
+ background-color: var(--tl-color-panel);
1439
+ box-shadow: var(--tl-shadow-2);
1440
+ border-radius: var(--tl-radius-3);
1311
1441
  font-size: 12px;
1312
1442
  }
1313
1443
 
1314
1444
  .tlui-toast__container[data-severity='success'] .tlui-icon {
1315
- color: var(--color-success);
1445
+ color: var(--tl-color-success);
1316
1446
  }
1317
1447
 
1318
1448
  .tlui-toast__container[data-severity='info'] .tlui-icon {
1319
- color: var(--color-info);
1449
+ color: var(--tl-color-info);
1320
1450
  }
1321
1451
 
1322
1452
  .tlui-toast__container[data-severity='warning'] .tlui-icon {
1323
- color: var(--color-warning);
1453
+ color: var(--tl-color-warning);
1324
1454
  }
1325
1455
 
1326
1456
  .tlui-toast__container[data-severity='error'] .tlui-icon {
1327
- color: var(--color-danger);
1457
+ color: var(--tl-color-danger);
1328
1458
  }
1329
1459
 
1330
1460
  .tlui-toast__main {
@@ -1333,27 +1463,27 @@
1333
1463
  }
1334
1464
 
1335
1465
  .tlui-toast__content {
1336
- padding: var(--space-4);
1466
+ padding: var(--tl-space-4);
1337
1467
  display: flex;
1338
1468
  line-height: 1.4;
1339
1469
  flex-direction: column;
1340
- gap: var(--space-3);
1470
+ gap: var(--tl-space-3);
1341
1471
  }
1342
1472
 
1343
1473
  .tlui-toast__main[data-actions='true'] .tlui-toast__content {
1344
- padding-bottom: var(--space-2);
1474
+ padding-bottom: var(--tl-space-2);
1345
1475
  }
1346
1476
 
1347
1477
  .tlui-toast__title {
1348
1478
  font-weight: bold;
1349
- color: var(--color-text-1);
1479
+ color: var(--tl-color-text-1);
1350
1480
  /* this makes the default toast look better */
1351
1481
  line-height: 16px;
1352
1482
  }
1353
1483
 
1354
1484
  .tlui-toast__description {
1355
- color: var(--color-text-1);
1356
- padding: var(--space-3);
1485
+ color: var(--tl-color-text-1);
1486
+ padding: var(--tl-space-3);
1357
1487
  margin: 0px;
1358
1488
  padding: 0px;
1359
1489
  }
@@ -1405,14 +1535,14 @@
1405
1535
  left: 0px;
1406
1536
  width: 100%;
1407
1537
  height: 100%;
1408
- z-index: var(--layer-canvas-overlays);
1409
- background-color: var(--color-overlay);
1538
+ z-index: var(--tl-layer-canvas-overlays);
1539
+ background-color: var(--tl-color-overlay);
1410
1540
  pointer-events: all;
1411
1541
  animation: tl-fade-in 0.12s ease-out;
1412
1542
  display: grid;
1413
1543
  place-items: center;
1414
1544
  overflow-y: auto;
1415
- padding: 0px var(--space-3);
1545
+ padding: 0px var(--tl-space-3);
1416
1546
  }
1417
1547
 
1418
1548
  .tlui-dialog__content {
@@ -1420,9 +1550,9 @@
1420
1550
  flex-direction: column;
1421
1551
  position: relative;
1422
1552
  cursor: default;
1423
- background-color: var(--color-panel);
1424
- box-shadow: var(--shadow-3);
1425
- border-radius: var(--radius-3);
1553
+ background-color: var(--tl-color-panel);
1554
+ box-shadow: var(--tl-shadow-3);
1555
+ border-radius: var(--tl-radius-3);
1426
1556
  font-size: 12px;
1427
1557
  overflow: hidden;
1428
1558
  min-width: 300px;
@@ -1435,9 +1565,9 @@
1435
1565
  display: flex;
1436
1566
  align-items: center;
1437
1567
  flex: 0;
1438
- z-index: var(--layer-header-footer);
1439
- padding-left: var(--space-4);
1440
- color: var(--color-text);
1568
+ z-index: var(--tl-layer-header-footer);
1569
+ padding-left: var(--tl-space-4);
1570
+ color: var(--tl-color-text);
1441
1571
  height: 40px;
1442
1572
  }
1443
1573
 
@@ -1446,7 +1576,7 @@
1446
1576
  font-weight: inherit;
1447
1577
  font-size: 12px;
1448
1578
  margin: 0px;
1449
- color: var(--color-text-1);
1579
+ color: var(--tl-color-text-1);
1450
1580
  }
1451
1581
 
1452
1582
  .tlui-dialog__header__close {
@@ -1454,16 +1584,16 @@
1454
1584
  }
1455
1585
 
1456
1586
  .tlui-dialog__body {
1457
- padding: var(--space-4) var(--space-4);
1587
+ padding: var(--tl-space-4) var(--tl-space-4);
1458
1588
  flex: 0 1;
1459
1589
  overflow-y: auto;
1460
1590
  overflow-x: hidden;
1461
- color: var(--color-text-1);
1591
+ color: var(--tl-color-text-1);
1462
1592
  user-select: all;
1463
1593
  -webkit-user-select: text;
1464
1594
  }
1465
1595
  .tlui-dialog__body a {
1466
- color: var(--color-selected);
1596
+ color: var(--tl-color-selected);
1467
1597
  }
1468
1598
 
1469
1599
  .tlui-dialog__body ul,
@@ -1471,13 +1601,13 @@
1471
1601
  padding-left: 16px;
1472
1602
  display: flex;
1473
1603
  flex-direction: column;
1474
- gap: var(--space-2);
1604
+ gap: var(--tl-space-2);
1475
1605
  }
1476
1606
 
1477
1607
  .tlui-dialog__footer {
1478
1608
  position: relative;
1479
1609
  min-height: 12px;
1480
- z-index: var(--layer-header-footer);
1610
+ z-index: var(--tl-layer-header-footer);
1481
1611
  }
1482
1612
 
1483
1613
  .tlui-dialog__footer__actions {
@@ -1497,15 +1627,15 @@
1497
1627
  .tlui-edit-link-dialog {
1498
1628
  display: flex;
1499
1629
  flex-direction: column;
1500
- gap: var(--space-4);
1501
- color: var(--color-text);
1630
+ gap: var(--tl-space-4);
1631
+ color: var(--tl-color-text);
1502
1632
  }
1503
1633
 
1504
1634
  .tlui-edit-link-dialog__input {
1505
- background-color: var(--color-muted-2);
1635
+ background-color: var(--tl-color-muted-2);
1506
1636
  flex-grow: 2;
1507
- border-radius: var(--radius-2);
1508
- padding: 0px var(--space-4);
1637
+ border-radius: var(--tl-radius-2);
1638
+ padding: 0px var(--tl-space-4);
1509
1639
  }
1510
1640
 
1511
1641
  /* Embed Dialog */
@@ -1513,15 +1643,15 @@
1513
1643
  .tlui-embed__spacer {
1514
1644
  flex-grow: 2;
1515
1645
  min-height: 0px;
1516
- margin-left: calc(-1 * var(--space-4));
1517
- margin-top: calc(-1 * var(--space-4));
1646
+ margin-left: calc(-1 * var(--tl-space-4));
1647
+ margin-top: calc(-1 * var(--tl-space-4));
1518
1648
  pointer-events: none;
1519
1649
  }
1520
1650
 
1521
1651
  .tlui-embed-dialog__list {
1522
1652
  display: flex;
1523
1653
  flex-direction: column;
1524
- padding: 0px var(--space-3) var(--space-4) var(--space-3);
1654
+ padding: 0px var(--tl-space-3) var(--tl-space-4) var(--tl-space-3);
1525
1655
  }
1526
1656
 
1527
1657
  .tlui-embed-dialog__item__image {
@@ -1533,49 +1663,49 @@
1533
1663
  background-size: contain;
1534
1664
  background-repeat: no-repeat;
1535
1665
  background-position: center center;
1536
- background-color: var(--color-selected-contrast);
1537
- border-radius: var(--radius-1);
1666
+ background-color: var(--tl-color-selected-contrast);
1667
+ border-radius: var(--tl-radius-1);
1538
1668
  }
1539
1669
 
1540
1670
  .tlui-embed-dialog__enter {
1541
1671
  display: flex;
1542
1672
  flex-direction: column;
1543
- gap: var(--space-4);
1544
- color: var(--color-text-1);
1673
+ gap: var(--tl-space-4);
1674
+ color: var(--tl-color-text-1);
1545
1675
  }
1546
1676
 
1547
1677
  .tlui-embed-dialog__input {
1548
- background-color: var(--color-muted-2);
1678
+ background-color: var(--tl-color-muted-2);
1549
1679
  flex-grow: 2;
1550
- border-radius: var(--radius-2);
1551
- padding: 0px var(--space-4);
1680
+ border-radius: var(--tl-radius-2);
1681
+ padding: 0px var(--tl-space-4);
1552
1682
  }
1553
1683
 
1554
1684
  .tlui-embed-dialog__warning {
1555
- color: var(--color-danger);
1685
+ color: var(--tl-color-danger);
1556
1686
  text-shadow: none;
1557
1687
  }
1558
1688
 
1559
1689
  .tlui-embed-dialog__instruction__link {
1560
1690
  display: flex;
1561
- gap: var(--space-1);
1562
- margin-top: var(--space-4);
1691
+ gap: var(--tl-space-1);
1692
+ margin-top: var(--tl-space-4);
1563
1693
  }
1564
1694
 
1565
1695
  .tlui-embed-dialog__enter a {
1566
- color: var(--color-text-1);
1696
+ color: var(--tl-color-text-1);
1567
1697
  }
1568
1698
 
1569
1699
  /* --------------- Keyboard shortcuts --------------- */
1570
1700
 
1571
1701
  .tlui-shortcuts-dialog__header {
1572
- border-bottom: 1px solid var(--color-divider);
1702
+ border-bottom: 1px solid var(--tl-color-divider);
1573
1703
  }
1574
1704
 
1575
1705
  .tlui-shortcuts-dialog__body {
1576
1706
  position: relative;
1577
1707
  columns: 3;
1578
- column-gap: var(--space-9);
1708
+ column-gap: var(--tl-space-9);
1579
1709
  pointer-events: all;
1580
1710
  touch-action: auto;
1581
1711
 
@@ -1593,14 +1723,14 @@
1593
1723
 
1594
1724
  .tlui-shortcuts-dialog__group {
1595
1725
  break-inside: avoid-column;
1596
- padding-bottom: var(--space-6);
1726
+ padding-bottom: var(--tl-space-6);
1597
1727
  }
1598
1728
 
1599
1729
  .tlui-shortcuts-dialog__group__title {
1600
1730
  font-size: inherit;
1601
1731
  font-weight: inherit;
1602
1732
  margin: 0px;
1603
- color: var(--color-text-3);
1733
+ color: var(--tl-color-text-3);
1604
1734
  height: 32px;
1605
1735
  display: flex;
1606
1736
  align-items: center;
@@ -1609,12 +1739,12 @@
1609
1739
  .tlui-shortcuts-dialog__group__content {
1610
1740
  display: flex;
1611
1741
  flex-direction: column;
1612
- color: var(--color-text-1);
1742
+ color: var(--tl-color-text-1);
1613
1743
  }
1614
1744
 
1615
1745
  .tlui-shortcuts-dialog__key-pair {
1616
1746
  display: flex;
1617
- gap: var(--space-4);
1747
+ gap: var(--tl-space-4);
1618
1748
  align-items: center;
1619
1749
  justify-content: space-between;
1620
1750
  height: 32px;
@@ -1641,12 +1771,12 @@
1641
1771
  height: 24px;
1642
1772
  background: linear-gradient(
1643
1773
  to bottom,
1644
- var(--color-panel-transparent) 0%,
1645
- var(--color-panel) 90%,
1646
- var(--color-panel) 100%
1774
+ var(--tl-color-panel-transparent) 0%,
1775
+ var(--tl-color-panel) 90%,
1776
+ var(--tl-color-panel) 100%
1647
1777
  );
1648
- border-bottom-left-radius: var(--radius-3);
1649
- border-bottom-right-radius: var(--radius-3);
1778
+ border-bottom-left-radius: var(--tl-radius-3);
1779
+ border-bottom-right-radius: var(--tl-radius-3);
1650
1780
  pointer-events: none;
1651
1781
  }
1652
1782
 
@@ -1661,10 +1791,10 @@
1661
1791
  .tlui-help-menu {
1662
1792
  pointer-events: all;
1663
1793
  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);
1794
+ bottom: var(--tl-space-2);
1795
+ right: var(--tl-space-2);
1796
+ z-index: var(--tl-layer-panels);
1797
+ border: 2px solid var(--tl-color-background);
1668
1798
  border-radius: 100%;
1669
1799
  }
1670
1800
 
@@ -1675,7 +1805,7 @@
1675
1805
  display: flex;
1676
1806
  flex-direction: row;
1677
1807
  justify-content: flex-end;
1678
- z-index: var(--layer-panels);
1808
+ z-index: var(--tl-layer-panels);
1679
1809
  align-items: center;
1680
1810
  padding-top: 2px;
1681
1811
  padding-right: 4px;
@@ -1691,7 +1821,7 @@
1691
1821
  border: none;
1692
1822
  cursor: pointer;
1693
1823
  pointer-events: all;
1694
- border-radius: var(--radius-1);
1824
+ border-radius: var(--tl-radius-1);
1695
1825
  padding-right: 1px;
1696
1826
  height: 100%;
1697
1827
  }
@@ -1704,8 +1834,8 @@
1704
1834
  .tlui-people-menu__avatar {
1705
1835
  height: 24px;
1706
1836
  width: 24px;
1707
- border: 2px solid var(--color-background);
1708
- background-color: var(--color-low);
1837
+ border: 2px solid var(--tl-color-background);
1838
+ background-color: var(--tl-color-low);
1709
1839
  border-radius: 100%;
1710
1840
  display: flex;
1711
1841
  align-items: center;
@@ -1714,7 +1844,7 @@
1714
1844
  font-size: 10px;
1715
1845
  font-weight: bold;
1716
1846
  text-align: center;
1717
- color: var(--color-selected-contrast);
1847
+ color: var(--tl-color-selected-contrast);
1718
1848
  z-index: 2;
1719
1849
  }
1720
1850
 
@@ -1728,7 +1858,7 @@
1728
1858
 
1729
1859
  @media (hover: hover) {
1730
1860
  .tlui-people-menu__avatars-button:hover .tlui-people-menu__avatar {
1731
- border-color: var(--color-low);
1861
+ border-color: var(--tl-color-low);
1732
1862
  }
1733
1863
  }
1734
1864
 
@@ -1736,12 +1866,12 @@
1736
1866
  min-width: 0px;
1737
1867
  font-size: 11px;
1738
1868
  font-weight: 600;
1739
- color: var(--color-text-1);
1869
+ color: var(--tl-color-text-1);
1740
1870
  font-family: inherit;
1741
1871
  padding: 0px 4px;
1742
1872
  }
1743
1873
  .tlui-people-menu__more::after {
1744
- border-radius: var(--radius-2);
1874
+ border-radius: var(--tl-radius-2);
1745
1875
  inset: 0px;
1746
1876
  }
1747
1877
 
@@ -1770,7 +1900,7 @@
1770
1900
  }
1771
1901
 
1772
1902
  .tlui-people-menu__section:not(:last-child) {
1773
- border-bottom: 1px solid var(--color-divider);
1903
+ border-bottom: 1px solid var(--tl-color-divider);
1774
1904
  }
1775
1905
 
1776
1906
  .tlui-people-menu__user {
@@ -1789,7 +1919,7 @@
1789
1919
  text-overflow: ellipsis;
1790
1920
  white-space: nowrap;
1791
1921
  font-size: 12px;
1792
- color: var(--color-text-1);
1922
+ color: var(--tl-color-text-1);
1793
1923
  max-width: 100%;
1794
1924
  flex-grow: 1;
1795
1925
  flex-shrink: 100;
@@ -1801,7 +1931,7 @@
1801
1931
  text-overflow: ellipsis;
1802
1932
  white-space: nowrap;
1803
1933
  font-size: 12px;
1804
- color: var(--color-text-3);
1934
+ color: var(--tl-color-text-3);
1805
1935
  flex-grow: 100;
1806
1936
  flex-shrink: 0;
1807
1937
  margin-left: 4px;
@@ -1892,7 +2022,7 @@
1892
2022
  inset: 0px;
1893
2023
  border-width: 2px;
1894
2024
  border-style: solid;
1895
- z-index: var(--layer-following-indicator);
2025
+ z-index: var(--tl-layer-following-indicator);
1896
2026
  pointer-events: none;
1897
2027
  }
1898
2028
 
@@ -1911,7 +2041,7 @@
1911
2041
  }
1912
2042
 
1913
2043
  .tlui-contextual-toolbar [data-isactive='true']::after {
1914
- background-color: var(--color-muted-2);
2044
+ background-color: var(--tl-color-muted-2);
1915
2045
  opacity: 1;
1916
2046
  }
1917
2047
 
@@ -1927,7 +2057,7 @@
1927
2057
 
1928
2058
  .tlui-contextual-toolbar[data-visible='true'] {
1929
2059
  opacity: 1;
1930
- z-index: var(--layer-menus);
2060
+ z-index: var(--tl-layer-menus);
1931
2061
  }
1932
2062
 
1933
2063
  .tlui-contextual-toolbar[data-interactive='true'],
@@ -1986,7 +2116,7 @@
1986
2116
 
1987
2117
  @keyframes tlui-slide-in {
1988
2118
  from {
1989
- transform: translateX(calc(100% + var(--space-3)));
2119
+ transform: translateX(calc(100% + var(--tl-space-3)));
1990
2120
  }
1991
2121
  to {
1992
2122
  transform: translateX(0px);
@@ -1998,6 +2128,6 @@
1998
2128
  transform: translateX(var(--radix-toast-swipe-end-x));
1999
2129
  }
2000
2130
  to {
2001
- transform: translateX(calc(100% + var(--space-3)));
2131
+ transform: translateX(calc(100% + var(--tl-space-3)));
2002
2132
  }
2003
2133
  }