tldraw 3.16.0-canary.ed8bd30c0f28 → 3.16.0-canary.efdec30fc411
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.
- package/dist-cjs/index.d.ts +89 -4
- package/dist-cjs/index.js +11 -1
- package/dist-cjs/index.js.map +2 -2
- package/dist-cjs/lib/shapes/arrow/arrowTargetState.js +1 -1
- package/dist-cjs/lib/shapes/arrow/arrowTargetState.js.map +2 -2
- package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js +10 -1
- package/dist-cjs/lib/shapes/shared/usePrefersReducedMotion.js.map +2 -2
- package/dist-cjs/lib/tools/SelectTool/childStates/Translating.js.map +2 -2
- package/dist-cjs/lib/ui/components/AccessibilityMenu.js +35 -0
- package/dist-cjs/lib/ui/components/AccessibilityMenu.js.map +7 -0
- package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js +2 -1
- package/dist-cjs/lib/ui/components/ActionsMenu/DefaultActionsMenu.js.map +2 -2
- package/dist-cjs/lib/ui/components/DefaultMenuPanel.js +3 -2
- package/dist-cjs/lib/ui/components/DefaultMenuPanel.js.map +2 -2
- package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +3 -3
- package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
- package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js +1 -1
- package/dist-cjs/lib/ui/components/NavigationPanel/DefaultNavigationPanel.js.map +2 -2
- package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js +2 -1
- package/dist-cjs/lib/ui/components/PageMenu/DefaultPageMenu.js.map +2 -2
- package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js +3 -2
- package/dist-cjs/lib/ui/components/SharePanel/PeopleMenuItem.js.map +2 -2
- package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js +2 -2
- package/dist-cjs/lib/ui/components/SharePanel/UserPresenceColorPicker.js.map +2 -2
- package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js +2 -0
- package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanel.js.map +2 -2
- package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js +171 -140
- package/dist-cjs/lib/ui/components/StylePanel/DefaultStylePanelContent.js.map +2 -2
- package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js +3 -3
- package/dist-cjs/lib/ui/components/StylePanel/DoubleDropdownPicker.js.map +2 -2
- package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js +26 -25
- package/dist-cjs/lib/ui/components/StylePanel/DropdownPicker.js.map +3 -3
- package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js +6 -5
- package/dist-cjs/lib/ui/components/Toolbar/DefaultToolbar.js.map +2 -2
- package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js +9 -10
- package/dist-cjs/lib/ui/components/Toolbar/OverflowingToolbar.js.map +2 -2
- package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js +5 -4
- package/dist-cjs/lib/ui/components/Toolbar/ToggleToolLockedButton.js.map +2 -2
- package/dist-cjs/lib/ui/components/menu-items.js +6 -0
- package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js +4 -15
- package/dist-cjs/lib/ui/components/primitives/TldrawUiButtonPicker.js.map +3 -3
- package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js +1 -1
- package/dist-cjs/lib/ui/components/primitives/TldrawUiContextualToolbar.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js +3 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiPopover.js.map +3 -3
- package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js +18 -7
- package/dist-cjs/lib/ui/components/primitives/TldrawUiToolbar.js.map +2 -2
- package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js +284 -0
- package/dist-cjs/lib/ui/components/primitives/TldrawUiTooltip.js.map +7 -0
- package/dist-cjs/lib/ui/components/primitives/layout.js +51 -0
- package/dist-cjs/lib/ui/components/primitives/layout.js.map +7 -0
- package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +152 -2
- package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
- package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js +3 -2
- package/dist-cjs/lib/ui/context/TldrawUiContextProvider.js.map +2 -2
- package/dist-cjs/lib/ui/context/actions.js +15 -0
- package/dist-cjs/lib/ui/context/actions.js.map +2 -2
- package/dist-cjs/lib/ui/context/events.js.map +2 -2
- package/dist-cjs/lib/ui/hooks/useTools.js +76 -9
- package/dist-cjs/lib/ui/hooks/useTools.js.map +2 -2
- package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
- package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +3 -0
- package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
- package/dist-cjs/lib/ui/version.js +3 -3
- package/dist-cjs/lib/ui/version.js.map +1 -1
- package/dist-esm/index.d.mts +89 -4
- package/dist-esm/index.mjs +19 -1
- package/dist-esm/index.mjs.map +2 -2
- package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs +1 -1
- package/dist-esm/lib/shapes/arrow/arrowTargetState.mjs.map +2 -2
- package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs +10 -1
- package/dist-esm/lib/shapes/shared/usePrefersReducedMotion.mjs.map +2 -2
- package/dist-esm/lib/tools/SelectTool/childStates/Translating.mjs.map +2 -2
- package/dist-esm/lib/ui/components/AccessibilityMenu.mjs +19 -0
- package/dist-esm/lib/ui/components/AccessibilityMenu.mjs.map +7 -0
- package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs +2 -1
- package/dist-esm/lib/ui/components/ActionsMenu/DefaultActionsMenu.mjs.map +2 -2
- package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs +3 -2
- package/dist-esm/lib/ui/components/DefaultMenuPanel.mjs.map +2 -2
- package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +3 -5
- package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
- package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs +1 -1
- package/dist-esm/lib/ui/components/NavigationPanel/DefaultNavigationPanel.mjs.map +2 -2
- package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs +2 -1
- package/dist-esm/lib/ui/components/PageMenu/DefaultPageMenu.mjs.map +2 -2
- package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs +3 -2
- package/dist-esm/lib/ui/components/SharePanel/PeopleMenuItem.mjs.map +2 -2
- package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs +2 -2
- package/dist-esm/lib/ui/components/SharePanel/UserPresenceColorPicker.mjs.map +2 -2
- package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs +3 -1
- package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanel.mjs.map +2 -2
- package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs +171 -140
- package/dist-esm/lib/ui/components/StylePanel/DefaultStylePanelContent.mjs.map +2 -2
- package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs +3 -3
- package/dist-esm/lib/ui/components/StylePanel/DoubleDropdownPicker.mjs.map +2 -2
- package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs +26 -25
- package/dist-esm/lib/ui/components/StylePanel/DropdownPicker.mjs.map +2 -2
- package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs +6 -5
- package/dist-esm/lib/ui/components/Toolbar/DefaultToolbar.mjs.map +2 -2
- package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs +9 -10
- package/dist-esm/lib/ui/components/Toolbar/OverflowingToolbar.mjs.map +2 -2
- package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs +5 -4
- package/dist-esm/lib/ui/components/Toolbar/ToggleToolLockedButton.mjs.map +2 -2
- package/dist-esm/lib/ui/components/menu-items.mjs +6 -0
- package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs +4 -5
- package/dist-esm/lib/ui/components/primitives/TldrawUiButtonPicker.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs +1 -1
- package/dist-esm/lib/ui/components/primitives/TldrawUiContextualToolbar.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs +3 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiPopover.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs +18 -7
- package/dist-esm/lib/ui/components/primitives/TldrawUiToolbar.mjs.map +2 -2
- package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs +254 -0
- package/dist-esm/lib/ui/components/primitives/TldrawUiTooltip.mjs.map +7 -0
- package/dist-esm/lib/ui/components/primitives/layout.mjs +21 -0
- package/dist-esm/lib/ui/components/primitives/layout.mjs.map +7 -0
- package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +160 -4
- package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
- package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs +3 -2
- package/dist-esm/lib/ui/context/TldrawUiContextProvider.mjs.map +2 -2
- package/dist-esm/lib/ui/context/actions.mjs +15 -0
- package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
- package/dist-esm/lib/ui/context/events.mjs.map +2 -2
- package/dist-esm/lib/ui/hooks/useTools.mjs +83 -10
- package/dist-esm/lib/ui/hooks/useTools.mjs.map +2 -2
- package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +3 -0
- package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
- package/dist-esm/lib/ui/version.mjs +3 -3
- package/dist-esm/lib/ui/version.mjs.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +15 -0
- package/src/lib/shapes/arrow/arrowTargetState.ts +2 -1
- package/src/lib/shapes/shared/usePrefersReducedMotion.tsx +11 -1
- package/src/lib/tools/SelectTool/childStates/Translating.ts +0 -1
- package/src/lib/ui/components/AccessibilityMenu.tsx +20 -0
- package/src/lib/ui/components/ActionsMenu/DefaultActionsMenu.tsx +2 -1
- package/src/lib/ui/components/DefaultMenuPanel.tsx +4 -3
- package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +4 -4
- package/src/lib/ui/components/NavigationPanel/DefaultNavigationPanel.tsx +1 -1
- package/src/lib/ui/components/PageMenu/DefaultPageMenu.tsx +3 -2
- package/src/lib/ui/components/SharePanel/PeopleMenuItem.tsx +4 -3
- package/src/lib/ui/components/SharePanel/UserPresenceColorPicker.tsx +3 -3
- package/src/lib/ui/components/StylePanel/DefaultStylePanel.tsx +3 -1
- package/src/lib/ui/components/StylePanel/DefaultStylePanelContent.tsx +146 -107
- package/src/lib/ui/components/StylePanel/DoubleDropdownPicker.tsx +3 -3
- package/src/lib/ui/components/StylePanel/DropdownPicker.tsx +7 -6
- package/src/lib/ui/components/Toolbar/DefaultToolbar.tsx +7 -6
- package/src/lib/ui/components/Toolbar/OverflowingToolbar.tsx +10 -11
- package/src/lib/ui/components/Toolbar/ToggleToolLockedButton.tsx +14 -11
- package/src/lib/ui/components/menu-items.tsx +8 -0
- package/src/lib/ui/components/primitives/TldrawUiButtonPicker.tsx +38 -36
- package/src/lib/ui/components/primitives/TldrawUiContextualToolbar.tsx +1 -1
- package/src/lib/ui/components/primitives/TldrawUiPopover.tsx +4 -2
- package/src/lib/ui/components/primitives/TldrawUiToolbar.tsx +34 -12
- package/src/lib/ui/components/primitives/TldrawUiTooltip.tsx +332 -0
- package/src/lib/ui/components/primitives/layout.tsx +33 -0
- package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +218 -3
- package/src/lib/ui/context/TldrawUiContextProvider.tsx +23 -20
- package/src/lib/ui/context/actions.tsx +15 -0
- package/src/lib/ui/context/events.tsx +2 -0
- package/src/lib/ui/hooks/useTools.tsx +118 -10
- package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +3 -0
- package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +3 -0
- package/src/lib/ui/version.ts +3 -3
- package/src/lib/ui.css +80 -69
- package/src/test/arrows-megabus.test.tsx +12 -6
- package/src/test/inner-outer-margin.test.ts +315 -0
- package/tldraw.css +82 -69
|
@@ -5,6 +5,7 @@ import { useBreakpoint } from '../context/breakpoints'
|
|
|
5
5
|
import { useTldrawUiComponents } from '../context/components'
|
|
6
6
|
import { useTranslation } from '../hooks/useTranslation/useTranslation'
|
|
7
7
|
import { TldrawUiToolbar } from './primitives/TldrawUiToolbar'
|
|
8
|
+
import { TldrawUiRow } from './primitives/layout'
|
|
8
9
|
|
|
9
10
|
/** @public @react */
|
|
10
11
|
export const DefaultMenuPanel = memo(function MenuPanel() {
|
|
@@ -32,16 +33,16 @@ export const DefaultMenuPanel = memo(function MenuPanel() {
|
|
|
32
33
|
|
|
33
34
|
return (
|
|
34
35
|
<nav ref={ref} className="tlui-menu-zone">
|
|
35
|
-
<
|
|
36
|
+
<TldrawUiRow>
|
|
36
37
|
{MainMenu && <MainMenu />}
|
|
37
38
|
{PageMenu && !isSinglePageMode && <PageMenu />}
|
|
38
39
|
{showQuickActions ? (
|
|
39
|
-
<TldrawUiToolbar
|
|
40
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('actions-menu.title')}>
|
|
40
41
|
{QuickActions && <QuickActions />}
|
|
41
42
|
{ActionsMenu && <ActionsMenu />}
|
|
42
43
|
</TldrawUiToolbar>
|
|
43
44
|
) : null}
|
|
44
|
-
</
|
|
45
|
+
</TldrawUiRow>
|
|
45
46
|
</nav>
|
|
46
47
|
)
|
|
47
48
|
})
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useCanRedo, useCanUndo } from '../../hooks/menu-hooks'
|
|
2
|
+
import { AccessibilityMenu } from '../AccessibilityMenu'
|
|
2
3
|
import { ColorSchemeMenu } from '../ColorSchemeMenu'
|
|
3
4
|
import { KeyboardShortcutsMenuItem } from '../HelpMenu/DefaultHelpMenuContent'
|
|
4
5
|
import { LanguageMenu } from '../LanguageMenu'
|
|
@@ -19,10 +20,8 @@ import {
|
|
|
19
20
|
ToggleEdgeScrollingItem,
|
|
20
21
|
ToggleFocusModeItem,
|
|
21
22
|
ToggleGridItem,
|
|
22
|
-
ToggleKeyboardShortcutsItem,
|
|
23
23
|
ToggleLockMenuItem,
|
|
24
24
|
TogglePasteAtCursorItem,
|
|
25
|
-
ToggleReduceMotionItem,
|
|
26
25
|
ToggleSnapModeItem,
|
|
27
26
|
ToggleToolLockItem,
|
|
28
27
|
ToggleTransparentBgMenuItem,
|
|
@@ -161,8 +160,6 @@ export function PreferencesGroup() {
|
|
|
161
160
|
<ToggleWrapModeItem />
|
|
162
161
|
<ToggleFocusModeItem />
|
|
163
162
|
<ToggleEdgeScrollingItem />
|
|
164
|
-
<ToggleReduceMotionItem />
|
|
165
|
-
<ToggleKeyboardShortcutsItem />
|
|
166
163
|
<ToggleDynamicSizeModeItem />
|
|
167
164
|
<TogglePasteAtCursorItem />
|
|
168
165
|
<ToggleDebugModeItem />
|
|
@@ -170,6 +167,9 @@ export function PreferencesGroup() {
|
|
|
170
167
|
<TldrawUiMenuGroup id="color-scheme">
|
|
171
168
|
<ColorSchemeMenu />
|
|
172
169
|
</TldrawUiMenuGroup>
|
|
170
|
+
<TldrawUiMenuGroup id="accessibility-menu">
|
|
171
|
+
<AccessibilityMenu />
|
|
172
|
+
</TldrawUiMenuGroup>
|
|
173
173
|
</TldrawUiMenuSubmenu>
|
|
174
174
|
<LanguageMenu />
|
|
175
175
|
<KeyboardShortcutsMenuItem />
|
|
@@ -33,7 +33,7 @@ export const DefaultNavigationPanel = memo(function DefaultNavigationPanel() {
|
|
|
33
33
|
|
|
34
34
|
return (
|
|
35
35
|
<div ref={ref} className="tlui-navigation-panel">
|
|
36
|
-
<TldrawUiToolbar
|
|
36
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('navigation-zone.title')}>
|
|
37
37
|
{ZoomMenu && breakpoint < PORTRAIT_BREAKPOINT.TABLET ? (
|
|
38
38
|
<ZoomMenu />
|
|
39
39
|
) : (
|
|
@@ -24,6 +24,7 @@ import {
|
|
|
24
24
|
TldrawUiPopoverContent,
|
|
25
25
|
TldrawUiPopoverTrigger,
|
|
26
26
|
} from '../primitives/TldrawUiPopover'
|
|
27
|
+
import { TldrawUiRow } from '../primitives/layout'
|
|
27
28
|
import { PageItemInput } from './PageItemInput'
|
|
28
29
|
import { PageItemSubmenu } from './PageItemSubmenu'
|
|
29
30
|
import { onMovePage } from './edit-pages-shared'
|
|
@@ -329,7 +330,7 @@ export const DefaultPageMenu = memo(function DefaultPageMenu() {
|
|
|
329
330
|
<div className="tlui-page-menu__header">
|
|
330
331
|
<div className="tlui-page-menu__header__title">{msg('page-menu.title')}</div>
|
|
331
332
|
{!isReadonlyMode && (
|
|
332
|
-
<
|
|
333
|
+
<TldrawUiRow>
|
|
333
334
|
<TldrawUiButton
|
|
334
335
|
type="icon"
|
|
335
336
|
data-testid="page-menu.edit"
|
|
@@ -351,7 +352,7 @@ export const DefaultPageMenu = memo(function DefaultPageMenu() {
|
|
|
351
352
|
>
|
|
352
353
|
<TldrawUiButtonIcon icon="plus" />
|
|
353
354
|
</TldrawUiButton>
|
|
354
|
-
</
|
|
355
|
+
</TldrawUiRow>
|
|
355
356
|
)}
|
|
356
357
|
</div>
|
|
357
358
|
<div
|
|
@@ -5,6 +5,7 @@ import { useTranslation } from '../../hooks/useTranslation/useTranslation'
|
|
|
5
5
|
import { TldrawUiButton } from '../primitives/Button/TldrawUiButton'
|
|
6
6
|
import { TldrawUiButtonIcon } from '../primitives/Button/TldrawUiButtonIcon'
|
|
7
7
|
import { TldrawUiIcon } from '../primitives/TldrawUiIcon'
|
|
8
|
+
import { TldrawUiRow } from '../primitives/layout'
|
|
8
9
|
|
|
9
10
|
export const PeopleMenuItem = track(function PeopleMenuItem({ userId }: { userId: string }) {
|
|
10
11
|
const editor = useEditor()
|
|
@@ -29,8 +30,8 @@ export const PeopleMenuItem = track(function PeopleMenuItem({ userId }: { userId
|
|
|
29
30
|
if (!presence) return null
|
|
30
31
|
|
|
31
32
|
return (
|
|
32
|
-
<
|
|
33
|
-
className="tlui-people-menu__item
|
|
33
|
+
<TldrawUiRow
|
|
34
|
+
className="tlui-people-menu__item"
|
|
34
35
|
data-follow={youAreFollowingThem || theyAreFollowingYou}
|
|
35
36
|
>
|
|
36
37
|
<TldrawUiButton
|
|
@@ -61,6 +62,6 @@ export const PeopleMenuItem = track(function PeopleMenuItem({ userId }: { userId
|
|
|
61
62
|
icon={theyAreFollowingYou ? 'leading' : youAreFollowingThem ? 'following' : 'follow'}
|
|
62
63
|
/>
|
|
63
64
|
</TldrawUiButton>
|
|
64
|
-
</
|
|
65
|
+
</TldrawUiRow>
|
|
65
66
|
)
|
|
66
67
|
})
|
|
@@ -5,6 +5,7 @@ import { useUiEvents } from '../../context/events'
|
|
|
5
5
|
import { useTranslation } from '../../hooks/useTranslation/useTranslation'
|
|
6
6
|
import { TldrawUiButton } from '../primitives/Button/TldrawUiButton'
|
|
7
7
|
import { TldrawUiButtonIcon } from '../primitives/Button/TldrawUiButtonIcon'
|
|
8
|
+
import { TldrawUiGrid } from '../primitives/layout'
|
|
8
9
|
|
|
9
10
|
export const UserPresenceColorPicker = track(function UserPresenceColorPicker() {
|
|
10
11
|
const editor = useEditor()
|
|
@@ -100,7 +101,7 @@ export const UserPresenceColorPicker = track(function UserPresenceColorPicker()
|
|
|
100
101
|
side="left"
|
|
101
102
|
sideOffset={8}
|
|
102
103
|
>
|
|
103
|
-
<
|
|
104
|
+
<TldrawUiGrid>
|
|
104
105
|
{USER_COLORS.map((item: string) => (
|
|
105
106
|
<TldrawUiButton
|
|
106
107
|
type="icon"
|
|
@@ -110,7 +111,6 @@ export const UserPresenceColorPicker = track(function UserPresenceColorPicker()
|
|
|
110
111
|
aria-label={item}
|
|
111
112
|
isActive={value === item}
|
|
112
113
|
title={item}
|
|
113
|
-
className={'tlui-button-grid__button'}
|
|
114
114
|
style={{ color: item }}
|
|
115
115
|
onPointerEnter={handleButtonPointerEnter}
|
|
116
116
|
onPointerDown={handleButtonPointerDown}
|
|
@@ -120,7 +120,7 @@ export const UserPresenceColorPicker = track(function UserPresenceColorPicker()
|
|
|
120
120
|
<TldrawUiButtonIcon icon="color" />
|
|
121
121
|
</TldrawUiButton>
|
|
122
122
|
))}
|
|
123
|
-
</
|
|
123
|
+
</TldrawUiGrid>
|
|
124
124
|
</_Popover.Content>
|
|
125
125
|
</_Popover.Portal>
|
|
126
126
|
</_Popover.Root>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useEditor, usePassThroughWheelEvents } from '@tldraw/editor'
|
|
1
|
+
import { useEditor, usePassThroughWheelEvents, useValue } from '@tldraw/editor'
|
|
2
2
|
import classNames from 'classnames'
|
|
3
3
|
import { ReactNode, memo, useCallback, useEffect, useRef } from 'react'
|
|
4
4
|
import { useRelevantStyles } from '../../hooks/useRelevantStyles'
|
|
@@ -16,6 +16,7 @@ export const DefaultStylePanel = memo(function DefaultStylePanel({
|
|
|
16
16
|
children,
|
|
17
17
|
}: TLUiStylePanelProps) {
|
|
18
18
|
const editor = useEditor()
|
|
19
|
+
const showUiLabels = useValue('showUiLabels', () => editor.user.getShowUiLabels(), [editor])
|
|
19
20
|
|
|
20
21
|
const ref = useRef<HTMLDivElement>(null)
|
|
21
22
|
usePassThroughWheelEvents(ref)
|
|
@@ -50,6 +51,7 @@ export const DefaultStylePanel = memo(function DefaultStylePanel({
|
|
|
50
51
|
ref={ref}
|
|
51
52
|
className={classNames('tlui-style-panel', { 'tlui-style-panel__wrapper': !isMobile })}
|
|
52
53
|
data-ismobile={isMobile}
|
|
54
|
+
data-show-ui-labels={showUiLabels}
|
|
53
55
|
onPointerLeave={handlePointerOut}
|
|
54
56
|
>
|
|
55
57
|
{content}
|
|
@@ -35,6 +35,11 @@ import { TldrawUiToolbar, TldrawUiToolbarButton } from '../primitives/TldrawUiTo
|
|
|
35
35
|
import { DoubleDropdownPicker } from './DoubleDropdownPicker'
|
|
36
36
|
import { DropdownPicker } from './DropdownPicker'
|
|
37
37
|
|
|
38
|
+
// Local component for style panel subheadings
|
|
39
|
+
function StylePanelSubheading({ children }: { children: React.ReactNode }) {
|
|
40
|
+
return <h3 className="tlui-style-panel__subheading">{children}</h3>
|
|
41
|
+
}
|
|
42
|
+
|
|
38
43
|
/** @public */
|
|
39
44
|
export interface TLUiStylePanelContentProps {
|
|
40
45
|
styles: ReturnType<typeof useRelevantStyles>
|
|
@@ -115,6 +120,7 @@ export function CommonStylePickerSet({ styles, theme }: ThemeStylePickerSetProps
|
|
|
115
120
|
const editor = useEditor()
|
|
116
121
|
|
|
117
122
|
const onHistoryMark = useCallback((id: string) => editor.markHistoryStoppingPoint(id), [editor])
|
|
123
|
+
const showUiLabels = useValue('showUiLabels', () => editor.user.getShowUiLabels(), [editor])
|
|
118
124
|
|
|
119
125
|
const handleValueChange = useStyleChangeCallback()
|
|
120
126
|
|
|
@@ -129,70 +135,90 @@ export function CommonStylePickerSet({ styles, theme }: ThemeStylePickerSetProps
|
|
|
129
135
|
<>
|
|
130
136
|
<div className="tlui-style-panel__section__common" data-testid="style.panel">
|
|
131
137
|
{color === undefined ? null : (
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
items={STYLES.color}
|
|
138
|
-
value={color}
|
|
139
|
-
onValueChange={handleValueChange}
|
|
140
|
-
theme={theme}
|
|
141
|
-
onHistoryMark={onHistoryMark}
|
|
142
|
-
/>
|
|
143
|
-
</TldrawUiToolbar>
|
|
144
|
-
)}
|
|
145
|
-
<OpacitySlider />
|
|
146
|
-
</div>
|
|
147
|
-
{showPickers && (
|
|
148
|
-
<div className="tlui-style-panel__section">
|
|
149
|
-
{fill === undefined ? null : (
|
|
150
|
-
<TldrawUiToolbar label={msg('style-panel.fill')}>
|
|
138
|
+
<>
|
|
139
|
+
{showUiLabels && (
|
|
140
|
+
<StylePanelSubheading>{msg('style-panel.color')}</StylePanelSubheading>
|
|
141
|
+
)}
|
|
142
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.color')}>
|
|
151
143
|
<TldrawUiButtonPicker
|
|
152
|
-
title={msg('style-panel.
|
|
153
|
-
uiType="
|
|
154
|
-
style={
|
|
155
|
-
items={STYLES.
|
|
156
|
-
value={
|
|
144
|
+
title={msg('style-panel.color')}
|
|
145
|
+
uiType="color"
|
|
146
|
+
style={DefaultColorStyle}
|
|
147
|
+
items={STYLES.color}
|
|
148
|
+
value={color}
|
|
157
149
|
onValueChange={handleValueChange}
|
|
158
150
|
theme={theme}
|
|
159
151
|
onHistoryMark={onHistoryMark}
|
|
160
152
|
/>
|
|
161
153
|
</TldrawUiToolbar>
|
|
154
|
+
</>
|
|
155
|
+
)}
|
|
156
|
+
<OpacitySlider />
|
|
157
|
+
</div>
|
|
158
|
+
{showPickers && (
|
|
159
|
+
<div className="tlui-style-panel__section">
|
|
160
|
+
{fill === undefined ? null : (
|
|
161
|
+
<>
|
|
162
|
+
{showUiLabels && (
|
|
163
|
+
<StylePanelSubheading>{msg('style-panel.fill')}</StylePanelSubheading>
|
|
164
|
+
)}
|
|
165
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.fill')}>
|
|
166
|
+
<TldrawUiButtonPicker
|
|
167
|
+
title={msg('style-panel.fill')}
|
|
168
|
+
uiType="fill"
|
|
169
|
+
style={DefaultFillStyle}
|
|
170
|
+
items={STYLES.fill}
|
|
171
|
+
value={fill}
|
|
172
|
+
onValueChange={handleValueChange}
|
|
173
|
+
theme={theme}
|
|
174
|
+
onHistoryMark={onHistoryMark}
|
|
175
|
+
/>
|
|
176
|
+
</TldrawUiToolbar>
|
|
177
|
+
</>
|
|
162
178
|
)}
|
|
163
179
|
{dash === undefined ? null : (
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
180
|
+
<>
|
|
181
|
+
{showUiLabels && (
|
|
182
|
+
<StylePanelSubheading>{msg('style-panel.dash')}</StylePanelSubheading>
|
|
183
|
+
)}
|
|
184
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.dash')}>
|
|
185
|
+
<TldrawUiButtonPicker
|
|
186
|
+
title={msg('style-panel.dash')}
|
|
187
|
+
uiType="dash"
|
|
188
|
+
style={DefaultDashStyle}
|
|
189
|
+
items={STYLES.dash}
|
|
190
|
+
value={dash}
|
|
191
|
+
onValueChange={handleValueChange}
|
|
192
|
+
theme={theme}
|
|
193
|
+
onHistoryMark={onHistoryMark}
|
|
194
|
+
/>
|
|
195
|
+
</TldrawUiToolbar>
|
|
196
|
+
</>
|
|
176
197
|
)}
|
|
177
198
|
{size === undefined ? null : (
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
199
|
+
<>
|
|
200
|
+
{showUiLabels && (
|
|
201
|
+
<StylePanelSubheading>{msg('style-panel.size')}</StylePanelSubheading>
|
|
202
|
+
)}
|
|
203
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.size')}>
|
|
204
|
+
<TldrawUiButtonPicker
|
|
205
|
+
title={msg('style-panel.size')}
|
|
206
|
+
uiType="size"
|
|
207
|
+
style={DefaultSizeStyle}
|
|
208
|
+
items={STYLES.size}
|
|
209
|
+
value={size}
|
|
210
|
+
onValueChange={(style, value) => {
|
|
211
|
+
handleValueChange(style, value)
|
|
212
|
+
const selectedShapeIds = editor.getSelectedShapeIds()
|
|
213
|
+
if (selectedShapeIds.length > 0) {
|
|
214
|
+
kickoutOccludedShapes(editor, selectedShapeIds)
|
|
215
|
+
}
|
|
216
|
+
}}
|
|
217
|
+
theme={theme}
|
|
218
|
+
onHistoryMark={onHistoryMark}
|
|
219
|
+
/>
|
|
220
|
+
</TldrawUiToolbar>
|
|
221
|
+
</>
|
|
196
222
|
)}
|
|
197
223
|
</div>
|
|
198
224
|
)}
|
|
@@ -207,6 +233,8 @@ export function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps)
|
|
|
207
233
|
|
|
208
234
|
const editor = useEditor()
|
|
209
235
|
const onHistoryMark = useCallback((id: string) => editor.markHistoryStoppingPoint(id), [editor])
|
|
236
|
+
const showUiLabels = useValue('showUiLabels', () => editor.user.getShowUiLabels(), [editor])
|
|
237
|
+
const labelStr = showUiLabels && msg('style-panel.font')
|
|
210
238
|
|
|
211
239
|
const font = styles.get(DefaultFontStyle)
|
|
212
240
|
const textAlign = styles.get(DefaultTextAlignStyle)
|
|
@@ -219,33 +247,37 @@ export function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps)
|
|
|
219
247
|
return (
|
|
220
248
|
<div className="tlui-style-panel__section">
|
|
221
249
|
{font === undefined ? null : (
|
|
222
|
-
|
|
223
|
-
<
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
250
|
+
<>
|
|
251
|
+
{labelStr && <StylePanelSubheading>{labelStr}</StylePanelSubheading>}
|
|
252
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.font')}>
|
|
253
|
+
<TldrawUiButtonPicker
|
|
254
|
+
title={msg('style-panel.font')}
|
|
255
|
+
uiType="font"
|
|
256
|
+
style={DefaultFontStyle}
|
|
257
|
+
items={STYLES.font}
|
|
258
|
+
value={font}
|
|
259
|
+
onValueChange={handleValueChange}
|
|
260
|
+
theme={theme}
|
|
261
|
+
onHistoryMark={onHistoryMark}
|
|
262
|
+
/>
|
|
263
|
+
</TldrawUiToolbar>
|
|
264
|
+
</>
|
|
234
265
|
)}
|
|
235
266
|
|
|
236
267
|
{textAlign === undefined ? null : (
|
|
237
|
-
|
|
238
|
-
<
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
268
|
+
<>
|
|
269
|
+
{showUiLabels && <StylePanelSubheading>{msg('style-panel.align')}</StylePanelSubheading>}
|
|
270
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.align')}>
|
|
271
|
+
<TldrawUiButtonPicker
|
|
272
|
+
title={msg('style-panel.align')}
|
|
273
|
+
uiType="align"
|
|
274
|
+
style={DefaultTextAlignStyle}
|
|
275
|
+
items={STYLES.textAlign}
|
|
276
|
+
value={textAlign}
|
|
277
|
+
onValueChange={handleValueChange}
|
|
278
|
+
theme={theme}
|
|
279
|
+
onHistoryMark={onHistoryMark}
|
|
280
|
+
/>
|
|
249
281
|
<TldrawUiToolbarButton
|
|
250
282
|
type="icon"
|
|
251
283
|
title={msg('style-panel.vertical-align')}
|
|
@@ -254,23 +286,26 @@ export function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps)
|
|
|
254
286
|
>
|
|
255
287
|
<TldrawUiButtonIcon icon="vertical-align-middle" />
|
|
256
288
|
</TldrawUiToolbarButton>
|
|
257
|
-
</
|
|
258
|
-
|
|
289
|
+
</TldrawUiToolbar>
|
|
290
|
+
</>
|
|
259
291
|
)}
|
|
260
292
|
|
|
261
293
|
{labelAlign === undefined ? null : (
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
294
|
+
<>
|
|
295
|
+
{showUiLabels && (
|
|
296
|
+
<StylePanelSubheading>{msg('style-panel.label-align')}</StylePanelSubheading>
|
|
297
|
+
)}
|
|
298
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.label-align')}>
|
|
299
|
+
<TldrawUiButtonPicker
|
|
300
|
+
title={msg('style-panel.label-align')}
|
|
301
|
+
uiType="align"
|
|
302
|
+
style={DefaultHorizontalAlignStyle}
|
|
303
|
+
items={STYLES.horizontalAlign}
|
|
304
|
+
value={labelAlign}
|
|
305
|
+
onValueChange={handleValueChange}
|
|
306
|
+
theme={theme}
|
|
307
|
+
onHistoryMark={onHistoryMark}
|
|
308
|
+
/>
|
|
274
309
|
{verticalLabelAlign === undefined ? (
|
|
275
310
|
<TldrawUiToolbarButton
|
|
276
311
|
type="icon"
|
|
@@ -292,8 +327,8 @@ export function TextStylePickerSet({ theme, styles }: ThemeStylePickerSetProps)
|
|
|
292
327
|
onValueChange={handleValueChange}
|
|
293
328
|
/>
|
|
294
329
|
)}
|
|
295
|
-
</
|
|
296
|
-
|
|
330
|
+
</TldrawUiToolbar>
|
|
331
|
+
</>
|
|
297
332
|
)}
|
|
298
333
|
</div>
|
|
299
334
|
)
|
|
@@ -309,7 +344,7 @@ export function GeoStylePickerSet({ styles }: StylePickerSetProps) {
|
|
|
309
344
|
}
|
|
310
345
|
|
|
311
346
|
return (
|
|
312
|
-
<TldrawUiToolbar label={msg('style-panel.geo')}>
|
|
347
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.geo')}>
|
|
313
348
|
<DropdownPicker
|
|
314
349
|
id="geo"
|
|
315
350
|
type="menu"
|
|
@@ -335,7 +370,7 @@ export function SplineStylePickerSet({ styles }: StylePickerSetProps) {
|
|
|
335
370
|
}
|
|
336
371
|
|
|
337
372
|
return (
|
|
338
|
-
<TldrawUiToolbar label={msg('style-panel.spline')}>
|
|
373
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.spline')}>
|
|
339
374
|
<DropdownPicker
|
|
340
375
|
id="spline"
|
|
341
376
|
type="menu"
|
|
@@ -361,7 +396,7 @@ export function ArrowStylePickerSet({ styles }: StylePickerSetProps) {
|
|
|
361
396
|
}
|
|
362
397
|
|
|
363
398
|
return (
|
|
364
|
-
<TldrawUiToolbar label={msg('style-panel.arrow-kind')}>
|
|
399
|
+
<TldrawUiToolbar orientation="horizontal" label={msg('style-panel.arrow-kind')}>
|
|
365
400
|
<DropdownPicker
|
|
366
401
|
id="arrow-kind"
|
|
367
402
|
type="menu"
|
|
@@ -410,6 +445,7 @@ export function OpacitySlider() {
|
|
|
410
445
|
const editor = useEditor()
|
|
411
446
|
|
|
412
447
|
const onHistoryMark = useCallback((id: string) => editor.markHistoryStoppingPoint(id), [editor])
|
|
448
|
+
const showUiLabels = useValue('showUiLabels', () => editor.user.getShowUiLabels(), [editor])
|
|
413
449
|
|
|
414
450
|
const opacity = useValue('opacity', () => editor.getSharedOpacity(), [editor])
|
|
415
451
|
const trackEvent = useUiEvents()
|
|
@@ -443,15 +479,18 @@ export function OpacitySlider() {
|
|
|
443
479
|
)
|
|
444
480
|
|
|
445
481
|
return (
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
482
|
+
<>
|
|
483
|
+
{showUiLabels && <StylePanelSubheading>{msg('style-panel.opacity')}</StylePanelSubheading>}
|
|
484
|
+
<TldrawUiSlider
|
|
485
|
+
data-testid="style.opacity"
|
|
486
|
+
value={opacityIndex >= 0 ? opacityIndex : tldrawSupportedOpacities.length - 1}
|
|
487
|
+
label={opacity.type === 'mixed' ? 'style-panel.mixed' : `opacity-style.${opacity.value}`}
|
|
488
|
+
onValueChange={handleOpacityValueChange}
|
|
489
|
+
steps={tldrawSupportedOpacities.length - 1}
|
|
490
|
+
title={msg('style-panel.opacity')}
|
|
491
|
+
onHistoryMark={onHistoryMark}
|
|
492
|
+
ariaValueModifier={25}
|
|
493
|
+
/>
|
|
494
|
+
</>
|
|
456
495
|
)
|
|
457
496
|
}
|
|
@@ -68,7 +68,7 @@ function DoubleDropdownPickerInner<T extends string>({
|
|
|
68
68
|
<div title={msg(label)} className="tlui-style-panel__double-select-picker-label">
|
|
69
69
|
{msg(label)}
|
|
70
70
|
</div>
|
|
71
|
-
<TldrawUiToolbar label={msg(label)}
|
|
71
|
+
<TldrawUiToolbar orientation="horizontal" label={msg(label)}>
|
|
72
72
|
<TldrawUiPopover id={idA} open={isOpenA} onOpenChange={setIsOpenA}>
|
|
73
73
|
<TldrawUiPopoverTrigger>
|
|
74
74
|
<TldrawUiToolbarButton
|
|
@@ -86,7 +86,7 @@ function DoubleDropdownPickerInner<T extends string>({
|
|
|
86
86
|
</TldrawUiToolbarButton>
|
|
87
87
|
</TldrawUiPopoverTrigger>
|
|
88
88
|
<TldrawUiPopoverContent side="left" align="center" sideOffset={80} alignOffset={0}>
|
|
89
|
-
<TldrawUiToolbar label={msg(labelA)}
|
|
89
|
+
<TldrawUiToolbar orientation="grid" label={msg(labelA)}>
|
|
90
90
|
<TldrawUiMenuContextProvider type="icons" sourceId="style-panel">
|
|
91
91
|
{itemsA.map((item) => {
|
|
92
92
|
return (
|
|
@@ -126,7 +126,7 @@ function DoubleDropdownPickerInner<T extends string>({
|
|
|
126
126
|
</TldrawUiToolbarButton>
|
|
127
127
|
</TldrawUiPopoverTrigger>
|
|
128
128
|
<TldrawUiPopoverContent side="left" align="center" sideOffset={116} alignOffset={0}>
|
|
129
|
-
<TldrawUiToolbar label={msg(labelB)}
|
|
129
|
+
<TldrawUiToolbar orientation="grid" label={msg(labelB)}>
|
|
130
130
|
<TldrawUiMenuContextProvider type="icons" sourceId="style-panel">
|
|
131
131
|
{itemsB.map((item) => {
|
|
132
132
|
return (
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { SharedStyle, StyleProp, tlmenus, useEditor } from '@tldraw/editor'
|
|
2
|
-
import classNames from 'classnames'
|
|
3
2
|
import * as React from 'react'
|
|
4
3
|
import { StyleValuesForUi } from '../../../styles'
|
|
5
4
|
import { TLUiTranslationKey } from '../../hooks/useTranslation/TLUiTranslationKey'
|
|
@@ -57,7 +56,12 @@ function DropdownPickerInner<T extends string>({
|
|
|
57
56
|
|
|
58
57
|
const popoverId = `style panel ${id}`
|
|
59
58
|
return (
|
|
60
|
-
<TldrawUiPopover
|
|
59
|
+
<TldrawUiPopover
|
|
60
|
+
id={popoverId}
|
|
61
|
+
open={isOpen}
|
|
62
|
+
onOpenChange={setIsOpen}
|
|
63
|
+
className="tlui-style-panel__dropdown-picker"
|
|
64
|
+
>
|
|
61
65
|
<TldrawUiPopoverTrigger>
|
|
62
66
|
<TldrawUiToolbarButton
|
|
63
67
|
type={type}
|
|
@@ -70,10 +74,7 @@ function DropdownPickerInner<T extends string>({
|
|
|
70
74
|
</TldrawUiToolbarButton>
|
|
71
75
|
</TldrawUiPopoverTrigger>
|
|
72
76
|
<TldrawUiPopoverContent side="left" align="center">
|
|
73
|
-
<TldrawUiToolbar
|
|
74
|
-
label={labelStr}
|
|
75
|
-
className={classNames('tlui-buttons__grid', `tlui-buttons__${stylePanelType}`)}
|
|
76
|
-
>
|
|
77
|
+
<TldrawUiToolbar orientation="grid" label={labelStr}>
|
|
77
78
|
<TldrawUiMenuContextProvider type="icons" sourceId="style-panel">
|
|
78
79
|
{items.map((item) => {
|
|
79
80
|
return (
|
|
@@ -44,14 +44,15 @@ export const DefaultToolbar = memo(function DefaultToolbar({ children }: Default
|
|
|
44
44
|
: breakpoint < PORTRAIT_BREAKPOINT.TABLET
|
|
45
45
|
|
|
46
46
|
return (
|
|
47
|
-
<div ref={ref} className="tlui-toolbar">
|
|
48
|
-
<div className="tlui-toolbar__inner">
|
|
49
|
-
<div className="tlui-toolbar__left">
|
|
47
|
+
<div ref={ref} className="tlui-main-toolbar">
|
|
48
|
+
<div className="tlui-main-toolbar__inner">
|
|
49
|
+
<div className="tlui-main-toolbar__left">
|
|
50
50
|
{!isReadonlyMode && (
|
|
51
|
-
<div className="tlui-toolbar__extras">
|
|
51
|
+
<div className="tlui-main-toolbar__extras">
|
|
52
52
|
{showQuickActions && (
|
|
53
53
|
<TldrawUiToolbar
|
|
54
|
-
|
|
54
|
+
orientation="horizontal"
|
|
55
|
+
className="tlui-main-toolbar__extras__controls"
|
|
55
56
|
label={msg('actions-menu.title')}
|
|
56
57
|
>
|
|
57
58
|
{QuickActions && <QuickActions />}
|
|
@@ -64,7 +65,7 @@ export const DefaultToolbar = memo(function DefaultToolbar({ children }: Default
|
|
|
64
65
|
<OverflowingToolbar>{children ?? <DefaultToolbarContent />}</OverflowingToolbar>
|
|
65
66
|
</div>
|
|
66
67
|
{breakpoint < PORTRAIT_BREAKPOINT.TABLET_SM && !isReadonlyMode && (
|
|
67
|
-
<div className="tlui-toolbar__tools">
|
|
68
|
+
<div className="tlui-main-toolbar__tools">
|
|
68
69
|
<MobileStylePanel />
|
|
69
70
|
</div>
|
|
70
71
|
)}
|