tldraw 3.16.0-canary.cc5427cdff41 → 3.16.0-canary.cd822ae4ebee

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 (184) hide show
  1. package/dist-cjs/index.d.ts +92 -9
  2. package/dist-cjs/index.js +5 -1
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/defaultExternalContentHandlers.js +10 -0
  5. package/dist-cjs/lib/defaultExternalContentHandlers.js.map +2 -2
  6. package/dist-cjs/lib/shapes/arrow/arrow-types.js.map +1 -1
  7. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +3 -2
  8. package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
  9. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js +1 -1
  10. package/dist-cjs/lib/shapes/arrow/toolStates/Pointing.js.map +2 -2
  11. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js +4 -4
  12. package/dist-cjs/lib/shapes/bookmark/BookmarkShapeUtil.js.map +2 -2
  13. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +2 -1
  14. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  15. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js +8 -2
  16. package/dist-cjs/lib/shapes/frame/components/FrameLabelInput.js.map +2 -2
  17. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js +1 -0
  18. package/dist-cjs/lib/shapes/geo/GeoShapeUtil.js.map +2 -2
  19. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js +2 -1
  20. package/dist-cjs/lib/shapes/note/NoteShapeUtil.js.map +2 -2
  21. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js +4 -4
  22. package/dist-cjs/lib/shapes/shared/HyperlinkButton.js.map +2 -2
  23. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js +3 -3
  24. package/dist-cjs/lib/shapes/shared/useEditablePlainText.js.map +2 -2
  25. package/dist-cjs/lib/shapes/text/PlainTextArea.js +3 -2
  26. package/dist-cjs/lib/shapes/text/PlainTextArea.js.map +2 -2
  27. package/dist-cjs/lib/shapes/text/RichTextArea.js +3 -3
  28. package/dist-cjs/lib/shapes/text/RichTextArea.js.map +2 -2
  29. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js +3 -1
  30. package/dist-cjs/lib/tools/SelectTool/childStates/DraggingHandle.js.map +2 -2
  31. package/dist-cjs/lib/ui/components/A11y.js +1 -1
  32. package/dist-cjs/lib/ui/components/A11y.js.map +2 -2
  33. package/dist-cjs/lib/ui/components/LanguageMenu.js +1 -0
  34. package/dist-cjs/lib/ui/components/LanguageMenu.js.map +2 -2
  35. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js +2 -1
  36. package/dist-cjs/lib/ui/components/Minimap/DefaultMinimap.js.map +2 -2
  37. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +1 -1
  38. package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
  39. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js +11 -2
  40. package/dist-cjs/lib/ui/components/StylePanel/StylePanelButtonPicker.js.map +2 -2
  41. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js +3 -2
  42. package/dist-cjs/lib/ui/components/Toolbar/AltTextEditor.js.map +2 -2
  43. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js +5 -4
  44. package/dist-cjs/lib/ui/components/Toolbar/LinkEditor.js.map +2 -2
  45. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +1 -1
  46. package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +2 -2
  47. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +6 -2
  48. package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
  49. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +1 -1
  50. package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
  51. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js +5 -3
  52. package/dist-cjs/lib/ui/components/primitives/TldrawUiInput.js.map +2 -2
  53. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js +1 -1
  54. package/dist-cjs/lib/ui/components/primitives/TldrawUiSlider.js.map +2 -2
  55. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +1 -0
  56. package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
  57. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +40 -3
  58. package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +2 -2
  59. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js +3 -0
  60. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.js.map +2 -2
  61. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +8 -8
  62. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  63. package/dist-cjs/lib/ui/context/actions.js +6 -0
  64. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  65. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +1 -1
  66. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
  67. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  68. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +4 -2
  69. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  70. package/dist-cjs/lib/ui/version.js +3 -3
  71. package/dist-cjs/lib/ui/version.js.map +1 -1
  72. package/dist-esm/index.d.mts +92 -9
  73. package/dist-esm/index.mjs +9 -1
  74. package/dist-esm/index.mjs.map +2 -2
  75. package/dist-esm/lib/defaultExternalContentHandlers.mjs +10 -0
  76. package/dist-esm/lib/defaultExternalContentHandlers.mjs.map +2 -2
  77. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +3 -2
  78. package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
  79. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs +1 -1
  80. package/dist-esm/lib/shapes/arrow/toolStates/Pointing.mjs.map +2 -2
  81. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs +4 -5
  82. package/dist-esm/lib/shapes/bookmark/BookmarkShapeUtil.mjs.map +2 -2
  83. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +2 -1
  84. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  85. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs +9 -3
  86. package/dist-esm/lib/shapes/frame/components/FrameLabelInput.mjs.map +2 -2
  87. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs +1 -0
  88. package/dist-esm/lib/shapes/geo/GeoShapeUtil.mjs.map +2 -2
  89. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs +2 -1
  90. package/dist-esm/lib/shapes/note/NoteShapeUtil.mjs.map +2 -2
  91. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs +5 -5
  92. package/dist-esm/lib/shapes/shared/HyperlinkButton.mjs.map +2 -2
  93. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs +3 -4
  94. package/dist-esm/lib/shapes/shared/useEditablePlainText.mjs.map +2 -2
  95. package/dist-esm/lib/shapes/text/PlainTextArea.mjs +4 -3
  96. package/dist-esm/lib/shapes/text/PlainTextArea.mjs.map +2 -2
  97. package/dist-esm/lib/shapes/text/RichTextArea.mjs +3 -4
  98. package/dist-esm/lib/shapes/text/RichTextArea.mjs.map +2 -2
  99. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs +3 -1
  100. package/dist-esm/lib/tools/SelectTool/childStates/DraggingHandle.mjs.map +2 -2
  101. package/dist-esm/lib/ui/components/A11y.mjs +1 -2
  102. package/dist-esm/lib/ui/components/A11y.mjs.map +2 -2
  103. package/dist-esm/lib/ui/components/LanguageMenu.mjs +1 -0
  104. package/dist-esm/lib/ui/components/LanguageMenu.mjs.map +2 -2
  105. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs +2 -1
  106. package/dist-esm/lib/ui/components/Minimap/DefaultMinimap.mjs.map +2 -2
  107. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +1 -2
  108. package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
  109. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs +11 -2
  110. package/dist-esm/lib/ui/components/StylePanel/StylePanelButtonPicker.mjs.map +2 -2
  111. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs +3 -2
  112. package/dist-esm/lib/ui/components/Toolbar/AltTextEditor.mjs.map +2 -2
  113. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs +5 -4
  114. package/dist-esm/lib/ui/components/Toolbar/LinkEditor.mjs.map +2 -2
  115. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +1 -1
  116. package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +2 -2
  117. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +6 -2
  118. package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
  119. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +1 -2
  120. package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
  121. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs +6 -4
  122. package/dist-esm/lib/ui/components/primitives/TldrawUiInput.mjs.map +2 -2
  123. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs +1 -1
  124. package/dist-esm/lib/ui/components/primitives/TldrawUiSlider.mjs.map +2 -2
  125. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +1 -0
  126. package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
  127. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +41 -3
  128. package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +2 -2
  129. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs +3 -0
  130. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.mjs.map +2 -2
  131. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +8 -8
  132. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  133. package/dist-esm/lib/ui/context/actions.mjs +6 -0
  134. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  135. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +1 -2
  136. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
  137. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +4 -2
  138. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  139. package/dist-esm/lib/ui/version.mjs +3 -3
  140. package/dist-esm/lib/ui/version.mjs.map +1 -1
  141. package/package.json +3 -3
  142. package/src/index.ts +7 -0
  143. package/src/lib/defaultExternalContentHandlers.ts +14 -0
  144. package/src/lib/shapes/arrow/ArrowShapeOptions.test.ts +83 -13
  145. package/src/lib/shapes/arrow/ArrowShapeTool.test.ts +99 -5
  146. package/src/lib/shapes/arrow/ArrowShapeUtil.test.ts +41 -0
  147. package/src/lib/shapes/arrow/arrow-types.ts +3 -5
  148. package/src/lib/shapes/arrow/arrowTargetState.ts +34 -3
  149. package/src/lib/shapes/arrow/toolStates/Pointing.tsx +1 -1
  150. package/src/lib/shapes/bookmark/BookmarkShapeUtil.tsx +4 -5
  151. package/src/lib/shapes/frame/FrameShapeUtil.tsx +1 -0
  152. package/src/lib/shapes/frame/components/FrameLabelInput.tsx +10 -3
  153. package/src/lib/shapes/geo/GeoShapeUtil.tsx +1 -0
  154. package/src/lib/shapes/note/NoteShapeUtil.tsx +1 -0
  155. package/src/lib/shapes/shared/HyperlinkButton.tsx +5 -5
  156. package/src/lib/shapes/shared/useEditablePlainText.ts +3 -4
  157. package/src/lib/shapes/text/PlainTextArea.tsx +4 -3
  158. package/src/lib/shapes/text/RichTextArea.tsx +3 -4
  159. package/src/lib/tools/SelectTool/childStates/DraggingHandle.tsx +6 -2
  160. package/src/lib/ui/components/A11y.tsx +1 -2
  161. package/src/lib/ui/components/LanguageMenu.tsx +1 -0
  162. package/src/lib/ui/components/Minimap/DefaultMinimap.tsx +2 -1
  163. package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +1 -2
  164. package/src/lib/ui/components/StylePanel/StylePanelButtonPicker.tsx +9 -2
  165. package/src/lib/ui/components/Toolbar/AltTextEditor.tsx +4 -3
  166. package/src/lib/ui/components/Toolbar/LinkEditor.tsx +6 -5
  167. package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +1 -1
  168. package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +9 -2
  169. package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +1 -2
  170. package/src/lib/ui/components/primitives/TldrawUiInput.tsx +6 -3
  171. package/src/lib/ui/components/primitives/TldrawUiSlider.tsx +2 -2
  172. package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +2 -1
  173. package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +57 -13
  174. package/src/lib/ui/components/primitives/menus/TldrawUiMenuCheckboxItem.tsx +4 -0
  175. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +9 -9
  176. package/src/lib/ui/context/actions.tsx +13 -0
  177. package/src/lib/ui/hooks/useClipboardEvents.ts +1 -2
  178. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +2 -0
  179. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +4 -2
  180. package/src/lib/ui/version.ts +3 -3
  181. package/src/lib/ui.css +24 -1
  182. package/src/test/TestEditor.ts +8 -2
  183. package/src/test/getCulledShapes.test.tsx +71 -2
  184. package/tldraw.css +24 -1
