tldraw 3.15.0-canary.c4b9179d0b38 → 3.15.0-canary.c5c8f9bb0ec2

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 (71) hide show
  1. package/dist-cjs/index.d.ts +84 -77
  2. package/dist-cjs/index.js +30 -31
  3. package/dist-cjs/index.js.map +2 -2
  4. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js +5 -5
  5. package/dist-cjs/lib/shapes/frame/FrameShapeUtil.js.map +2 -2
  6. package/dist-cjs/lib/shapes/text/TextShapeUtil.js +11 -5
  7. package/dist-cjs/lib/shapes/text/TextShapeUtil.js.map +2 -2
  8. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js +1 -11
  9. package/dist-cjs/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.js.map +2 -2
  10. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js +0 -1
  11. package/dist-cjs/lib/ui/components/MainMenu/DefaultMainMenuContent.js.map +2 -2
  12. package/dist-cjs/lib/ui/components/menu-items.js +0 -16
  13. package/dist-cjs/lib/ui/components/menu-items.js.map +2 -2
  14. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js +2 -0
  15. package/dist-cjs/lib/ui/components/primitives/menus/TldrawUiMenuItem.js.map +2 -2
  16. package/dist-cjs/lib/ui/context/actions.js +1 -28
  17. package/dist-cjs/lib/ui/context/actions.js.map +2 -2
  18. package/dist-cjs/lib/ui/context/events.js.map +2 -2
  19. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js +7 -24
  20. package/dist-cjs/lib/ui/hooks/useClipboardEvents.js.map +2 -2
  21. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js +2 -2
  22. package/dist-cjs/lib/ui/hooks/useKeyboardShortcuts.js.map +2 -2
  23. package/dist-cjs/lib/ui/hooks/useTranslation/TLUiTranslationKey.js.map +1 -1
  24. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js +0 -4
  25. package/dist-cjs/lib/ui/hooks/useTranslation/defaultTranslation.js.map +2 -2
  26. package/dist-cjs/lib/ui/version.js +3 -3
  27. package/dist-cjs/lib/ui/version.js.map +1 -1
  28. package/dist-esm/index.d.mts +84 -77
  29. package/dist-esm/index.mjs +132 -134
  30. package/dist-esm/index.mjs.map +2 -2
  31. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs +5 -5
  32. package/dist-esm/lib/shapes/frame/FrameShapeUtil.mjs.map +2 -2
  33. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs +11 -5
  34. package/dist-esm/lib/shapes/text/TextShapeUtil.mjs.map +2 -2
  35. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs +1 -11
  36. package/dist-esm/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.mjs.map +2 -2
  37. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs +0 -2
  38. package/dist-esm/lib/ui/components/MainMenu/DefaultMainMenuContent.mjs.map +2 -2
  39. package/dist-esm/lib/ui/components/menu-items.mjs +0 -16
  40. package/dist-esm/lib/ui/components/menu-items.mjs.map +2 -2
  41. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs +2 -0
  42. package/dist-esm/lib/ui/components/primitives/menus/TldrawUiMenuItem.mjs.map +2 -2
  43. package/dist-esm/lib/ui/context/actions.mjs +1 -28
  44. package/dist-esm/lib/ui/context/actions.mjs.map +2 -2
  45. package/dist-esm/lib/ui/context/events.mjs.map +2 -2
  46. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs +7 -24
  47. package/dist-esm/lib/ui/hooks/useClipboardEvents.mjs.map +2 -2
  48. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs +2 -2
  49. package/dist-esm/lib/ui/hooks/useKeyboardShortcuts.mjs.map +2 -2
  50. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs +0 -4
  51. package/dist-esm/lib/ui/hooks/useTranslation/defaultTranslation.mjs.map +2 -2
  52. package/dist-esm/lib/ui/version.mjs +3 -3
  53. package/dist-esm/lib/ui/version.mjs.map +1 -1
  54. package/package.json +3 -3
  55. package/src/index.ts +158 -159
  56. package/src/lib/shapes/frame/FrameShapeUtil.tsx +7 -5
  57. package/src/lib/shapes/text/TextShapeUtil.tsx +12 -5
  58. package/src/lib/ui/components/KeyboardShortcutsDialog/DefaultKeyboardShortcutsDialogContent.tsx +0 -8
  59. package/src/lib/ui/components/MainMenu/DefaultMainMenuContent.tsx +0 -2
  60. package/src/lib/ui/components/menu-items.tsx +0 -17
  61. package/src/lib/ui/components/primitives/menus/TldrawUiMenuItem.tsx +2 -0
  62. package/src/lib/ui/context/actions.tsx +1 -29
  63. package/src/lib/ui/context/events.tsx +0 -2
  64. package/src/lib/ui/hooks/useClipboardEvents.ts +10 -31
  65. package/src/lib/ui/hooks/useKeyboardShortcuts.ts +2 -3
  66. package/src/lib/ui/hooks/useTranslation/TLUiTranslationKey.ts +0 -4
  67. package/src/lib/ui/hooks/useTranslation/defaultTranslation.ts +0 -4
  68. package/src/lib/ui/version.ts +3 -3
  69. package/src/test/Editor.test.tsx +1 -68
  70. package/src/test/commands/clipboard.test.ts +1 -1
  71. package/src/test/editor.test.ts +77 -0
@@ -22,10 +22,10 @@ __export(version_exports, {
22
22
  version: () => version
23
23
  });
24
24
  module.exports = __toCommonJS(version_exports);
25
- const version = "3.15.0-canary.c4b9179d0b38";
25
+ const version = "3.15.0-canary.c5c8f9bb0ec2";
26
26
  const publishDates = {
27
27
  major: "2024-09-13T14:36:29.063Z",
28
- minor: "2025-07-10T09:51:38.777Z",
29
- patch: "2025-07-10T09:51:38.777Z"
28
+ minor: "2025-07-03T11:12:27.942Z",
29
+ patch: "2025-07-03T11:12:27.942Z"
30
30
  };
31
31
  //# sourceMappingURL=version.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/lib/ui/version.ts"],
