tldraw 3.16.0-canary.aa1aff3ffe55 → 3.16.0-canary.cf24aedcd577

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 (228) hide show
  1. package/dist-cjs/index.d.ts +129 -5
  2. package/dist-cjs/index.js +14 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js +3 -3
  5. package/dist-cjs/lib/shapes/arrow/ArrowShapeUtil.js.map +2 -2
  6. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js +3 -3
  7. package/dist-cjs/lib/shapes/draw/DrawShapeUtil.js.map +2 -2
  8. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +12 -12
  9. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  10. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +2 -2
  11. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  12. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js +2 -1
  13. package/dist-cjs/lib/shapes/geo/components/GeoShapeBody.js.map +2 -2
  14. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js +5 -1
  15. package/dist-cjs/lib/shapes/highlight/HighlightShapeUtil.js.map +2 -2
  16. package/dist-cjs/lib/shapes/line/LineShapeUtil.js +5 -1
  17. package/dist-cjs/lib/shapes/line/LineShapeUtil.js.map +2 -2
  18. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +4 -4
  19. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  20. package/dist-cjs/lib/shapes/shared/ShapeFill.js +5 -5
  21. package/dist-cjs/lib/shapes/shared/ShapeFill.js.map +2 -2
  22. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js +10 -1
  23. package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js.map +2 -2
  24. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +2 -2
  25. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  26. package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
  27. package/dist-cjs/lib/ui/TldrawUi.js +14 -0
  28. package/dist-cjs/lib/ui/TldrawUi.js.map +3 -3
  29. package/dist-cjs/lib/ui/components/AccessibilityMenu.js +35 -0
  30. package/dist-cjs/lib/ui/components/AccessibilityMenu.js.map +7 -0
  31. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +12 -3
  32. package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
  33. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +3 -2
  34. package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
  35. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +3 -3
  36. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  37. package/dist-cjs/lib/ui/components/MobileStylePanel.js +4 -2
  38. package/dist-cjs/lib/ui/components/MobileStylePanel.js.map +2 -2
  39. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +1 -1
  40. package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
  41. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +2 -1
  42. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  43. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +3 -2
  44. package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
  45. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
  46. package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
  47. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +2 -0
  48. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
  49. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +171 -140
  50. package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
  51. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js +3 -3
  52. package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +2 -2
  53. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js +26 -25
  54. package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +3 -3
  55. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +66 -21
  56. package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +3 -3
  57. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +189 -80
  58. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +3 -3
  59. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +5 -4
  60. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  61. package/dist-cjs/lib/ui/components/menu-items.js +6 -0
  62. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  63. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js +5 -16
  64. package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +3 -3
  65. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +1 -1
  66. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  67. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +3 -2
  68. package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
  69. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +30 -7
  70. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  71. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +291 -0
  72. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +7 -0
  73. package/dist-cjs/lib/ui/components/primitives/layout.js +76 -0
  74. package/dist-cjs/lib/ui/components/primitives/layout.js.map +7 -0
  75. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js +30 -7
  76. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuGroup.js.map +2 -2
  77. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +152 -2
  78. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  79. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js +3 -2
  80. package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js.map +2 -2
  81. package/dist-cjs/lib/ui/context/actions.js +15 -0
  82. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  83. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  84. package/dist-cjs/lib/ui/hooks/useTools.js +76 -9
  85. package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
  86. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  87. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +3 -0
  88. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  89. package/dist-cjs/lib/ui/version.js +3 -3
  90. package/dist-cjs/lib/ui/version.js.map +1 -1
  91. package/dist-esm/index.d.mts +129 -5
  92. package/dist-esm/index.mjs +25 -1
  93. package/dist-esm/index.mjs.map +2 -2
  94. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs +4 -3
  95. package/dist-esm/lib/shapes/arrow/ArrowShapeUtil.mjs.map +2 -2
  96. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs +4 -3
  97. package/dist-esm/lib/shapes/draw/DrawShapeUtil.mjs.map +2 -2
  98. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +13 -12
  99. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  100. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +3 -2
  101. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  102. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs +2 -1
  103. package/dist-esm/lib/shapes/geo/components/GeoShapeBody.mjs.map +2 -2
  104. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs +6 -1
  105. package/dist-esm/lib/shapes/highlight/HighlightShapeUtil.mjs.map +2 -2
  106. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs +6 -1
  107. package/dist-esm/lib/shapes/line/LineShapeUtil.mjs.map +2 -2
  108. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +5 -4
  109. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  110. package/dist-esm/lib/shapes/shared/ShapeFill.mjs +6 -5
  111. package/dist-esm/lib/shapes/shared/ShapeFill.mjs.map +2 -2
  112. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs +10 -1
  113. package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs.map +2 -2
  114. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +3 -2
  115. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  116. package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
  117. package/dist-esm/lib/ui/TldrawUi.mjs +16 -2
  118. package/dist-esm/lib/ui/TldrawUi.mjs.map +3 -3
  119. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs +19 -0
  120. package/dist-esm/lib/ui/components/AccessibilityMenu.mjs.map +7 -0
  121. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +12 -3
  122. package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
  123. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +3 -2
  124. package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
  125. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +3 -5
  126. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  127. package/dist-esm/lib/ui/components/MobileStylePanel.mjs +5 -2
  128. package/dist-esm/lib/ui/components/MobileStylePanel.mjs.map +2 -2
  129. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +1 -1
  130. package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
  131. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +2 -1
  132. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  133. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +3 -2
  134. package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
  135. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
  136. package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
  137. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +3 -1
  138. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
  139. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +171 -140
  140. package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
  141. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs +3 -3
  142. package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +2 -2
  143. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs +26 -25
  144. package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +2 -2
  145. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +56 -21
  146. package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
  147. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +192 -81
  148. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +3 -3
  149. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +5 -4
  150. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  151. package/dist-esm/lib/ui/components/menu-items.mjs +6 -0
  152. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  153. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +6 -6
  154. package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +2 -2
  155. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +1 -1
  156. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  157. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +3 -2
  158. package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
  159. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +30 -7
  160. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  161. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +261 -0
  162. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +7 -0
  163. package/dist-esm/lib/ui/components/primitives/layout.mjs +46 -0
  164. package/dist-esm/lib/ui/components/primitives/layout.mjs.map +7 -0
  165. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs +30 -7
  166. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuGroup.mjs.map +2 -2
  167. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +160 -4
  168. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  169. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs +3 -2
  170. package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs.map +2 -2
  171. package/dist-esm/lib/ui/context/actions.mjs +15 -0
  172. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  173. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  174. package/dist-esm/lib/ui/hooks/useTools.mjs +83 -10
  175. package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
  176. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +3 -0
  177. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  178. package/dist-esm/lib/ui/version.mjs +3 -3
  179. package/dist-esm/lib/ui/version.mjs.map +1 -1
  180. package/package.json +3 -3
  181. package/src/index.ts +20 -0
  182. package/src/lib/shapes/arrow/ArrowShapeUtil.tsx +4 -3
  183. package/src/lib/shapes/draw/DrawShapeUtil.tsx +4 -3
  184. package/src/lib/shapes/frame/FrameShapeUtil.tsx +13 -14
  185. package/src/lib/shapes/geo/GeoShapeUtil.tsx +3 -2
  186. package/src/lib/shapes/geo/components/GeoShapeBody.tsx +2 -2
  187. package/src/lib/shapes/highlight/HighlightShapeUtil.tsx +7 -1
  188. package/src/lib/shapes/line/LineShapeUtil.tsx +6 -1
  189. package/src/lib/shapes/note/NoteShapeUtil.tsx +9 -4
  190. package/src/lib/shapes/shared/ShapeFill.tsx +6 -5
  191. package/src/lib/shapes/shared/usePrefersReducedMotion.tsx +11 -1
  192. package/src/lib/shapes/text/TextShapeUtil.tsx +3 -2
  193. package/src/lib/tools/SelectTool/childStates/Translating.ts +0 -1
  194. package/src/lib/ui/TldrawUi.tsx +17 -2
  195. package/src/lib/ui/components/AccessibilityMenu.tsx +20 -0
  196. package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +15 -3
  197. package/src/lib/ui/components/DefaultMenuPanel.tsx +4 -3
  198. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +4 -4
  199. package/src/lib/ui/components/MobileStylePanel.tsx +8 -5
  200. package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +1 -1
  201. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +3 -2
  202. package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +4 -3
  203. package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
  204. package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +3 -1
  205. package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +146 -107
  206. package/src/lib/ui/components/StylePanel/DoubleDropdownPicker.tsx +3 -3
  207. package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +7 -6
  208. package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +55 -23
  209. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +212 -61
  210. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +14 -11
  211. package/src/lib/ui/components/menu-items.tsx +8 -0
  212. package/src/lib/ui/components/primitives/TldrawUiButtonPicker.tsx +40 -37
  213. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +1 -1
  214. package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +4 -2
  215. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +51 -12
  216. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +343 -0
  217. package/src/lib/ui/components/primitives/layout.tsx +107 -0
  218. package/src/lib/ui/components/primitives/menus/TldrawUiMenuGroup.tsx +30 -7
  219. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +218 -3
  220. package/src/lib/ui/context/TldrawUiContextProvider.tsx +23 -20
  221. package/src/lib/ui/context/actions.tsx +15 -0
  222. package/src/lib/ui/context/events.tsx +2 -0
  223. package/src/lib/ui/hooks/useTools.tsx +118 -10
  224. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +3 -0
  225. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +3 -0
  226. package/src/lib/ui/version.ts +3 -3
  227. package/src/lib/ui.css +199 -84
  228. package/tldraw.css +201 -84