@@ -1,9 +1,9 @@
1
1
  // This file is automatically generated by internal/scripts/refresh-assets.ts.
2
2
  // Do not edit manually. Or do, I'm a comment, not a cop.
3
3
 
4
- export const version = '3.16.0-canary.cc5427cdff41'
4
+ export const version = '3.16.0-canary.cd822ae4ebee'
5
5
  export const publishDates = {
6
6
  major: '2024-09-13T14:36:29.063Z',
7
- minor: '2025-09-08T21:56:42.443Z',
8
- patch: '2025-09-08T21:56:42.443Z',
7
+ minor: '2025-09-18T10:46:54.006Z',
8
+ patch: '2025-09-18T10:46:54.006Z',
9
9
  }
package/src/lib/ui.css CHANGED
@@ -168,7 +168,7 @@
168
168
  min-height: 40px;
169
169
  width: 100%;
170
170
  gap: 8px;
171
- margin: -4px 0px;
171
+ margin-top: -4px;
172
172
  }
173
173
 
174
174
  .tlui-button__menu::after {
@@ -494,6 +494,10 @@
494
494
  -webkit-user-select: auto !important;
495
495
  }
496
496
 
497
+ .tlui-input::placeholder {
498
+ color: var(--tl-color-text-3);
499
+ }
500
+
497
501
  .tlui-input__wrapper {
498
502
  width: 100%;
499
503
  height: 44px;
@@ -578,6 +582,12 @@
578
582
  box-shadow: var(--tl-shadow-3);
579
583
  }