4
- "sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '3.15.0-canary.c4b9179d0b38'\nexport const publishDates = {\n\tmajor: '2024-09-13T14:36:29.063Z',\n\tminor: '2025-07-10T09:51:38.777Z',\n\tpatch: '2025-07-10T09:51:38.777Z',\n}\n"],
4
+ "sourcesContent": ["// This file is automatically generated by internal/scripts/refresh-assets.ts.\n// Do not edit manually. Or do, I'm a comment, not a cop.\n\nexport const version = '3.15.0-canary.c5c8f9bb0ec2'\nexport const publishDates = {\n\tmajor: '2024-09-13T14:36:29.063Z',\n\tminor: '2025-07-03T11:12:27.942Z',\n\tpatch: '2025-07-03T11:12:27.942Z',\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,UAAU;AAChB,MAAM,eAAe;AAAA,EAC3B,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AACR;",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,5 @@
1
+ /// <reference types="react" />
2
+
1
3
  import { Atom } from '@tldraw/editor';
2
4
  import { BaseBoxShapeTool } from '@tldraw/editor';
3
5
  import { BaseBoxShapeUtil } from '@tldraw/editor';
@@ -8,6 +10,7 @@ import { BindingOnShapeIsolateOptions } from '@tldraw/editor';
8
10
  import { BindingUtil } from '@tldraw/editor';
9
11
  import { Box } from '@tldraw/editor';
10
12
  import { Circle2d } from '@tldraw/editor';
13
+ import { ClipboardEvent as ClipboardEvent_2 } from 'react';
11
14
  import { ComponentType } from 'react';
12
15
  import { CSSProperties } from 'react';
13
16
  import { Editor } from '@tldraw/editor';
@@ -27,6 +30,7 @@ import { MigrationSequence } from '@tldraw/editor';
27
30
  import { NamedExoticComponent } from 'react';
28
31
  import { Node as Node_2 } from '@tiptap/pm/model';
29
32
  import { PerfectDashTerminal } from '@tldraw/editor';
33
+ import { PointerEvent as PointerEvent_2 } from 'react';
30
34
  import { Polygon2d } from '@tldraw/editor';
31
35
  import { Polyline2d } from '@tldraw/editor';
32
36
  import * as React_2 from 'react';
@@ -64,15 +68,12 @@ import { TLBookmarkShapeProps } from '@tldraw/editor';
64
68
  import { TLClickEventInfo } from '@tldraw/editor';
65
69
  import { TLContent } from '@tldraw/editor';
66
70
  import { TLCropInfo } from '@tldraw/editor';
67
- import { TLDefaultColorStyle } from '@tldraw/editor';
68
71
  import { TLDefaultColorTheme } from '@tldraw/editor';
69
72
  import { TLDefaultColorThemeColor } from '@tldraw/editor';
70
- import { TLDefaultDashStyle } from '@tldraw/editor';
71
73
  import { TLDefaultFillStyle } from '@tldraw/editor';
72
74
  import { TLDefaultFontStyle } from '@tldraw/editor';
73
75
  import { TLDefaultHorizontalAlignStyle } from '@tldraw/editor';
74
76
  import { TLDefaultSizeStyle } from '@tldraw/editor';
75
- import { TLDefaultTextAlignStyle } from '@tldraw/editor';
76
77
  import { TLDefaultVerticalAlignStyle } from '@tldraw/editor';
77
78
  import { TLDragShapesOutInfo } from '@tldraw/editor';
78
79
  import { TLDragShapesOverInfo } from '@tldraw/editor';
@@ -92,7 +93,6 @@ import { TLFrameShape } from '@tldraw/editor';
92
93
  import { TLFrameShapeProps } from '@tldraw/editor';
93
94
  import { TLGeometryOpts } from '@tldraw/editor';
94
95
  import { TLGeoShape } from '@tldraw/editor';
95
- import { TLGeoShapeGeoStyle } from '@tldraw/editor';
96
96
  import { TLGeoShapeProps } from '@tldraw/editor';
97
97
  import { TLHandle } from '@tldraw/editor';
98
98
  import { TLHandleDragInfo } from '@tldraw/editor';
@@ -106,10 +106,8 @@ import { TLImageShapeProps } from '@tldraw/editor';
106
106
  import { TLKeyboardEventInfo } from '@tldraw/editor';
107
107
  import { TLLineShape } from '@tldraw/editor';
108
108
  import { TLLineShapePoint } from '@tldraw/editor';
109
- import { TLLineShapeSplineStyle } from '@tldraw/editor';
110
109
  import { TLNoteShape } from '@tldraw/editor';
111
110
  import { TLNoteShapeProps } from '@tldraw/editor';
112
- import { TLOpacityType } from '@tldraw/editor';
113
111
  import { TLPageId } from '@tldraw/editor';
114
112
  import { TLParentId } from '@tldraw/editor';
115
113
  import { TLPointerEventInfo } from '@tldraw/editor';
@@ -405,7 +403,7 @@ export declare class BookmarkShapeUtil extends BaseBoxShapeUtil<TLBookmarkShape>
405
403
  index: IndexKey;
406
404
  isLocked: boolean;
407
405
  meta: JsonObject;
408
- opacity: TLOpacityType;
406
+ opacity: number;
409
407
  parentId: TLParentId;
410
408
  props: {
411
409
  assetId: null | TLAssetId;
@@ -424,7 +422,7 @@ export declare class BookmarkShapeUtil extends BaseBoxShapeUtil<TLBookmarkShape>
424
422
  index: IndexKey;
425
423
  isLocked: boolean;
426
424
  meta: JsonObject;
427
- opacity: TLOpacityType;
425
+ opacity: number;
428
426
  parentId: TLParentId;
429
427
  props: {
430
428
  assetId: null | TLAssetId;
@@ -1066,8 +1064,8 @@ export declare function DistributeMenuItems(): JSX_2.Element;
1066
1064
  * @public
1067
1065
  */
1068
1066
  export declare function downsizeImage(blob: Blob, width: number, height: number, opts?: {
1069
- quality?: number;
1070
- type?: string;
1067
+ quality?: number | undefined;
1068
+ type?: string | undefined;
1071
1069
  }): Promise<Blob>;
1072
1070
 
1073
1071
  /** @public */
@@ -1636,23 +1634,26 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1636
1634
  index: IndexKey;
1637
1635
  isLocked: boolean;
1638
1636
  meta: JsonObject;
1639
- opacity: TLOpacityType;
1637
+ opacity: number;
1640
1638
  parentId: TLParentId;
1641
1639
  props: {
1642
- align: TLDefaultHorizontalAlignStyle;
1643
- color: TLDefaultColorStyle;
1644
- dash: TLDefaultDashStyle;
1645
- fill: TLDefaultFillStyle;
1646
- font: TLDefaultFontStyle;
1647
- geo: TLGeoShapeGeoStyle;
1640
+ align: "end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start";
1641
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1642
+ dash: "dashed" | "dotted" | "draw" | "solid";
1643
+ fill: "fill" | "none" | "pattern" | "semi" | "solid";
1644
+ font: "draw" | "mono" | "sans" | "serif";
1645
+ geo: "arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "cloud" | "diamond" | "ellipse" | "heart" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box";
1648
1646
  growY: number;
1649
1647
  h: number;
1650
- labelColor: TLDefaultColorStyle;
1651
- richText: TLRichText;
1648
+ labelColor: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1649
+ richText: {
1650
+ content: unknown[];
1651
+ type: string;
1652
+ };
1652
1653
  scale: number;
1653
- size: TLDefaultSizeStyle;
1654
+ size: "l" | "m" | "s" | "xl";
1654
1655
  url: string;
1655
- verticalAlign: TLDefaultVerticalAlignStyle;
1656
+ verticalAlign: "end" | "middle" | "start";
1656
1657
  w: number;
1657
1658
  };
1658
1659
  rotation: number;
@@ -1666,23 +1667,26 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1666
1667
  index: IndexKey;
1667
1668
  isLocked: boolean;
1668
1669
  meta: JsonObject;
1669
- opacity: TLOpacityType;
1670
+ opacity: number;
1670
1671
  parentId: TLParentId;
1671
1672
  props: {
1672
- align: TLDefaultHorizontalAlignStyle;
1673
- color: TLDefaultColorStyle;
1674
- dash: TLDefaultDashStyle;
1675
- fill: TLDefaultFillStyle;
1676
- font: TLDefaultFontStyle;
1677
- geo: TLGeoShapeGeoStyle;
1673
+ align: "end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start";
1674
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1675
+ dash: "dashed" | "dotted" | "draw" | "solid";
1676
+ fill: "fill" | "none" | "pattern" | "semi" | "solid";
1677
+ font: "draw" | "mono" | "sans" | "serif";
1678
+ geo: "arrow-down" | "arrow-left" | "arrow-right" | "arrow-up" | "check-box" | "cloud" | "diamond" | "ellipse" | "heart" | "hexagon" | "octagon" | "oval" | "pentagon" | "rectangle" | "rhombus-2" | "rhombus" | "star" | "trapezoid" | "triangle" | "x-box";
1678
1679
  growY: number;
1679
1680
  h: number;
1680
- labelColor: TLDefaultColorStyle;
1681
- richText: TLRichText;
1681
+ labelColor: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1682
+ richText: {
1683
+ content: unknown[];
1684
+ type: string;
1685
+ };
1682
1686
  scale: number;
1683
- size: TLDefaultSizeStyle;
1687
+ size: "l" | "m" | "s" | "xl";
1684
1688
  url: string;
1685
- verticalAlign: TLDefaultVerticalAlignStyle;
1689
+ verticalAlign: "end" | "middle" | "start";
1686
1690
  w: number;
1687
1691
  };
1688
1692
  rotation: number;
@@ -1696,7 +1700,7 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1696
1700
  index: IndexKey;
1697
1701
  isLocked: boolean;
1698
1702
  meta: JsonObject;
1699
- opacity: TLOpacityType;
1703
+ opacity: number;
1700
1704
  parentId: TLParentId;
1701
1705
  props: {
1702
1706
  geo: "check-box";
@@ -1711,7 +1715,7 @@ export declare class GeoShapeUtil extends BaseBoxShapeUtil<TLGeoShape> {
1711
1715
  index: IndexKey;
1712
1716
  isLocked: boolean;
1713
1717
  meta: JsonObject;
1714
- opacity: TLOpacityType;
1718
+ opacity: number;
1715
1719
  parentId: TLParentId;
1716
1720
  props: {
1717
1721
  geo: "rectangle";
@@ -1929,11 +1933,11 @@ export declare class LineShapeUtil extends ShapeUtil<TLLineShape> {
1929
1933
  index: IndexKey;
1930
1934
  isLocked: boolean;
1931
1935
  meta: JsonObject;
1932
- opacity: TLOpacityType;
1936
+ opacity: number;
1933
1937
  parentId: TLParentId;
1934
1938
  props: {
1935
- color: TLDefaultColorStyle;
1936
- dash: TLDefaultDashStyle;
1939
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
1940
+ dash: "dashed" | "dotted" | "draw" | "solid";
1937
1941
  points: {
1938
1942
  [x: string]: {
1939
1943
  id: string;
@@ -1943,8 +1947,8 @@ export declare class LineShapeUtil extends ShapeUtil<TLLineShape> {
1943
1947
  } | TLLineShapePoint;
1944
1948
  };
1945
1949
  scale: number;
1946
- size: TLDefaultSizeStyle;
1947
- spline: TLLineShapeSplineStyle;
1950
+ size: "l" | "m" | "s" | "xl";
1951
+ spline: "cubic" | "line";
1948
1952
  };
1949
1953
  rotation: number;
1950
1954
  type: "line";
@@ -2022,20 +2026,23 @@ export declare class NoteShapeUtil extends ShapeUtil<TLNoteShape> {
2022
2026
  index: IndexKey;
2023
2027
  isLocked: boolean;
2024
2028
  meta: JsonObject;
2025
- opacity: TLOpacityType;
2029
+ opacity: number;
2026
2030
  parentId: TLParentId;
2027
2031
  props: {
2028
- align: TLDefaultHorizontalAlignStyle;
2029
- color: TLDefaultColorStyle;
2030
- font: TLDefaultFontStyle;
2032
+ align: "end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start";
2033
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2034
+ font: "draw" | "mono" | "sans" | "serif";
2031
2035
  fontSizeAdjustment: number;
2032
2036
  growY: number;
2033
- labelColor: TLDefaultColorStyle;
2034
- richText: TLRichText;
2037
+ labelColor: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2038
+ richText: {
2039
+ content: unknown[];
2040
+ type: string;
2041
+ };
2035
2042
  scale: number;
2036
- size: TLDefaultSizeStyle;
2043
+ size: "l" | "m" | "s" | "xl";
2037
2044
  url: string;
2038
- verticalAlign: TLDefaultVerticalAlignStyle;
2045
+ verticalAlign: "end" | "middle" | "start";
2039
2046
  };
2040
2047
  rotation: number;
2041
2048
  type: "note";
@@ -2048,20 +2055,23 @@ export declare class NoteShapeUtil extends ShapeUtil<TLNoteShape> {
2048
2055
  index: IndexKey;
2049
2056
  isLocked: boolean;
2050
2057
  meta: JsonObject;
2051
- opacity: TLOpacityType;
2058
+ opacity: number;
2052
2059
  parentId: TLParentId;
2053
2060
  props: {
2054
- align: TLDefaultHorizontalAlignStyle;
2055
- color: TLDefaultColorStyle;
2056
- font: TLDefaultFontStyle;
2061
+ align: "end-legacy" | "end" | "middle-legacy" | "middle" | "start-legacy" | "start";
2062
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2063
+ font: "draw" | "mono" | "sans" | "serif";
2057
2064
  fontSizeAdjustment: number;
2058
2065
  growY: number;
2059
- labelColor: TLDefaultColorStyle;
2060
- richText: TLRichText;
2066
+ labelColor: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2067
+ richText: {
2068
+ content: unknown[];
2069
+ type: string;
2070
+ };
2061
2071
  scale: number;
2062
- size: TLDefaultSizeStyle;
2072
+ size: "l" | "m" | "s" | "xl";
2063
2073
  url: string;
2064
- verticalAlign: TLDefaultVerticalAlignStyle;
2074
+ verticalAlign: "end" | "middle" | "start";
2065
2075
  };
2066
2076
  rotation: number;
2067
2077
  type: "note";
@@ -2584,16 +2594,19 @@ export declare class TextShapeUtil extends ShapeUtil<TLTextShape> {
2584
2594
  index: IndexKey;
2585
2595
  isLocked: boolean;
2586
2596
  meta: JsonObject;
2587
- opacity: TLOpacityType;
2597
+ opacity: number;
2588
2598
  parentId: TLParentId;
2589
2599
  props: {
2590
2600
  autoSize: boolean;
2591
- color: TLDefaultColorStyle;
2592
- font: TLDefaultFontStyle;
2593
- richText: TLRichText;
2601
+ color: "black" | "blue" | "green" | "grey" | "light-blue" | "light-green" | "light-red" | "light-violet" | "orange" | "red" | "violet" | "white" | "yellow";
2602
+ font: "draw" | "mono" | "sans" | "serif";
2603
+ richText: {
2604
+ content: unknown[];
2605
+ type: string;
2606
+ };
2594
2607
  scale: number;
2595
- size: TLDefaultSizeStyle;
2596
- textAlign: TLDefaultTextAlignStyle;
2608
+ size: "l" | "m" | "s" | "xl";
2609
+ textAlign: "end" | "middle" | "start";
2597
2610
  w: number;
2598
2611
  };
2599
2612
  rotation: number;
@@ -3129,7 +3142,6 @@ export declare interface TLUiActionItem<TransationKey extends string = string, I
3129
3142
  } | TransationKey;
3130
3143
  readonlyOk?: boolean;
3131
3144
  checkbox?: boolean;
3132
- isRequiredA11yAction?: boolean;
3133
3145
  onSelect(source: TLUiEventSource): Promise<void> | void;
3134
3146
  }
3135
3147
 
@@ -3516,7 +3528,6 @@ export declare interface TLUiEventMap {
3516
3528
  'toggle-paste-at-cursor': null;
3517
3529
  'toggle-lock': null;
3518
3530
  'toggle-reduce-motion': null;
3519
- 'toggle-keyboard-shortcuts': null;
3520
3531
  'toggle-edge-scrolling': null;
3521
3532
  'color-scheme': {
3522
3533
  value: string;
@@ -3541,7 +3552,6 @@ export declare interface TLUiEventMap {
3541
3552
  'copy-link': null;
3542
3553
  'image-replace': null;
3543
3554
  'video-replace': null;
3544
- 'open-kbd-shortcuts': null;
3545
3555
  'rich-text': {
3546
3556
  operation: 'bold' | 'bulletList' | 'heading' | 'link-edit' | 'link-remove' | 'link-visit' | 'link' | 'strike';
3547
3557
  };
@@ -3920,7 +3930,7 @@ export declare interface TLUiTranslation {
3920
3930
  export declare type TLUiTranslationContextType = TLUiTranslation;
3921
3931
 
3922
3932
  /** @public */
3923
- export declare type TLUiTranslationKey = 'a11y.adjust-shape-styles' | 'a11y.enlarge-shape' | 'a11y.enter-leave-container' | 'a11y.move-shape-faster' | 'a11y.move-shape' | 'a11y.multiple-shapes' | 'a11y.open-context-menu' | 'a11y.open-keyboard-shortcuts' | 'a11y.pan-camera' | 'a11y.repeat-shape' | 'a11y.select-shape-direction' | 'a11y.select-shape' | 'a11y.shape-image' | 'a11y.shape-index' | 'a11y.shape-video' | 'a11y.shrink-shape' | 'a11y.skip-to-main-content' | 'a11y.status' | 'action.align-bottom' | 'action.align-center-horizontal.short' | 'action.align-center-horizontal' | 'action.align-center-vertical.short' | 'action.align-center-vertical' | 'action.align-left' | 'action.align-right' | 'action.align-top' | 'action.back-to-content' | 'action.bring-forward' | 'action.bring-to-front' | 'action.convert-to-bookmark' | 'action.convert-to-embed' | 'action.copy-as-png.short' | 'action.copy-as-png' | 'action.copy-as-svg.short' | 'action.copy-as-svg' | 'action.copy' | 'action.cut' | 'action.delete' | 'action.distribute-horizontal.short' | 'action.distribute-horizontal' | 'action.distribute-vertical.short' | 'action.distribute-vertical' | 'action.download-original' | 'action.duplicate' | 'action.edit-link' | 'action.exit-pen-mode' | 'action.export-all-as-png.short' | 'action.export-all-as-png' | 'action.export-all-as-svg.short' | 'action.export-all-as-svg' | 'action.export-as-png.short' | 'action.export-as-png' | 'action.export-as-svg.short' | 'action.export-as-svg' | 'action.fit-frame-to-content' | 'action.flatten-to-image' | 'action.flip-horizontal.short' | 'action.flip-horizontal' | 'action.flip-vertical.short' | 'action.flip-vertical' | 'action.fork-project-on-tldraw' | 'action.fork-project' | 'action.group' | 'action.insert-embed' | 'action.insert-media' | 'action.leave-shared-project' | 'action.new-project' | 'action.new-shared-project' | 'action.open-cursor-chat' | 'action.open-embed-link' | 'action.open-file' | 'action.open-kbd-shortcuts' | 'action.pack' | 'action.paste-error-description' | 'action.paste-error-title' | 'action.paste' | 'action.print' | 'action.redo' | 'action.remove-frame' | 'action.rename' | 'action.rotate-ccw' | 'action.rotate-cw' | 'action.save-copy' | 'action.select-all' | 'action.select-none' | 'action.send-backward' | 'action.send-to-back' | 'action.share-project' | 'action.stack-horizontal.short' | 'action.stack-horizontal' | 'action.stack-vertical.short' | 'action.stack-vertical' | 'action.stop-following' | 'action.stretch-horizontal.short' | 'action.stretch-horizontal' | 'action.stretch-vertical.short' | 'action.stretch-vertical' | 'action.toggle-auto-size' | 'action.toggle-dark-mode.menu' | 'action.toggle-dark-mode' | 'action.toggle-debug-mode.menu' | 'action.toggle-debug-mode' | 'action.toggle-dynamic-size-mode.menu' | 'action.toggle-dynamic-size-mode' | 'action.toggle-edge-scrolling.menu' | 'action.toggle-edge-scrolling' | 'action.toggle-focus-mode.menu' | 'action.toggle-focus-mode' | 'action.toggle-grid.menu' | 'action.toggle-grid' | 'action.toggle-keyboard-shortcuts.menu' | 'action.toggle-keyboard-shortcuts' | 'action.toggle-lock' | 'action.toggle-paste-at-cursor.menu' | 'action.toggle-paste-at-cursor' | 'action.toggle-reduce-motion.menu' | 'action.toggle-reduce-motion' | 'action.toggle-snap-mode.menu' | 'action.toggle-snap-mode' | 'action.toggle-tool-lock.menu' | 'action.toggle-tool-lock' | 'action.toggle-transparent.context-menu' | 'action.toggle-transparent.menu' | 'action.toggle-transparent' | 'action.toggle-wrap-mode.menu' | 'action.toggle-wrap-mode' | 'action.undo' | 'action.ungroup' | 'action.unlock-all' | 'action.zoom-in' | 'action.zoom-out' | 'action.zoom-to-100' | 'action.zoom-to-fit' | 'action.zoom-to-selection' | 'actions-menu.title' | 'align-style.end' | 'align-style.justify' | 'align-style.middle' | 'align-style.start' | 'app.loading' | 'arrow-kind-style.arc' | 'arrow-kind-style.elbow' | 'arrowheadEnd-style.arrow' | 'arrowheadEnd-style.bar' | 'arrowheadEnd-style.diamond' | 'arrowheadEnd-style.dot' | 'arrowheadEnd-style.inverted' | 'arrowheadEnd-style.none' | 'arrowheadEnd-style.pipe' | 'arrowheadEnd-style.square' | 'arrowheadEnd-style.triangle' | 'arrowheadStart-style.arrow' | 'arrowheadStart-style.bar' | 'arrowheadStart-style.diamond' | 'arrowheadStart-style.dot' | 'arrowheadStart-style.inverted' | 'arrowheadStart-style.none' | 'arrowheadStart-style.pipe' | 'arrowheadStart-style.square' | 'arrowheadStart-style.triangle' | 'assets.files.amount-too-many' | 'assets.files.size-too-big' | 'assets.files.type-not-allowed' | 'assets.files.upload-failed' | 'assets.url.failed' | 'color-style.black' | 'color-style.blue' | 'color-style.green' | 'color-style.grey' | 'color-style.light-blue' | 'color-style.light-green' | 'color-style.light-red' | 'color-style.light-violet' | 'color-style.orange' | 'color-style.red' | 'color-style.violet' | 'color-style.white' | 'color-style.yellow' | 'context-menu.arrange' | 'context-menu.copy-as' | 'context-menu.edit' | 'context-menu.export-all-as' | 'context-menu.export-as' | 'context-menu.move-to-page' | 'context-menu.reorder' | 'context-menu.title' | 'context.pages.new-page' | 'cursor-chat.type-to-chat' | 'dash-style.dashed' | 'dash-style.dotted' | 'dash-style.draw' | 'dash-style.solid' | 'document-name-menu.copy-link' | 'document.default-name' | 'edit-link-dialog.cancel' | 'edit-link-dialog.clear' | 'edit-link-dialog.detail' | 'edit-link-dialog.external-link' | 'edit-link-dialog.invalid-url' | 'edit-link-dialog.save' | 'edit-link-dialog.title' | 'edit-link-dialog.url' | 'embed-dialog.back' | 'embed-dialog.cancel' | 'embed-dialog.create' | 'embed-dialog.instruction' | 'embed-dialog.invalid-url' | 'embed-dialog.title' | 'embed-dialog.url' | 'file-system.confirm-clear.cancel' | 'file-system.confirm-clear.continue' | 'file-system.confirm-clear.description' | 'file-system.confirm-clear.dont-show-again' | 'file-system.confirm-clear.title' | 'file-system.confirm-open.cancel' | 'file-system.confirm-open.description' | 'file-system.confirm-open.dont-show-again' | 'file-system.confirm-open.open' | 'file-system.confirm-open.title' | 'file-system.file-open-error.file-format-version-too-new' | 'file-system.file-open-error.generic-corrupted-file' | 'file-system.file-open-error.not-a-tldraw-file' | 'file-system.file-open-error.title' | 'file-system.shared-document-file-open-error.description' | 'file-system.shared-document-file-open-error.title' | 'fill-style.fill' | 'fill-style.none' | 'fill-style.pattern' | 'fill-style.semi' | 'fill-style.solid' | 'focus-mode.toggle-focus-mode' | 'font-style.draw' | 'font-style.mono' | 'font-style.sans' | 'font-style.serif' | 'geo-style.arrow-down' | 'geo-style.arrow-left' | 'geo-style.arrow-right' | 'geo-style.arrow-up' | 'geo-style.check-box' | 'geo-style.cloud' | 'geo-style.diamond' | 'geo-style.ellipse' | 'geo-style.heart' | 'geo-style.hexagon' | 'geo-style.octagon' | 'geo-style.oval' | 'geo-style.pentagon' | 'geo-style.rectangle' | 'geo-style.rhombus' | 'geo-style.star' | 'geo-style.trapezoid' | 'geo-style.triangle' | 'geo-style.x-box' | 'handle.crop.bottom-left' | 'handle.crop.bottom-right' | 'handle.crop.bottom' | 'handle.crop.left' | 'handle.crop.right' | 'handle.crop.top-left' | 'handle.crop.top-right' | 'handle.crop.top' | 'handle.resize-bottom-left' | 'handle.resize-bottom-right' | 'handle.resize-bottom' | 'handle.resize-left' | 'handle.resize-right' | 'handle.resize-top-left' | 'handle.resize-top-right' | 'handle.resize-top' | 'handle.rotate.bottom_left_rotate' | 'handle.rotate.bottom_right_rotate' | 'handle.rotate.mobile_rotate' | 'handle.rotate.top_left_rotate' | 'handle.rotate.top_right_rotate' | 'help-menu.about' | 'help-menu.discord' | 'help-menu.github' | 'help-menu.import-tldr-file' | 'help-menu.keyboard-shortcuts' | 'help-menu.privacy' | 'help-menu.terms' | 'help-menu.title' | 'help-menu.twitter' | 'menu.copy-as' | 'menu.edit' | 'menu.export-as' | 'menu.file' | 'menu.language' | 'menu.preferences' | 'menu.theme' | 'menu.title' | 'menu.view' | 'navigation-zone.minimap' | 'navigation-zone.title' | 'navigation-zone.toggle-minimap' | 'navigation-zone.zoom' | 'opacity-style.0.1' | 'opacity-style.0.25' | 'opacity-style.0.5' | 'opacity-style.0.75' | 'opacity-style.1' | 'page-menu.create-new-page' | 'page-menu.edit-done' | 'page-menu.edit-start' | 'page-menu.go-to-page' | 'page-menu.max-page-count-reached' | 'page-menu.new-page-initial-name' | 'page-menu.submenu.delete' | 'page-menu.submenu.duplicate-page' | 'page-menu.submenu.move-down' | 'page-menu.submenu.move-up' | 'page-menu.submenu.rename' | 'page-menu.submenu.title' | 'page-menu.title' | 'people-menu.anonymous-user' | 'people-menu.avatar-color' | 'people-menu.change-color' | 'people-menu.change-name' | 'people-menu.follow' | 'people-menu.following' | 'people-menu.invite' | 'people-menu.leading' | 'people-menu.title' | 'people-menu.user' | 'share-menu.copied' | 'share-menu.copy-link-note' | 'share-menu.copy-link' | 'share-menu.copy-readonly-link-note' | 'share-menu.copy-readonly-link' | 'share-menu.create-snapshot-link' | 'share-menu.creating-project' | 'share-menu.fork-note' | 'share-menu.offline-note' | 'share-menu.project-too-large' | 'share-menu.save-note' | 'share-menu.share-project' | 'share-menu.snapshot-link-note' | 'share-menu.title' | 'share-menu.upload-failed' | 'sharing.confirm-leave.cancel' | 'sharing.confirm-leave.description' | 'sharing.confirm-leave.dont-show-again' | 'sharing.confirm-leave.leave' | 'sharing.confirm-leave.title' | 'shortcuts-dialog.a11y' | 'shortcuts-dialog.collaboration' | 'shortcuts-dialog.edit' | 'shortcuts-dialog.file' | 'shortcuts-dialog.preferences' | 'shortcuts-dialog.text-formatting' | 'shortcuts-dialog.title' | 'shortcuts-dialog.tools' | 'shortcuts-dialog.transform' | 'shortcuts-dialog.view' | 'size-style.l' | 'size-style.m' | 'size-style.s' | 'size-style.xl' | 'spline-style.cubic' | 'spline-style.line' | 'status.offline' | 'style-panel.align' | 'style-panel.arrow-kind' | 'style-panel.arrowhead-end' | 'style-panel.arrowhead-start' | 'style-panel.arrowheads' | 'style-panel.color' | 'style-panel.dash' | 'style-panel.fill' | 'style-panel.font' | 'style-panel.geo' | 'style-panel.label-align' | 'style-panel.mixed' | 'style-panel.opacity' | 'style-panel.position' | 'style-panel.size' | 'style-panel.spline' | 'style-panel.title' | 'style-panel.vertical-align' | 'theme.dark' | 'theme.light' | 'theme.system' | 'toast.close' | 'toast.error.copy-fail.desc' | 'toast.error.copy-fail.title' | 'toast.error.export-fail.desc' | 'toast.error.export-fail.title' | 'toast.error' | 'toast.info' | 'toast.success' | 'toast.warning' | 'tool-panel.more' | 'tool-panel.title' | 'tool.arrow-down' | 'tool.arrow-left' | 'tool.arrow-right' | 'tool.arrow-up' | 'tool.arrow' | 'tool.aspect-ratio.circle' | 'tool.aspect-ratio.landscape' | 'tool.aspect-ratio.original' | 'tool.aspect-ratio.portrait' | 'tool.aspect-ratio.square' | 'tool.aspect-ratio.wide' | 'tool.aspect-ratio' | 'tool.bookmark' | 'tool.check-box' | 'tool.cloud' | 'tool.diamond' | 'tool.draw' | 'tool.ellipse' | 'tool.embed' | 'tool.eraser' | 'tool.flip-horz' | 'tool.flip-vert' | 'tool.frame' | 'tool.hand' | 'tool.heart' | 'tool.hexagon' | 'tool.highlight' | 'tool.image-crop' | 'tool.image-toolbar-title' | 'tool.image-zoom' | 'tool.laser' | 'tool.line' | 'tool.media-alt-text-confirm' | 'tool.media-alt-text-desc' | 'tool.media-alt-text' | 'tool.media' | 'tool.note' | 'tool.octagon' | 'tool.oval' | 'tool.pentagon' | 'tool.pointer-down' | 'tool.rectangle' | 'tool.replace-media' | 'tool.rhombus' | 'tool.rich-text-bold' | 'tool.rich-text-bulletList' | 'tool.rich-text-code' | 'tool.rich-text-header' | 'tool.rich-text-highlight' | 'tool.rich-text-italic' | 'tool.rich-text-link-remove' | 'tool.rich-text-link-visit' | 'tool.rich-text-link' | 'tool.rich-text-orderedList' | 'tool.rich-text-strikethrough' | 'tool.rich-text-toolbar-title' | 'tool.rotate-cw' | 'tool.select' | 'tool.star' | 'tool.text' | 'tool.trapezoid' | 'tool.triangle' | 'tool.x-box' | 'ui.checked' | 'ui.close' | 'ui.unchecked' | 'verticalAlign-style.end' | 'verticalAlign-style.middle' | 'verticalAlign-style.start' | 'vscode.file-open.backup-failed' | 'vscode.file-open.backup-saved' | 'vscode.file-open.backup' | 'vscode.file-open.desc' | 'vscode.file-open.dont-show-again' | 'vscode.file-open.open';
3933
+ export declare type TLUiTranslationKey = 'a11y.adjust-shape-styles' | 'a11y.enlarge-shape' | 'a11y.enter-leave-container' | 'a11y.move-shape-faster' | 'a11y.move-shape' | 'a11y.multiple-shapes' | 'a11y.open-context-menu' | 'a11y.pan-camera' | 'a11y.repeat-shape' | 'a11y.select-shape-direction' | 'a11y.select-shape' | 'a11y.shape-image' | 'a11y.shape-index' | 'a11y.shape-video' | 'a11y.shrink-shape' | 'a11y.skip-to-main-content' | 'a11y.status' | 'action.align-bottom' | 'action.align-center-horizontal.short' | 'action.align-center-horizontal' | 'action.align-center-vertical.short' | 'action.align-center-vertical' | 'action.align-left' | 'action.align-right' | 'action.align-top' | 'action.back-to-content' | 'action.bring-forward' | 'action.bring-to-front' | 'action.convert-to-bookmark' | 'action.convert-to-embed' | 'action.copy-as-png.short' | 'action.copy-as-png' | 'action.copy-as-svg.short' | 'action.copy-as-svg' | 'action.copy' | 'action.cut' | 'action.delete' | 'action.distribute-horizontal.short' | 'action.distribute-horizontal' | 'action.distribute-vertical.short' | 'action.distribute-vertical' | 'action.download-original' | 'action.duplicate' | 'action.edit-link' | 'action.exit-pen-mode' | 'action.export-all-as-png.short' | 'action.export-all-as-png' | 'action.export-all-as-svg.short' | 'action.export-all-as-svg' | 'action.export-as-png.short' | 'action.export-as-png' | 'action.export-as-svg.short' | 'action.export-as-svg' | 'action.fit-frame-to-content' | 'action.flatten-to-image' | 'action.flip-horizontal.short' | 'action.flip-horizontal' | 'action.flip-vertical.short' | 'action.flip-vertical' | 'action.fork-project-on-tldraw' | 'action.fork-project' | 'action.group' | 'action.insert-embed' | 'action.insert-media' | 'action.leave-shared-project' | 'action.new-project' | 'action.new-shared-project' | 'action.open-cursor-chat' | 'action.open-embed-link' | 'action.open-file' | 'action.pack' | 'action.paste-error-description' | 'action.paste-error-title' | 'action.paste' | 'action.print' | 'action.redo' | 'action.remove-frame' | 'action.rename' | 'action.rotate-ccw' | 'action.rotate-cw' | 'action.save-copy' | 'action.select-all' | 'action.select-none' | 'action.send-backward' | 'action.send-to-back' | 'action.share-project' | 'action.stack-horizontal.short' | 'action.stack-horizontal' | 'action.stack-vertical.short' | 'action.stack-vertical' | 'action.stop-following' | 'action.stretch-horizontal.short' | 'action.stretch-horizontal' | 'action.stretch-vertical.short' | 'action.stretch-vertical' | 'action.toggle-auto-size' | 'action.toggle-dark-mode.menu' | 'action.toggle-dark-mode' | 'action.toggle-debug-mode.menu' | 'action.toggle-debug-mode' | 'action.toggle-dynamic-size-mode.menu' | 'action.toggle-dynamic-size-mode' | 'action.toggle-edge-scrolling.menu' | 'action.toggle-edge-scrolling' | 'action.toggle-focus-mode.menu' | 'action.toggle-focus-mode' | 'action.toggle-grid.menu' | 'action.toggle-grid' | 'action.toggle-lock' | 'action.toggle-paste-at-cursor.menu' | 'action.toggle-paste-at-cursor' | 'action.toggle-reduce-motion.menu' | 'action.toggle-reduce-motion' | 'action.toggle-snap-mode.menu' | 'action.toggle-snap-mode' | 'action.toggle-tool-lock.menu' | 'action.toggle-tool-lock' | 'action.toggle-transparent.context-menu' | 'action.toggle-transparent.menu' | 'action.toggle-transparent' | 'action.toggle-wrap-mode.menu' | 'action.toggle-wrap-mode' | 'action.undo' | 'action.ungroup' | 'action.unlock-all' | 'action.zoom-in' | 'action.zoom-out' | 'action.zoom-to-100' | 'action.zoom-to-fit' | 'action.zoom-to-selection' | 'actions-menu.title' | 'align-style.end' | 'align-style.justify' | 'align-style.middle' | 'align-style.start' | 'app.loading' | 'arrow-kind-style.arc' | 'arrow-kind-style.elbow' | 'arrowheadEnd-style.arrow' | 'arrowheadEnd-style.bar' | 'arrowheadEnd-style.diamond' | 'arrowheadEnd-style.dot' | 'arrowheadEnd-style.inverted' | 'arrowheadEnd-style.none' | 'arrowheadEnd-style.pipe' | 'arrowheadEnd-style.square' | 'arrowheadEnd-style.triangle' | 'arrowheadStart-style.arrow' | 'arrowheadStart-style.bar' | 'arrowheadStart-style.diamond' | 'arrowheadStart-style.dot' | 'arrowheadStart-style.inverted' | 'arrowheadStart-style.none' | 'arrowheadStart-style.pipe' | 'arrowheadStart-style.square' | 'arrowheadStart-style.triangle' | 'assets.files.amount-too-many' | 'assets.files.size-too-big' | 'assets.files.type-not-allowed' | 'assets.files.upload-failed' | 'assets.url.failed' | 'color-style.black' | 'color-style.blue' | 'color-style.green' | 'color-style.grey' | 'color-style.light-blue' | 'color-style.light-green' | 'color-style.light-red' | 'color-style.light-violet' | 'color-style.orange' | 'color-style.red' | 'color-style.violet' | 'color-style.white' | 'color-style.yellow' | 'context-menu.arrange' | 'context-menu.copy-as' | 'context-menu.edit' | 'context-menu.export-all-as' | 'context-menu.export-as' | 'context-menu.move-to-page' | 'context-menu.reorder' | 'context-menu.title' | 'context.pages.new-page' | 'cursor-chat.type-to-chat' | 'dash-style.dashed' | 'dash-style.dotted' | 'dash-style.draw' | 'dash-style.solid' | 'document-name-menu.copy-link' | 'document.default-name' | 'edit-link-dialog.cancel' | 'edit-link-dialog.clear' | 'edit-link-dialog.detail' | 'edit-link-dialog.external-link' | 'edit-link-dialog.invalid-url' | 'edit-link-dialog.save' | 'edit-link-dialog.title' | 'edit-link-dialog.url' | 'embed-dialog.back' | 'embed-dialog.cancel' | 'embed-dialog.create' | 'embed-dialog.instruction' | 'embed-dialog.invalid-url' | 'embed-dialog.title' | 'embed-dialog.url' | 'file-system.confirm-clear.cancel' | 'file-system.confirm-clear.continue' | 'file-system.confirm-clear.description' | 'file-system.confirm-clear.dont-show-again' | 'file-system.confirm-clear.title' | 'file-system.confirm-open.cancel' | 'file-system.confirm-open.description' | 'file-system.confirm-open.dont-show-again' | 'file-system.confirm-open.open' | 'file-system.confirm-open.title' | 'file-system.file-open-error.file-format-version-too-new' | 'file-system.file-open-error.generic-corrupted-file' | 'file-system.file-open-error.not-a-tldraw-file' | 'file-system.file-open-error.title' | 'file-system.shared-document-file-open-error.description' | 'file-system.shared-document-file-open-error.title' | 'fill-style.fill' | 'fill-style.none' | 'fill-style.pattern' | 'fill-style.semi' | 'fill-style.solid' | 'focus-mode.toggle-focus-mode' | 'font-style.draw' | 'font-style.mono' | 'font-style.sans' | 'font-style.serif' | 'geo-style.arrow-down' | 'geo-style.arrow-left' | 'geo-style.arrow-right' | 'geo-style.arrow-up' | 'geo-style.check-box' | 'geo-style.cloud' | 'geo-style.diamond' | 'geo-style.ellipse' | 'geo-style.heart' | 'geo-style.hexagon' | 'geo-style.octagon' | 'geo-style.oval' | 'geo-style.pentagon' | 'geo-style.rectangle' | 'geo-style.rhombus' | 'geo-style.star' | 'geo-style.trapezoid' | 'geo-style.triangle' | 'geo-style.x-box' | 'handle.crop.bottom-left' | 'handle.crop.bottom-right' | 'handle.crop.bottom' | 'handle.crop.left' | 'handle.crop.right' | 'handle.crop.top-left' | 'handle.crop.top-right' | 'handle.crop.top' | 'handle.resize-bottom-left' | 'handle.resize-bottom-right' | 'handle.resize-bottom' | 'handle.resize-left' | 'handle.resize-right' | 'handle.resize-top-left' | 'handle.resize-top-right' | 'handle.resize-top' | 'handle.rotate.bottom_left_rotate' | 'handle.rotate.bottom_right_rotate' | 'handle.rotate.mobile_rotate' | 'handle.rotate.top_left_rotate' | 'handle.rotate.top_right_rotate' | 'help-menu.about' | 'help-menu.discord' | 'help-menu.github' | 'help-menu.import-tldr-file' | 'help-menu.keyboard-shortcuts' | 'help-menu.privacy' | 'help-menu.terms' | 'help-menu.title' | 'help-menu.twitter' | 'menu.copy-as' | 'menu.edit' | 'menu.export-as' | 'menu.file' | 'menu.language' | 'menu.preferences' | 'menu.theme' | 'menu.title' | 'menu.view' | 'navigation-zone.minimap' | 'navigation-zone.title' | 'navigation-zone.toggle-minimap' | 'navigation-zone.zoom' | 'opacity-style.0.1' | 'opacity-style.0.25' | 'opacity-style.0.5' | 'opacity-style.0.75' | 'opacity-style.1' | 'page-menu.create-new-page' | 'page-menu.edit-done' | 'page-menu.edit-start' | 'page-menu.go-to-page' | 'page-menu.max-page-count-reached' | 'page-menu.new-page-initial-name' | 'page-menu.submenu.delete' | 'page-menu.submenu.duplicate-page' | 'page-menu.submenu.move-down' | 'page-menu.submenu.move-up' | 'page-menu.submenu.rename' | 'page-menu.submenu.title' | 'page-menu.title' | 'people-menu.anonymous-user' | 'people-menu.avatar-color' | 'people-menu.change-color' | 'people-menu.change-name' | 'people-menu.follow' | 'people-menu.following' | 'people-menu.invite' | 'people-menu.leading' | 'people-menu.title' | 'people-menu.user' | 'share-menu.copied' | 'share-menu.copy-link-note' | 'share-menu.copy-link' | 'share-menu.copy-readonly-link-note' | 'share-menu.copy-readonly-link' | 'share-menu.create-snapshot-link' | 'share-menu.creating-project' | 'share-menu.fork-note' | 'share-menu.offline-note' | 'share-menu.project-too-large' | 'share-menu.save-note' | 'share-menu.share-project' | 'share-menu.snapshot-link-note' | 'share-menu.title' | 'share-menu.upload-failed' | 'sharing.confirm-leave.cancel' | 'sharing.confirm-leave.description' | 'sharing.confirm-leave.dont-show-again' | 'sharing.confirm-leave.leave' | 'sharing.confirm-leave.title' | 'shortcuts-dialog.a11y' | 'shortcuts-dialog.collaboration' | 'shortcuts-dialog.edit' | 'shortcuts-dialog.file' | 'shortcuts-dialog.preferences' | 'shortcuts-dialog.text-formatting' | 'shortcuts-dialog.title' | 'shortcuts-dialog.tools' | 'shortcuts-dialog.transform' | 'shortcuts-dialog.view' | 'size-style.l' | 'size-style.m' | 'size-style.s' | 'size-style.xl' | 'spline-style.cubic' | 'spline-style.line' | 'status.offline' | 'style-panel.align' | 'style-panel.arrow-kind' | 'style-panel.arrowhead-end' | 'style-panel.arrowhead-start' | 'style-panel.arrowheads' | 'style-panel.color' | 'style-panel.dash' | 'style-panel.fill' | 'style-panel.font' | 'style-panel.geo' | 'style-panel.label-align' | 'style-panel.mixed' | 'style-panel.opacity' | 'style-panel.position' | 'style-panel.size' | 'style-panel.spline' | 'style-panel.title' | 'style-panel.vertical-align' | 'theme.dark' | 'theme.light' | 'theme.system' | 'toast.close' | 'toast.error.copy-fail.desc' | 'toast.error.copy-fail.title' | 'toast.error.export-fail.desc' | 'toast.error.export-fail.title' | 'toast.error' | 'toast.info' | 'toast.success' | 'toast.warning' | 'tool-panel.more' | 'tool-panel.title' | 'tool.arrow-down' | 'tool.arrow-left' | 'tool.arrow-right' | 'tool.arrow-up' | 'tool.arrow' | 'tool.aspect-ratio.circle' | 'tool.aspect-ratio.landscape' | 'tool.aspect-ratio.original' | 'tool.aspect-ratio.portrait' | 'tool.aspect-ratio.square' | 'tool.aspect-ratio.wide' | 'tool.aspect-ratio' | 'tool.bookmark' | 'tool.check-box' | 'tool.cloud' | 'tool.diamond' | 'tool.draw' | 'tool.ellipse' | 'tool.embed' | 'tool.eraser' | 'tool.flip-horz' | 'tool.flip-vert' | 'tool.frame' | 'tool.hand' | 'tool.heart' | 'tool.hexagon' | 'tool.highlight' | 'tool.image-crop' | 'tool.image-toolbar-title' | 'tool.image-zoom' | 'tool.laser' | 'tool.line' | 'tool.media-alt-text-confirm' | 'tool.media-alt-text-desc' | 'tool.media-alt-text' | 'tool.media' | 'tool.note' | 'tool.octagon' | 'tool.oval' | 'tool.pentagon' | 'tool.pointer-down' | 'tool.rectangle' | 'tool.replace-media' | 'tool.rhombus' | 'tool.rich-text-bold' | 'tool.rich-text-bulletList' | 'tool.rich-text-code' | 'tool.rich-text-header' | 'tool.rich-text-highlight' | 'tool.rich-text-italic' | 'tool.rich-text-link-remove' | 'tool.rich-text-link-visit' | 'tool.rich-text-link' | 'tool.rich-text-orderedList' | 'tool.rich-text-strikethrough' | 'tool.rich-text-toolbar-title' | 'tool.rotate-cw' | 'tool.select' | 'tool.star' | 'tool.text' | 'tool.trapezoid' | 'tool.triangle' | 'tool.x-box' | 'ui.checked' | 'ui.close' | 'ui.unchecked' | 'verticalAlign-style.end' | 'verticalAlign-style.middle' | 'verticalAlign-style.start' | 'vscode.file-open.backup-failed' | 'vscode.file-open.backup-saved' | 'vscode.file-open.backup' | 'vscode.file-open.desc' | 'vscode.file-open.dont-show-again' | 'vscode.file-open.open';
3924
3934
 
3925
3935
  /** @public */
3926
3936
  export declare interface TLUiTranslationProviderProps {
@@ -4032,9 +4042,6 @@ export declare function ToggleFocusModeItem(): JSX_2.Element;
4032
4042
  /** @public @react */
4033
4043
  export declare function ToggleGridItem(): JSX_2.Element;
4034
4044
 
4035
- /** @public @react */
4036
- export declare function ToggleKeyboardShortcutsItem(): JSX_2.Element;
4037
-
4038
4045
  /** @public @react */
4039
4046
  export declare function ToggleLockMenuItem(): JSX_2.Element | null;
4040
4047
 
@@ -4142,10 +4149,10 @@ export declare function useDefaultColorTheme(): {
4142
4149
  /** @public */
4143
4150
  export declare function useDefaultHelpers(): {
4144
4151
  addDialog: (dialog: Omit<TLUiDialog, "id"> & {
4145
- id?: string;
4152
+ id?: string | undefined;
4146
4153
  }) => string;
4147
4154
  addToast: (toast: Omit<TLUiToast, "id"> & {
4148
- id?: string;
4155
+ id?: string | undefined;
4149
4156
  }) => string;
4150
4157
  clearDialogs: () => void;
4151
4158
  clearToasts: () => void;
@@ -4156,11 +4163,11 @@ export declare function useDefaultHelpers(): {
4156
4163
  getEmbedDefinition: (url: string) => TLEmbedResult;
4157
4164
  insertMedia: () => Promise<void>;
4158
4165
  isMobile: boolean;
4159
- msg: (id?: Exclude<string, TLUiTranslationKey> | string) => string;
4160
- paste: (data: ClipboardItem[] | DataTransfer, source: TLUiEventSource, point?: VecLike) => Promise<void>;
4166
+ msg: (id?: string | undefined) => string;
4167
+ paste: (data: ClipboardItem[] | DataTransfer, source: TLUiEventSource, point?: VecLike | undefined) => Promise<void>;
4161
4168
  printSelectionOrPages: () => Promise<void>;
4162
4169
  removeDialog: (id: string) => string;
4163
- removeToast: (id: TLUiToast["id"]) => string;
4170
+ removeToast: (id: string) => string;
4164
4171
  replaceImage: () => Promise<void>;
4165
4172
  replaceVideo: () => Promise<void>;
4166
4173
  };
@@ -4176,7 +4183,7 @@ export declare function useEditablePlainText(shapeId: TLShapeId, type: string, t
4176
4183
  }) => void;
4177
4184
  handleDoubleClick: (e: any) => any;
4178
4185
  handleFocus: () => void;
4179
- handleInputPointerDown: (e: React_3.PointerEvent) => void;
4186
+ handleInputPointerDown: (e: React_3.PointerEvent<Element>) => void;
4180
4187
  handleKeyDown: (e: KeyboardEvent) => void;
4181
4188
  handlePaste: (e: ClipboardEvent | React_3.ClipboardEvent<HTMLTextAreaElement>) => void;
4182
4189
  isEditing: boolean;
@@ -4193,9 +4200,9 @@ export declare function useEditableRichText(shapeId: TLShapeId, type: string, ri
4193
4200
  }) => void;
4194
4201
  handleDoubleClick: (e: any) => any;
4195
4202
  handleFocus: () => void;
4196
- handleInputPointerDown: (e: React.PointerEvent) => void;
4203
+ handleInputPointerDown: (e: PointerEvent_2<Element>) => void;
4197
4204
  handleKeyDown: (e: KeyboardEvent) => void;
4198
- handlePaste: (e: ClipboardEvent | React.ClipboardEvent<HTMLTextAreaElement>) => void;
4205
+ handlePaste: (e: ClipboardEvent | ClipboardEvent_2<HTMLTextAreaElement>) => void;
4199
4206
  isEditing: boolean;
4200
4207
  isEmpty: boolean | undefined;
4201
4208
  isReadyForEditing: boolean;
@@ -4354,7 +4361,7 @@ export declare class ZoomTool extends StateNode {
4354
4361
  static children(): TLStateNodeConstructor[];
4355
4362
  static isLockable: boolean;
4356
4363
  info: TLPointerEventInfo & {
4357
- onInteractionEnd?: string;
4364
+ onInteractionEnd?: string | undefined;
4358
4365
  };
4359
4366
  onEnter(info: TLPointerEventInfo & {
4360
4367
  onInteractionEnd: string;