package/src/lib/ui.css CHANGED
@@ -97,7 +97,7 @@
97
97
  opacity: 1;
98
98
  }
99
99
 
100
- .tlui-button[aria-expanded='true'][data-direction='left']::after {
100
+ .tlui-button[aria-expanded='true'][data-direction='left'] {
101
101
  background: linear-gradient(270deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
102
102
  opacity: 1;
103
103
  }
@@ -161,12 +161,6 @@
161
161
  }
162
162
  }
163
163
 
164
- /* Panel button */
165
-
166
- .tlui-button__panel {
167
- position: relative;
168
- }
169
-
170
164
  /* Menu button */
171
165
 
172
166
  .tlui-button__menu {
@@ -207,18 +201,26 @@
207
201
 
208
202
  /* Tool lock button */
209
203
 
210
- .tlui-toolbar__lock-button {
204
+ .tlui-main-toolbar__lock-button {
211
205
  position: absolute;
212
- top: 4px;
213
- right: 0px;
214
206
  pointer-events: all;
215
207
  height: 40px;
216
208
  width: 40px;
217
- min-width: 0px;
218
209
  border-radius: var(--radius-2);
219
210
  }
220
211
 
221
- .tlui-toolbar__lock-button::after {
212
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__lock-button {
213
+ top: 4px;
214
+ right: 0px;
215
+ min-width: 0px;
216
+ }
217
+
218
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__lock-button {
219
+ bottom: 0px;
220
+ min-height: 0px;
221
+ }
222
+
223
+ .tlui-main-toolbar__lock-button::after {
222
224
  top: 4px;
223
225
  left: 8px;
224
226
  inset: 4px;
@@ -230,16 +232,6 @@
230
232
  position: relative;
231
233
  height: 48px;
232
234
  width: 48px;
233
- margin-left: -2px;
234
- margin-right: -2px;
235
- }
236
-
237
- .tlui-button__tool:nth-of-type(1) {
238
- margin-left: 0px;
239
- }
240
-
241
- .tlui-button__tool:nth-last-of-type(1) {
242
- margin-right: 0px;
243
235
  }
244
236
 
245
237
  .tlui-button__tool::after {
@@ -260,57 +252,52 @@
260
252
  opacity: 1;
261
253
  }
262
254
 
263
- .tlui-layout__mobile .tlui-button__tool {
255
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool {
264
256
  height: 48px;
265
257
  width: 43px;
266
258
  }
267
259
 
268
- .tlui-layout__mobile .tlui-button__tool > .tlui-icon {
260
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-button__tool > .tlui-icon {
269
261
  height: 16px;
270
262
  width: 16px;
271
263
  }
272
264
 
273
- /* Button Row */
265
+ /* Row layout */
274
266
 
275
- .tlui-buttons__horizontal {
267
+ .tlui-row {
276
268
  display: flex;
277
269
  flex-direction: row;
270
+ padding: 0 2px;
278
271
  }
279
- .tlui-buttons__horizontal > * {
272
+ .tlui-row > * {
280
273
  margin-left: -2px;
281
274
  margin-right: -2px;
282
275
  }
283
- .tlui-buttons__horizontal > *:nth-child(1) {
284
- margin-left: 0px;
276
+
277
+ /* Column layout */
278
+
279
+ .tlui-column {
280
+ display: flex;
281
+ flex-direction: column;
282
+ padding: 2px 0;
285
283
  }
286
- .tlui-buttons__horizontal > *:nth-last-child(1) {
287
- margin-right: 0px;
284
+ .tlui-column > * {
285
+ margin-top: -2px;
286
+ margin-bottom: -2px;
288
287
  }
289
288
 
290
- /* Button Grid */
289
+ /* Grid layout */
291
290
 
292
- .tlui-buttons__grid {
291
+ .tlui-grid {
293
292
  display: grid;
294
- grid-template-columns: repeat(4, auto);
293
+ grid-template-columns: repeat(4, 1fr);
295
294
  grid-auto-flow: row;
296
295
  overflow: hidden;
296
+ padding: 2px;
297
297
  }
298
- .tlui-buttons__grid > .tlui-button {
298
+ .tlui-grid > * {
299
299
  margin: -2px;
300
300
  }
301
- .tlui-buttons__grid > .tlui-button:nth-of-type(4n),
302
- .tlui-buttons__vertical-align > .tlui-button:nth-of-type(3n) {
303
- margin-right: 0px;
304
- }
305
- .tlui-buttons__grid > .tlui-button:nth-of-type(4n - 3) {
306
- margin-left: 0px;
307
- }
308
- .tlui-buttons__grid > .tlui-button:nth-of-type(-n + 4) {
309
- margin-top: 0px;
310
- }
311
- .tlui-buttons__grid > .tlui-button:nth-last-of-type(-n + 4) {
312
- margin-bottom: 0px;
313
- }
314
301
 
315
302
  /* Zoom button */
316
303
 
@@ -1000,6 +987,12 @@
1000
987
  max-width: 148px;
1001
988
  }
1002
989
 
990
+ .tlui-style-panel[data-show-ui-labels='true'] .tlui-button[data-isactive='true'] {
991
+ border-radius: 10px;
992
+ outline: 2px solid var(--color-text);
993
+ outline-offset: -5px;
994
+ }
995
+
1003
996
  .tlui-style-panel::-webkit-scrollbar {
1004
997
  display: none;
1005
998
  }
@@ -1027,12 +1020,8 @@
1027
1020
  border-bottom: 1px solid var(--color-divider);
1028
1021
  }
1029
1022
 
1030
- .tlui-style-panel__row {
1031
- display: flex;
1032
- }
1033
- /* Only really used for the alignment picker */
1034
- .tlui-style-panel__row__extra-button {
1035
- margin-left: -2px;
1023
+ .tlui-style-panel__dropdown-picker:only-child {
1024
+ width: 100%;
1036
1025
  }
1037
1026
 
1038
1027
  .tlui-style-panel__double-select-picker {
@@ -1064,15 +1053,36 @@
1064
1053
  }
1065
1054
  }
1066
1055
 
1056
+ /* Accessibility subheadings */
1057
+
1058
+ .tlui-style-panel__section .tlui-style-panel__subheading,
1059
+ .tlui-style-panel__section__common .tlui-style-panel__subheading,
1060
+ .tlui-style-panel__subheading + .tlui-slider__container {
1061
+ margin: 0;
1062
+ padding: var(--space-2) var(--space-3) 0px var(--space-4);
1063
+ font-size: 12px;
1064
+ font-weight: inherit;
1065
+ line-height: inherit;
1066
+ }
1067
+
1068
+ .tlui-style-panel .tlui-style-panel__subheading:nth-of-type(1) {
1069
+ padding-top: var(--space-3);
1070
+ }
1071
+
1072
+ .tlui-style-panel__subheading + .tlui-slider__container {
1073
+ padding-top: 0px;
1074
+ }
1075
+
1067
1076
  /* --------------------- Bottom --------------------- */
1068
1077
 
1069
1078
  .tlui-layout__bottom {
1070
1079
  grid-row: 2;
1080
+ width: 100%;
1081
+ overflow: hidden;
1071
1082
  }
1072
1083
 
1073
1084
  .tlui-layout__bottom__main {
1074
1085
  width: 100%;
1075
- position: relative;
1076
1086
  display: flex;
1077
1087
  align-items: flex-end;
1078
1088
  justify-content: center;
@@ -1088,7 +1098,6 @@
1088
1098
  pointer-events: all;
1089
1099
  position: absolute;
1090
1100
  left: 0px;
1091
- bottom: 0px;
1092
1101
  }
1093
1102
 
1094
1103
  .tlui-navigation-panel::before {
@@ -1128,62 +1137,101 @@
1128
1137
  /* --------------------- Toolbar -------------------- */
1129
1138
 
1130
1139
  /* Wide container */
1131
- .tlui-toolbar {
1140
+ .tlui-main-toolbar {
1132
1141
  grid-column: 1 / span 3;
1133
1142
  grid-row: 1;
1134
1143
  display: flex;
1135
1144
  align-items: center;
1136
1145
  justify-content: center;
1137
1146
  flex-grow: 2;
1147
+ }
1148
+
1149
+ .tlui-main-toolbar--horizontal {
1138
1150
  padding-bottom: calc(var(--space-3) + var(--sab));
1151
+ max-width: 100%;
1152
+ }
1153
+
1154
+ .tlui-main-toolbar--vertical {
1155
+ position: absolute;
1156
+ left: 0;
1157
+ top: 90px; /* height of page menu + 'back to content' button */
1158
+ bottom: 140px; /* height of expanded mini-map */
1159
+ padding-left: calc(var(--space-3) + var(--sab));
1160
+ }
1161
+
1162
+ [data-breakpoints-below*='6'] .tlui-main-toolbar--vertical {
1163
+ bottom: 90px; /* collapsed mini-map, but same as top to keep things looking even */
1139
1164
  }
1140
1165
 
1141
1166
  /* Centered Content */
1142
- .tlui-toolbar__inner {
1167
+ .tlui-main-toolbar__inner {
1143
1168
  position: relative;
1144
1169
  width: fit-content;
1145
1170
  display: flex;
1146
1171
  gap: var(--space-3);
1147
- align-items: flex-end;
1172
+ align-items: flex-start;
1148
1173
  }
1149
1174
 
1150
- .tlui-toolbar__left {
1175
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__inner {
1176
+ flex-direction: column;
1177
+ }
1178
+
1179
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__left {
1151
1180
  width: fit-content;
1152
1181
  }
1182
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__left {
1183
+ display: flex;
1184
+ height: fit-content;
1185
+ }
1153
1186
 
1154
1187
  /* Row of controls + lock button */
1155
- .tlui-toolbar__extras {
1188
+ .tlui-main-toolbar__extras {
1156
1189
  position: relative;
1157
1190
  z-index: var(--layer-above);
1158
- width: 100%;
1159
1191
  pointer-events: none;
1160
- top: 6px;
1161
- height: 48px;
1192
+ align-self: stretch;
1162
1193
  }
1163
1194
 
1164
- .tlui-toolbar__extras:empty {
1195
+ .tlui-main-toolbar__extras:empty {
1165
1196
  display: none;
1166
1197
  }
1167
1198
 
1168
- .tlui-toolbar__extras__controls {
1169
- display: flex;
1199
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras {
1200
+ height: 48px;
1201
+ top: 6px;
1202
+ }
1203
+
1204
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras {
1205
+ width: 48px;
1206
+ order: 1;
1207
+ }
1208
+
1209
+ .tlui-main-toolbar__extras__controls {
1170
1210
  position: relative;
1171
- flex-direction: row;
1172
1211
  z-index: var(--layer-above);
1173
1212
  background-color: var(--color-low);
1213
+ border: 2px solid var(--color-background);
1214
+ pointer-events: all;
1215
+ }
1216
+
1217
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__extras__controls {
1174
1218
  border-top-left-radius: var(--radius-4);
1175
1219
  border-top-right-radius: var(--radius-4);
1176
- border: 2px solid var(--color-background);
1177
1220
  margin-left: 8px;
1178
1221
  margin-right: 0px;
1179
- pointer-events: all;
1180
1222
  width: fit-content;
1181
1223
  }
1182
1224
 
1183
- .tlui-toolbar__tools {
1184
- display: flex;
1185
- flex-direction: row;
1186
- align-items: center;
1225
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__extras__controls {
1226
+ border-top-right-radius: var(--radius-4);
1227
+ border-bottom-right-radius: var(--radius-4);
1228
+ margin-top: 8px;
1229
+ margin-left: -2px;
1230
+ margin-bottom: 0px;
1231
+ width: fit-content;
1232
+ }
1233
+
1234
+ .tlui-main-toolbar__tools {
1187
1235
  border-radius: var(--radius-4);
1188
1236
  z-index: var(--layer-panels);
1189
1237
  pointer-events: all;
@@ -1191,35 +1239,102 @@
1191
1239
  background: var(--color-panel);
1192
1240
  box-shadow: var(--shadow-2);
1193
1241
  }
1194
- .tlui-toolbar__tools__list {
1195
- display: flex;
1196
- flex-direction: row;
1197
- align-items: center;
1242
+
1243
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__mobile-style-panel {
1244
+ align-self: flex-end;
1245
+ }
1246
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__mobile-style-panel {
1247
+ align-self: flex-start;
1198
1248
  }
1199
1249
 
1200
- .tlui-toolbar__overflow {
1250
+ .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1201
1251
  width: 40px;
1252
+ margin-left: 2px;
1253
+ }
1254
+ .tlui-main-toolbar--vertical .tlui-main-toolbar__overflow {
1255
+ height: 40px;
1256
+ margin-top: 2px;
1202
1257
  }
1203
1258
 
1204
- .tlui-layout__mobile .tlui-toolbar__overflow {
1259
+ .tlui-layout__mobile .tlui-main-toolbar--horizontal .tlui-main-toolbar__overflow {
1205
1260
  width: 32px;
1206
1261
  padding: 0px;
1207
1262
  }
1208
1263
 
1209
- .tlui-toolbar *[data-state='open']::after {
1264
+ .tlui-main-toolbar--horizontal *[data-state='open']::after {
1210
1265
  background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1211
1266
  opacity: 1;
1212
1267
  }
1268
+ .tlui-main-toolbar--vertical *[data-state='open']::after {
1269
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1270
+ opacity: 1;
1271
+ }
1272
+
1273
+ .tlui-main-toolbar__tools [data-toolbar-visible='false'],
1274
+ .tlui-main-toolbar__overflow-content [data-toolbar-visible='false'] {
1275
+ display: none;
1276
+ }
1277
+
1278
+ .tlui-main-toolbar__group:empty {
1279
+ display: none;
1280
+ }
1281
+ .tlui-row.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1282
+ border-right: 1px solid var(--color-divider);
1283
+ margin-right: 2px;
1284
+ }
1285
+ .tlui-column.tlui-main-toolbar__group:not(
1286
+ :nth-last-child(-n + 1 of [data-toolbar-visible='true'])
1287
+ ) {
1288
+ border-bottom: 1px solid var(--color-divider);
1289
+ margin-bottom: 2px;
1290
+ }
1291
+ .tlui-grid.tlui-main-toolbar__group {
1292
+ grid-column: 1 / span 4;
1293
+ }
1294
+ .tlui-grid.tlui-main-toolbar__group:not(:nth-last-child(-n + 1 of [data-toolbar-visible='true'])) {
1295
+ border-bottom: 1px solid var(--color-divider);
1296
+ margin-bottom: 2px;
1297
+ }
1213
1298
 
1214
1299
  @media (hover: hover) {
1215
- .tlui-toolbar *[data-state='open']:not(:hover)::after {
1300
+ .tlui-main-toolbar--horizontal *[data-state='open']:not(:hover)::after {
1216
1301
  background: linear-gradient(0deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1217
1302
  opacity: 1;
1218
1303
  }
1304
+ .tlui-main-toolbar--vertical *[data-state='open']:not(:hover)::after {
1305
+ background: linear-gradient(90deg, rgba(144, 144, 144, 0) 0%, var(--color-muted-2) 100%);
1306
+ opacity: 1;
1307
+ }
1308
+ }
1309
+
1310
+ /* ------------------- Tooltip -------------------- */
1311
+
1312
+ .tlui-tooltip {
1313
+ font-size: 12px;
1314
+ padding: 2px 8px;
1315
+ border-radius: 4px;
1316
+ background-color: var(--color-tooltip);
1317
+ box-shadow: none;
1318
+ color: var(--color-text-shadow);
1319
+ max-width: 400px;
1320
+ width: fit-content;
1321
+ text-align: center;
1322
+ pointer-events: none;
1323
+ will-change: transform, opacity;
1324
+ z-index: 2;
1325
+ }
1326
+
1327
+ .tlui-tooltip__arrow {
1328
+ fill: var(--color-tooltip);
1329
+ will-change: opacity;
1330
+ }
1331
+
1332
+ [data-radix-popper-content-wrapper]:has(.tlui-tooltip) {
1333
+ z-index: var(--layer-toasts) !important;
1219
1334
  }
1220
1335
 
1221
- .tlui-layout__mobile .tlui-toolbar {
1222
- transition: transform 0.15s ease-out 0.05s;
1336
+ [data-radix-popper-content-wrapper]:has(.tlui-tooltip[data-should-animate='true']) {
1337
+ transition: all 0.1s ease-out;
1223
1338
  }
1224
1339
 
1225
1340
  /* ------------------- Debug panel ------------------ */