580
584
 
585
+ @media (max-height: 600px) {
586
+ .tlui-menu {
587
+ max-height: 70vh;
588
+ }
589
+ }
590
+
581
591
  .tlui-menu::-webkit-scrollbar {
582
592
  display: none;
583
593
  }
@@ -1029,6 +1039,19 @@ tldraw? probably.
1029
1039
  display: none;
1030
1040
  }
1031
1041
 
1042
+ /*
1043
+ * This is used in a couple places, like Align and Vertical Align.
1044
+ * It's because we have a toolbar with a Toggle Group but then an adjacent button
1045
+ * next to it that opens a popup.
1046
+ */
1047
+ .tlui-style-panel__section .tlui-toolbar:has(.tlui-toolbar) {
1048
+ flex-wrap: wrap;
1049
+ }
1050
+
1051
+ .tlui-style-panel__section .tlui-toolbar:has(.tlui-toolbar) .tlui-style-panel__subheading {
1052
+ margin-left: -2px;
1053
+ }
1054
+
1032
1055
  .tlui-style-panel__section__common:not(:only-child) {
1033
1056
  margin-bottom: 7px;
1034
1057
  border-bottom: 1px solid var(--tl-color-divider);
@@ -86,8 +86,14 @@ export class TestEditor extends Editor {
86
86
  elm.tabIndex = 0
87
87
  elm.getBoundingClientRect = () => bounds as DOMRect
88
88
 
89
- const shapeUtilsWithDefaults = [...defaultShapeUtils, ...(options.shapeUtils ?? [])]
90
- const bindingUtilsWithDefaults = [...defaultBindingUtils, ...(options.bindingUtils ?? [])]
89
+ const shapeUtilsWithDefaults = [
90
+ ...defaultShapeUtils.filter((s) => !options.shapeUtils?.some((su) => su.type === s.type)),
91
+ ...(options.shapeUtils ?? []),
92
+ ]
93
+ const bindingUtilsWithDefaults = [
94
+ ...defaultBindingUtils.filter((b) => !options.bindingUtils?.some((bu) => bu.type === b.type)),
95
+ ...(options.bindingUtils ?? []),
96
+ ]
91
97
 
92
98
  super({
93
99
  ...options,
@@ -1,12 +1,50 @@
1
- import { Box, TLShapeId, createShapeId } from '@tldraw/editor'
1
+ import {
2
+ BaseBoxShapeUtil,
3
+ Box,
4
+ RecordProps,
5
+ T,
6
+ TLBaseShape,
7
+ TLShapeId,
8
+ createShapeId,
9
+ } from '@tldraw/editor'
2
10
  import { vi } from 'vitest'
3
11
  import { TestEditor } from './TestEditor'
4
12
  import { TL } from './test-jsx'
5
13
 
14
+ // Custom uncullable shape type for testing canCull override
15
+ type UncullableShape = TLBaseShape<'uncullable', { w: number; h: number }>
16
+
17
+ class UncullableShapeUtil extends BaseBoxShapeUtil<UncullableShape> {
18
+ static override type = 'uncullable' as const
19
+ static override props: RecordProps<UncullableShape> = {
20
+ w: T.number,
21
+ h: T.number,
22
+ }
23
+
24
+ override canCull() {
25
+ return false
26
+ }
27
+
28
+ override getDefaultProps(): UncullableShape['props'] {
29
+ return {
30
+ w: 100,
31
+ h: 100,
32
+ }
33
+ }
34
+
35
+ override component() {
36
+ return <div>Uncullable shape</div>
37
+ }
38
+
39
+ override indicator() {
40
+ return <div>Uncullable shape</div>
41
+ }
42
+ }
43
+
6
44
  let editor: TestEditor
7
45
 
8
46
  beforeEach(() => {
9
- editor = new TestEditor()
47
+ editor = new TestEditor({ shapeUtils: [UncullableShapeUtil] })
10
48
  editor.setScreenBounds({ x: 0, y: 0, w: 1800, h: 900 })
11
49
  })
12
50
 
@@ -203,3 +241,34 @@ it('works for shapes that are outside of the viewport, but are then moved inside
203
241
  // Arrow should also not be culled
204
242
  expect(editor.getCulledShapes()).toEqual(new Set())
205
243
  })
244
+
245
+ it('respects canCull override - shapes that cannot be culled are never culled', () => {
246
+ const cullableShapeId = createShapeId()
247
+ const uncullableShapeId = createShapeId()
248
+
249
+ // Create both shapes outside the viewport
250
+ editor.createShapes([
251
+ {
252
+ id: cullableShapeId,
253
+ type: 'geo',
254
+ x: -2000, // Way outside viewport
255
+ y: -2000,
256
+ props: { w: 100, h: 100 },
257
+ },
258
+ {
259
+ id: uncullableShapeId,
260
+ type: 'uncullable',
261
+ x: -2000, // Way outside viewport
262
+ y: -2000,
263
+ props: { w: 100, h: 100 },
264
+ },
265
+ ])
266
+
267
+ const culledShapes = editor.getCulledShapes()
268
+
269
+ // The regular geo shape should be culled since it's outside the viewport
270
+ expect(culledShapes).toContain(cullableShapeId)
271
+
272
+ // The uncullable shape should NOT be culled even though it's outside the viewport
273
+ expect(culledShapes).not.toContain(uncullableShapeId)
274
+ })
package/tldraw.css CHANGED
@@ -1964,7 +1964,7 @@ it from receiving any pointer events or affecting the cursor. */
1964
1964
  min-height: 40px;
1965
1965
  width: 100%;
1966
1966
  gap: 8px;
1967
- margin: -4px 0px;
1967
+ margin-top: -4px;
1968
1968
  }
1969
1969
 
1970
1970
  .tlui-button__menu::after {
@@ -2290,6 +2290,10 @@ it from receiving any pointer events or affecting the cursor. */
2290
2290
  -webkit-user-select: auto !important;
2291
2291
  }
2292
2292
 
2293
+ .tlui-input::placeholder {
2294
+ color: var(--tl-color-text-3);
2295
+ }
2296
+
2293
2297
  .tlui-input__wrapper {
2294
2298
  width: 100%;
2295
2299
  height: 44px;
@@ -2374,6 +2378,12 @@ it from receiving any pointer events or affecting the cursor. */
2374
2378
  box-shadow: var(--tl-shadow-3);
2375
2379
  }
2376
2380
 
2381
+ @media (max-height: 600px) {
2382
+ .tlui-menu {
2383
+ max-height: 70vh;
2384
+ }
2385
+ }
2386
+
2377
2387
  .tlui-menu::-webkit-scrollbar {
2378
2388
  display: none;
2379
2389
  }
@@ -2825,6 +2835,19 @@ tldraw? probably.
2825
2835
  display: none;
2826
2836
  }
2827
2837
 
2838
+ /*
2839
+ * This is used in a couple places, like Align and Vertical Align.
2840
+ * It's because we have a toolbar with a Toggle Group but then an adjacent button
2841
+ * next to it that opens a popup.
2842
+ */
2843
+ .tlui-style-panel__section .tlui-toolbar:has(.tlui-toolbar) {
2844
+ flex-wrap: wrap;
2845
+ }
2846
+
2847
+ .tlui-style-panel__section .tlui-toolbar:has(.tlui-toolbar) .tlui-style-panel__subheading {
2848
+ margin-left: -2px;
2849
+ }
2850
+
2828
2851
  .tlui-style-panel__section__common:not(:only-child) {
2829
2852
  margin-bottom: 7px;
2830
2853
  border-bottom: 1px solid var(--tl-color-divider);