@zsviczian/excalidraw 0.14.2-obsidian-4 → 0.14.2-obsidian-5

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 (241) hide show
  1. package/dist/excalidraw.development.js +186 -186
  2. package/dist/excalidraw.production.min.js +1 -1
  3. package/package.json +1 -1
  4. package/types/actions/actionAddToLibrary.d.ts +372 -372
  5. package/types/actions/actionAlign.d.ts +91 -91
  6. package/types/actions/actionBoundText.d.ts +284 -284
  7. package/types/actions/actionCanvas.d.ts +1315 -1315
  8. package/types/actions/actionClipboard.d.ts +717 -717
  9. package/types/actions/actionDeleteSelected.d.ts +409 -409
  10. package/types/actions/actionDistribute.d.ts +33 -33
  11. package/types/actions/actionDuplicateSelection.d.ts +22 -22
  12. package/types/actions/actionExport.d.ts +1181 -1181
  13. package/types/actions/actionFinalize.d.ts +256 -256
  14. package/types/actions/actionFlip.d.ts +35 -35
  15. package/types/actions/actionGroup.d.ts +45 -45
  16. package/types/actions/actionHistory.d.ts +6 -6
  17. package/types/actions/actionLinearEditor.d.ts +135 -135
  18. package/types/actions/actionMenu.d.ts +410 -410
  19. package/types/actions/actionNavigate.d.ts +14 -14
  20. package/types/actions/actionProperties.d.ts +1714 -1714
  21. package/types/actions/actionSelectAll.d.ts +16 -16
  22. package/types/actions/actionStyles.d.ts +149 -149
  23. package/types/actions/actionToggleGridMode.d.ts +138 -138
  24. package/types/actions/actionToggleLock.d.ts +135 -135
  25. package/types/actions/actionToggleStats.d.ts +135 -135
  26. package/types/actions/actionToggleViewMode.d.ts +137 -137
  27. package/types/actions/actionToggleZenMode.d.ts +137 -137
  28. package/types/actions/actionZindex.d.ts +67 -67
  29. package/types/actions/index.d.ts +24 -24
  30. package/types/actions/manager.d.ts +21 -21
  31. package/types/actions/register.d.ts +5 -5
  32. package/types/actions/shortcuts.d.ts +4 -4
  33. package/types/actions/types.d.ts +44 -44
  34. package/types/align.d.ts +6 -6
  35. package/types/analytics.d.ts +1 -1
  36. package/types/appState.d.ts +78 -78
  37. package/types/bug-issue-template.d.ts +2 -0
  38. package/types/charts.d.ts +27 -27
  39. package/types/clients.d.ts +6 -6
  40. package/types/clipboard.d.ts +25 -25
  41. package/types/colors.d.ts +6 -6
  42. package/types/components/Actions.d.ts +36 -36
  43. package/types/components/ActiveConfirmDialog.d.ts +24 -24
  44. package/types/components/ActiveFile.d.ts +7 -0
  45. package/types/components/App.d.ts +248 -248
  46. package/types/components/Avatar.d.ts +11 -11
  47. package/types/components/BackgroundPickerAndDarkModeToggle.d.ts +4 -0
  48. package/types/components/BraveMeasureTextError.d.ts +2 -2
  49. package/types/components/Button.d.ts +15 -15
  50. package/types/components/ButtonIconSelect.d.ts +19 -11
  51. package/types/components/Card.d.ts +7 -7
  52. package/types/components/CheckboxItem.d.ts +8 -8
  53. package/types/components/ClearCanvas.d.ts +4 -0
  54. package/types/components/CollabButton.d.ts +7 -0
  55. package/types/components/ColorPicker.d.ts +19 -19
  56. package/types/components/ConfirmDialog.d.ts +10 -10
  57. package/types/components/ContextMenu.d.ts +15 -15
  58. package/types/components/DarkModeToggle.d.ts +7 -7
  59. package/types/components/Dialog.d.ts +14 -14
  60. package/types/components/DialogActionButton.d.ts +10 -10
  61. package/types/components/EncryptedIcon.d.ts +2 -0
  62. package/types/components/ErrorDialog.d.ts +5 -5
  63. package/types/components/FixedSideContainer.d.ts +9 -9
  64. package/types/components/Footer.d.ts +10 -0
  65. package/types/components/HandButton.d.ts +10 -10
  66. package/types/components/HelpButton.d.ts +7 -7
  67. package/types/components/HelpDialog.d.ts +4 -4
  68. package/types/components/HelpIcon.d.ts +8 -0
  69. package/types/components/HintViewer.d.ts +11 -11
  70. package/types/components/IconPicker.d.ts +13 -13
  71. package/types/components/ImageExportDialog.d.ts +18 -18
  72. package/types/components/InitializeApp.d.ts +10 -10
  73. package/types/components/Island.d.ts +10 -10
  74. package/types/components/JSONExportDialog.d.ts +15 -15
  75. package/types/components/LayerUI.d.ts +37 -37
  76. package/types/components/LibraryButton.d.ts +8 -8
  77. package/types/components/LibraryMenu.d.ts +25 -25
  78. package/types/components/LibraryMenuBrowseButton.d.ts +7 -7
  79. package/types/components/LibraryMenuHeaderContent.d.ts +35 -35
  80. package/types/components/LibraryMenuItems.d.ts +15 -15
  81. package/types/components/LibraryUnit.d.ts +11 -11
  82. package/types/components/LoadingMessage.d.ts +6 -6
  83. package/types/components/LockButton.d.ts +10 -10
  84. package/types/components/MenuItem.d.ts +11 -0
  85. package/types/components/MenuUtils.d.ts +2 -0
  86. package/types/components/MobileMenu.d.ts +26 -26
  87. package/types/components/Modal.d.ts +13 -13
  88. package/types/components/PasteChartDialog.d.ts +9 -9
  89. package/types/components/PenModeButton.d.ts +12 -12
  90. package/types/components/Popover.d.ts +15 -15
  91. package/types/components/ProjectName.d.ts +10 -10
  92. package/types/components/PublishLibrary.d.ts +16 -16
  93. package/types/components/Section.d.ts +6 -6
  94. package/types/components/Sidebar/Sidebar.d.ts +73 -73
  95. package/types/components/Sidebar/SidebarHeader.d.ts +20 -20
  96. package/types/components/Sidebar/common.d.ts +16 -16
  97. package/types/components/SidebarLockButton.d.ts +8 -0
  98. package/types/components/SingleLibraryItem.d.ts +10 -10
  99. package/types/components/Spinner.d.ts +6 -6
  100. package/types/components/Stack.d.ts +15 -15
  101. package/types/components/Stats.d.ts +11 -11
  102. package/types/components/Toast.d.ts +7 -7
  103. package/types/components/ToolButton.d.ts +46 -46
  104. package/types/components/Tooltip.d.ts +17 -17
  105. package/types/components/TopErrorBoundary.d.ts +15 -0
  106. package/types/components/UserList.d.ts +8 -8
  107. package/types/components/WelcomeScreen.d.ts +8 -0
  108. package/types/components/WelcomeScreenDecor.d.ts +6 -0
  109. package/types/components/context/tunnels.d.ts +16 -16
  110. package/types/components/dropdownMenu/DropdownMenu.d.ts +66 -66
  111. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -15
  112. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -11
  113. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -12
  114. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -6
  115. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -6
  116. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -13
  117. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -5
  118. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +9 -9
  119. package/types/components/dropdownMenu/common.d.ts +6 -6
  120. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -3
  121. package/types/components/footer/Footer.d.ts +12 -12
  122. package/types/components/footer/FooterCenter.d.ts +8 -8
  123. package/types/components/hoc/withInternalFallback.d.ts +4 -4
  124. package/types/components/hoc/withUpstreamOverride.d.ts +10 -10
  125. package/types/components/icons.d.ts +143 -142
  126. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +10 -10
  127. package/types/components/main-menu/DefaultItems.d.ts +44 -44
  128. package/types/components/main-menu/MainMenu.d.ts +60 -60
  129. package/types/components/mainMenu/DefaultItems.d.ts +44 -0
  130. package/types/components/mainMenu/MainMenu.d.ts +63 -0
  131. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -58
  132. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -19
  133. package/types/components/welcome-screen/WelcomeScreen.d.ts +85 -85
  134. package/types/constants.d.ts +170 -170
  135. package/types/data/blob.d.ts +48 -48
  136. package/types/data/encode.d.ts +53 -53
  137. package/types/data/encryption.d.ts +9 -9
  138. package/types/data/filesystem.d.ts +18 -18
  139. package/types/data/image.d.ts +15 -15
  140. package/types/data/index.d.ts +13 -13
  141. package/types/data/json.d.ts +16 -16
  142. package/types/data/library.d.ts +96 -96
  143. package/types/data/resave.d.ts +5 -5
  144. package/types/data/restore.d.ts +21 -21
  145. package/types/data/types.d.ts +47 -47
  146. package/types/distribute.d.ts +6 -6
  147. package/types/element/Hyperlink.d.ts +155 -155
  148. package/types/element/binding.d.ts +33 -33
  149. package/types/element/bounds.d.ts +28 -28
  150. package/types/element/collision.d.ts +21 -21
  151. package/types/element/dragElements.d.ts +5 -5
  152. package/types/element/image.d.ts +22 -22
  153. package/types/element/index.d.ts +20 -20
  154. package/types/element/linearElementEditor.d.ts +273 -273
  155. package/types/element/mutateElement.d.ts +12 -12
  156. package/types/element/newElement.d.ts +66 -65
  157. package/types/element/resizeElements.d.ts +8 -8
  158. package/types/element/resizeTest.d.ts +13 -13
  159. package/types/element/showSelectedShapeActions.d.ts +3 -3
  160. package/types/element/sizeHelpers.d.ts +21 -21
  161. package/types/element/sortElements.d.ts +2 -2
  162. package/types/element/textElement.d.ts +79 -73
  163. package/types/element/textWysiwyg.d.ts +21 -21
  164. package/types/element/transformHandles.d.ts +28 -28
  165. package/types/element/typeChecks.d.ts +27 -27
  166. package/types/element/types.d.ts +150 -149
  167. package/types/errors.d.ts +8 -8
  168. package/types/excalidraw-app/CustomStats.d.ts +9 -0
  169. package/types/excalidraw-app/app_constants.d.ts +32 -0
  170. package/types/excalidraw-app/collab/Collab.d.ts +163 -0
  171. package/types/excalidraw-app/collab/Portal.d.ts +28 -0
  172. package/types/excalidraw-app/collab/RoomDialog.d.ts +13 -0
  173. package/types/excalidraw-app/collab/reconciliation.d.ts +10 -0
  174. package/types/excalidraw-app/components/ExportToExcalidrawPlus.d.ts +9 -0
  175. package/types/excalidraw-app/components/LanguageList.d.ts +4 -0
  176. package/types/excalidraw-app/components/icons.d.ts +1 -0
  177. package/types/excalidraw-app/data/FileManager.d.ts +66 -0
  178. package/types/excalidraw-app/data/LocalData.d.ts +32 -0
  179. package/types/excalidraw-app/data/Locker.d.ts +8 -0
  180. package/types/excalidraw-app/data/firebase.d.ts +25 -0
  181. package/types/excalidraw-app/data/index.d.ts +190 -0
  182. package/types/excalidraw-app/data/localStorage.d.ts +116 -0
  183. package/types/excalidraw-app/data/tabSync.d.ts +9 -0
  184. package/types/excalidraw-app/index.d.ts +26 -0
  185. package/types/ga.d.ts +63 -63
  186. package/types/gadirections.d.ts +8 -8
  187. package/types/galines.d.ts +22 -22
  188. package/types/gapoints.d.ts +7 -7
  189. package/types/gatransforms.d.ts +10 -10
  190. package/types/gesture.d.ts +6 -6
  191. package/types/groups.d.ts +27 -27
  192. package/types/history.d.ts +52 -52
  193. package/types/hooks/useCallbackRefState.d.ts +1 -1
  194. package/types/hooks/useOutsideClick.d.ts +2 -2
  195. package/types/i18n.d.ts +21 -21
  196. package/types/jotai.d.ts +122 -122
  197. package/types/keys.d.ts +77 -77
  198. package/types/math.d.ts +29 -29
  199. package/types/packages/common.webpack.dev.config.d.ts +72 -72
  200. package/types/packages/common.webpack.prod.config.d.ts +84 -84
  201. package/types/packages/excalidraw/dist/excalidraw.development.d.ts +4 -4
  202. package/types/packages/excalidraw/dist/excalidraw.production.min.d.ts +1 -1
  203. package/types/packages/excalidraw/entry.d.ts +1 -1
  204. package/types/packages/excalidraw/env.d.ts +1 -1
  205. package/types/packages/excalidraw/example/App.d.ts +14 -14
  206. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -5
  207. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -5
  208. package/types/packages/excalidraw/example/index.d.ts +1 -1
  209. package/types/packages/excalidraw/example/initialData.d.ts +172 -172
  210. package/types/packages/excalidraw/example/sidebar/ExampleSidebar.d.ts +5 -5
  211. package/types/packages/excalidraw/example/sidebar/Sidebar.d.ts +5 -0
  212. package/types/packages/excalidraw/index.d.ts +35 -35
  213. package/types/packages/excalidraw/main.d.ts +2 -2
  214. package/types/packages/excalidraw/publicPath.d.ts +1 -1
  215. package/types/packages/excalidraw/webpack.dev-server.config.d.ts +19 -19
  216. package/types/packages/excalidraw/webpack.dev.config.d.ts +69 -69
  217. package/types/packages/excalidraw/webpack.prod.config.d.ts +78 -78
  218. package/types/packages/utils.d.ts +42 -42
  219. package/types/points.d.ts +7 -7
  220. package/types/polyfill.d.ts +2 -2
  221. package/types/random.d.ts +4 -4
  222. package/types/renderer/easingFunctions.d.ts +6 -6
  223. package/types/renderer/renderElement.d.ts +35 -35
  224. package/types/renderer/renderScene.d.ts +41 -41
  225. package/types/renderer/roundRect.d.ts +11 -11
  226. package/types/scene/Fonts.d.ts +21 -21
  227. package/types/scene/Scene.d.ts +40 -40
  228. package/types/scene/comparisons.d.ts +10 -10
  229. package/types/scene/export.d.ts +20 -20
  230. package/types/scene/index.d.ts +5 -5
  231. package/types/scene/scroll.d.ts +17 -17
  232. package/types/scene/scrollbars.d.ts +16 -16
  233. package/types/scene/selection.d.ts +11 -11
  234. package/types/scene/types.d.ts +59 -59
  235. package/types/scene/zoom.d.ts +13 -13
  236. package/types/shapes.d.ts +62 -62
  237. package/types/types.d.ts +442 -442
  238. package/types/utility-types.d.ts +22 -22
  239. package/types/utils.d.ts +162 -162
  240. package/types/zindex.d.ts +6 -6
  241. package/dist/.DS_Store +0 -0
@@ -1,149 +1,150 @@
1
- import { Point } from "../types";
2
- import { FONT_FAMILY, ROUNDNESS, TEXT_ALIGN, THEME, VERTICAL_ALIGN } from "../constants";
3
- import { MarkNonNullable, ValueOf } from "../utility-types";
4
- export declare type ChartType = "bar" | "line";
5
- export declare type FillStyle = "hachure" | "cross-hatch" | "solid";
6
- export declare type FontFamilyKeys = keyof typeof FONT_FAMILY;
7
- export declare type FontFamilyValues = typeof FONT_FAMILY[FontFamilyKeys];
8
- export declare type Theme = typeof THEME[keyof typeof THEME];
9
- export declare type FontString = string & {
10
- _brand: "fontString";
11
- };
12
- export declare type GroupId = string;
13
- export declare type PointerType = "mouse" | "pen" | "touch";
14
- export declare type StrokeRoundness = "round" | "sharp";
15
- export declare type RoundnessType = ValueOf<typeof ROUNDNESS>;
16
- export declare type StrokeStyle = "solid" | "dashed" | "dotted";
17
- export declare type TextAlign = typeof TEXT_ALIGN[keyof typeof TEXT_ALIGN];
18
- declare type VerticalAlignKeys = keyof typeof VERTICAL_ALIGN;
19
- export declare type VerticalAlign = typeof VERTICAL_ALIGN[VerticalAlignKeys];
20
- declare type _ExcalidrawElementBase = Readonly<{
21
- id: string;
22
- x: number;
23
- y: number;
24
- strokeColor: string;
25
- backgroundColor: string;
26
- fillStyle: FillStyle;
27
- strokeWidth: number;
28
- strokeStyle: StrokeStyle;
29
- roundness: null | {
30
- type: RoundnessType;
31
- value?: number;
32
- };
33
- roughness: number;
34
- opacity: number;
35
- width: number;
36
- height: number;
37
- angle: number;
38
- /** Random integer used to seed shape generation so that the roughjs shape
39
- doesn't differ across renders. */
40
- seed: number;
41
- /** Integer that is sequentially incremented on each change. Used to reconcile
42
- elements during collaboration or when saving to server. */
43
- version: number;
44
- /** Random integer that is regenerated on each change.
45
- Used for deterministic reconciliation of updates during collaboration,
46
- in case the versions (see above) are identical. */
47
- versionNonce: number;
48
- isDeleted: boolean;
49
- /** List of groups the element belongs to.
50
- Ordered from deepest to shallowest. */
51
- groupIds: readonly GroupId[];
52
- /** other elements that are bound to this element */
53
- boundElements: readonly Readonly<{
54
- id: ExcalidrawLinearElement["id"];
55
- type: "arrow" | "text";
56
- }>[] | null;
57
- /** epoch (ms) timestamp of last element update */
58
- updated: number;
59
- link: string | null;
60
- locked: boolean;
61
- customData?: Record<string, any>;
62
- }>;
63
- export declare type ExcalidrawSelectionElement = _ExcalidrawElementBase & {
64
- type: "selection";
65
- };
66
- export declare type ExcalidrawRectangleElement = _ExcalidrawElementBase & {
67
- type: "rectangle";
68
- };
69
- export declare type ExcalidrawDiamondElement = _ExcalidrawElementBase & {
70
- type: "diamond";
71
- };
72
- export declare type ExcalidrawEllipseElement = _ExcalidrawElementBase & {
73
- type: "ellipse";
74
- };
75
- export declare type ExcalidrawImageElement = _ExcalidrawElementBase & Readonly<{
76
- type: "image";
77
- fileId: FileId | null;
78
- /** whether respective file is persisted */
79
- status: "pending" | "saved" | "error";
80
- /** X and Y scale factors <-1, 1>, used for image axis flipping */
81
- scale: [number, number];
82
- }>;
83
- export declare type InitializedExcalidrawImageElement = MarkNonNullable<ExcalidrawImageElement, "fileId">;
84
- /**
85
- * These are elements that don't have any additional properties.
86
- */
87
- export declare type ExcalidrawGenericElement = ExcalidrawSelectionElement | ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement;
88
- /**
89
- * ExcalidrawElement should be JSON serializable and (eventually) contain
90
- * no computed data. The list of all ExcalidrawElements should be shareable
91
- * between peers and contain no state local to the peer.
92
- */
93
- export declare type ExcalidrawElement = ExcalidrawGenericElement | ExcalidrawTextElement | ExcalidrawLinearElement | ExcalidrawFreeDrawElement | ExcalidrawImageElement;
94
- export declare type NonDeleted<TElement extends ExcalidrawElement> = TElement & {
95
- isDeleted: boolean;
96
- };
97
- export declare type NonDeletedExcalidrawElement = NonDeleted<ExcalidrawElement>;
98
- export declare type ExcalidrawTextElement = _ExcalidrawElementBase & Readonly<{
99
- type: "text";
100
- fontSize: number;
101
- fontFamily: FontFamilyValues;
102
- text: string;
103
- rawText: string;
104
- textAlign: TextAlign;
105
- verticalAlign: VerticalAlign;
106
- containerId: ExcalidrawGenericElement["id"] | null;
107
- originalText: string;
108
- /**
109
- * Unitless line height (aligned to W3C). To get line height in px, multiply
110
- * with font size (using `getLineHeightInPx` helper).
111
- */
112
- lineHeight: number & {
113
- _brand: "unitlessLineHeight";
114
- };
115
- }>;
116
- export declare type ExcalidrawBindableElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawTextElement | ExcalidrawImageElement;
117
- export declare type ExcalidrawTextContainer = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawImageElement | ExcalidrawArrowElement;
118
- export declare type ExcalidrawTextElementWithContainer = {
119
- containerId: ExcalidrawTextContainer["id"];
120
- } & ExcalidrawTextElement;
121
- export declare type PointBinding = {
122
- elementId: ExcalidrawBindableElement["id"];
123
- focus: number;
124
- gap: number;
125
- };
126
- export declare type Arrowhead = "arrow" | "bar" | "dot" | "triangle";
127
- export declare type ExcalidrawLinearElement = _ExcalidrawElementBase & Readonly<{
128
- type: "line" | "arrow";
129
- points: readonly Point[];
130
- lastCommittedPoint: Point | null;
131
- startBinding: PointBinding | null;
132
- endBinding: PointBinding | null;
133
- startArrowhead: Arrowhead | null;
134
- endArrowhead: Arrowhead | null;
135
- }>;
136
- export declare type ExcalidrawArrowElement = ExcalidrawLinearElement & Readonly<{
137
- type: "arrow";
138
- }>;
139
- export declare type ExcalidrawFreeDrawElement = _ExcalidrawElementBase & Readonly<{
140
- type: "freedraw";
141
- points: readonly Point[];
142
- pressures: readonly number[];
143
- simulatePressure: boolean;
144
- lastCommittedPoint: Point | null;
145
- }>;
146
- export declare type FileId = string & {
147
- _brand: "FileId";
148
- };
149
- export {};
1
+ import { Point } from "../types";
2
+ import { FONT_FAMILY, ROUNDNESS, TEXT_ALIGN, THEME, VERTICAL_ALIGN } from "../constants";
3
+ import { MarkNonNullable, ValueOf } from "../utility-types";
4
+ export declare type ChartType = "bar" | "line";
5
+ export declare type FillStyle = "hachure" | "cross-hatch" | "solid" | "zigzag";
6
+ export declare type FontFamilyKeys = keyof typeof FONT_FAMILY;
7
+ export declare type FontFamilyValues = typeof FONT_FAMILY[FontFamilyKeys];
8
+ export declare type Theme = typeof THEME[keyof typeof THEME];
9
+ export declare type FontString = string & {
10
+ _brand: "fontString";
11
+ };
12
+ export declare type GroupId = string;
13
+ export declare type PointerType = "mouse" | "pen" | "touch";
14
+ export declare type StrokeRoundness = "round" | "sharp";
15
+ export declare type RoundnessType = ValueOf<typeof ROUNDNESS>;
16
+ export declare type StrokeStyle = "solid" | "dashed" | "dotted";
17
+ export declare type TextAlign = typeof TEXT_ALIGN[keyof typeof TEXT_ALIGN];
18
+ declare type VerticalAlignKeys = keyof typeof VERTICAL_ALIGN;
19
+ export declare type VerticalAlign = typeof VERTICAL_ALIGN[VerticalAlignKeys];
20
+ declare type _ExcalidrawElementBase = Readonly<{
21
+ id: string;
22
+ x: number;
23
+ y: number;
24
+ strokeColor: string;
25
+ backgroundColor: string;
26
+ fillStyle: FillStyle;
27
+ strokeWidth: number;
28
+ strokeStyle: StrokeStyle;
29
+ roundness: null | {
30
+ type: RoundnessType;
31
+ value?: number;
32
+ };
33
+ roughness: number;
34
+ opacity: number;
35
+ width: number;
36
+ height: number;
37
+ angle: number;
38
+ /** Random integer used to seed shape generation so that the roughjs shape
39
+ doesn't differ across renders. */
40
+ seed: number;
41
+ /** Integer that is sequentially incremented on each change. Used to reconcile
42
+ elements during collaboration or when saving to server. */
43
+ version: number;
44
+ /** Random integer that is regenerated on each change.
45
+ Used for deterministic reconciliation of updates during collaboration,
46
+ in case the versions (see above) are identical. */
47
+ versionNonce: number;
48
+ isDeleted: boolean;
49
+ /** List of groups the element belongs to.
50
+ Ordered from deepest to shallowest. */
51
+ groupIds: readonly GroupId[];
52
+ /** other elements that are bound to this element */
53
+ boundElements: readonly Readonly<{
54
+ id: ExcalidrawLinearElement["id"];
55
+ type: "arrow" | "text";
56
+ }>[] | null;
57
+ /** epoch (ms) timestamp of last element update */
58
+ updated: number;
59
+ link: string | null;
60
+ locked: boolean;
61
+ customData?: Record<string, any>;
62
+ }>;
63
+ export declare type ExcalidrawSelectionElement = _ExcalidrawElementBase & {
64
+ type: "selection";
65
+ };
66
+ export declare type ExcalidrawRectangleElement = _ExcalidrawElementBase & {
67
+ type: "rectangle";
68
+ };
69
+ export declare type ExcalidrawDiamondElement = _ExcalidrawElementBase & {
70
+ type: "diamond";
71
+ };
72
+ export declare type ExcalidrawEllipseElement = _ExcalidrawElementBase & {
73
+ type: "ellipse";
74
+ };
75
+ export declare type ExcalidrawImageElement = _ExcalidrawElementBase & Readonly<{
76
+ type: "image";
77
+ fileId: FileId | null;
78
+ /** whether respective file is persisted */
79
+ status: "pending" | "saved" | "error";
80
+ /** X and Y scale factors <-1, 1>, used for image axis flipping */
81
+ scale: [number, number];
82
+ }>;
83
+ export declare type InitializedExcalidrawImageElement = MarkNonNullable<ExcalidrawImageElement, "fileId">;
84
+ /**
85
+ * These are elements that don't have any additional properties.
86
+ */
87
+ export declare type ExcalidrawGenericElement = ExcalidrawSelectionElement | ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement;
88
+ /**
89
+ * ExcalidrawElement should be JSON serializable and (eventually) contain
90
+ * no computed data. The list of all ExcalidrawElements should be shareable
91
+ * between peers and contain no state local to the peer.
92
+ */
93
+ export declare type ExcalidrawElement = ExcalidrawGenericElement | ExcalidrawTextElement | ExcalidrawLinearElement | ExcalidrawFreeDrawElement | ExcalidrawImageElement;
94
+ export declare type NonDeleted<TElement extends ExcalidrawElement> = TElement & {
95
+ isDeleted: boolean;
96
+ };
97
+ export declare type NonDeletedExcalidrawElement = NonDeleted<ExcalidrawElement>;
98
+ export declare type ExcalidrawTextElement = _ExcalidrawElementBase & Readonly<{
99
+ type: "text";
100
+ fontSize: number;
101
+ fontFamily: FontFamilyValues;
102
+ text: string;
103
+ rawText: string;
104
+ baseline: number;
105
+ textAlign: TextAlign;
106
+ verticalAlign: VerticalAlign;
107
+ containerId: ExcalidrawGenericElement["id"] | null;
108
+ originalText: string;
109
+ /**
110
+ * Unitless line height (aligned to W3C). To get line height in px, multiply
111
+ * with font size (using `getLineHeightInPx` helper).
112
+ */
113
+ lineHeight: number & {
114
+ _brand: "unitlessLineHeight";
115
+ };
116
+ }>;
117
+ export declare type ExcalidrawBindableElement = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawTextElement | ExcalidrawImageElement;
118
+ export declare type ExcalidrawTextContainer = ExcalidrawRectangleElement | ExcalidrawDiamondElement | ExcalidrawEllipseElement | ExcalidrawImageElement | ExcalidrawArrowElement;
119
+ export declare type ExcalidrawTextElementWithContainer = {
120
+ containerId: ExcalidrawTextContainer["id"];
121
+ } & ExcalidrawTextElement;
122
+ export declare type PointBinding = {
123
+ elementId: ExcalidrawBindableElement["id"];
124
+ focus: number;
125
+ gap: number;
126
+ };
127
+ export declare type Arrowhead = "arrow" | "bar" | "dot" | "triangle";
128
+ export declare type ExcalidrawLinearElement = _ExcalidrawElementBase & Readonly<{
129
+ type: "line" | "arrow";
130
+ points: readonly Point[];
131
+ lastCommittedPoint: Point | null;
132
+ startBinding: PointBinding | null;
133
+ endBinding: PointBinding | null;
134
+ startArrowhead: Arrowhead | null;
135
+ endArrowhead: Arrowhead | null;
136
+ }>;
137
+ export declare type ExcalidrawArrowElement = ExcalidrawLinearElement & Readonly<{
138
+ type: "arrow";
139
+ }>;
140
+ export declare type ExcalidrawFreeDrawElement = _ExcalidrawElementBase & Readonly<{
141
+ type: "freedraw";
142
+ points: readonly Point[];
143
+ pressures: readonly number[];
144
+ simulatePressure: boolean;
145
+ lastCommittedPoint: Point | null;
146
+ }>;
147
+ export declare type FileId = string & {
148
+ _brand: "FileId";
149
+ };
150
+ export {};
package/types/errors.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- declare type CANVAS_ERROR_NAMES = "CANVAS_ERROR" | "CANVAS_POSSIBLY_TOO_BIG";
2
- export declare class CanvasError extends Error {
3
- constructor(message?: string, name?: CANVAS_ERROR_NAMES);
4
- }
5
- export declare class AbortError extends DOMException {
6
- constructor(message?: string);
7
- }
8
- export {};
1
+ declare type CANVAS_ERROR_NAMES = "CANVAS_ERROR" | "CANVAS_POSSIBLY_TOO_BIG";
2
+ export declare class CanvasError extends Error {
3
+ constructor(message?: string, name?: CANVAS_ERROR_NAMES);
4
+ }
5
+ export declare class AbortError extends DOMException {
6
+ constructor(message?: string);
7
+ }
8
+ export {};
@@ -0,0 +1,9 @@
1
+ import { AppState } from "../types";
2
+ import { NonDeletedExcalidrawElement } from "../element/types";
3
+ declare type Props = {
4
+ setToast: (message: string) => void;
5
+ elements: readonly NonDeletedExcalidrawElement[];
6
+ appState: AppState;
7
+ };
8
+ declare const CustomStats: (props: Props) => JSX.Element;
9
+ export default CustomStats;
@@ -0,0 +1,32 @@
1
+ export declare const SAVE_TO_LOCAL_STORAGE_TIMEOUT = 300;
2
+ export declare const INITIAL_SCENE_UPDATE_TIMEOUT = 5000;
3
+ export declare const FILE_UPLOAD_TIMEOUT = 300;
4
+ export declare const LOAD_IMAGES_TIMEOUT = 500;
5
+ export declare const SYNC_FULL_SCENE_INTERVAL_MS = 20000;
6
+ export declare const SYNC_BROWSER_TABS_TIMEOUT = 50;
7
+ export declare const CURSOR_SYNC_TIMEOUT = 33;
8
+ export declare const DELETED_ELEMENT_TIMEOUT: number;
9
+ export declare const FILE_UPLOAD_MAX_BYTES: number;
10
+ export declare const FILE_CACHE_MAX_AGE_SEC = 31536000;
11
+ export declare const WS_EVENTS: {
12
+ SERVER_VOLATILE: string;
13
+ SERVER: string;
14
+ };
15
+ export declare enum WS_SCENE_EVENT_TYPES {
16
+ INIT = "SCENE_INIT",
17
+ UPDATE = "SCENE_UPDATE"
18
+ }
19
+ export declare const FIREBASE_STORAGE_PREFIXES: {
20
+ shareLinkFiles: string;
21
+ collabFiles: string;
22
+ };
23
+ export declare const ROOM_ID_BYTES = 10;
24
+ export declare const STORAGE_KEYS: {
25
+ readonly LOCAL_STORAGE_ELEMENTS: "excalidraw";
26
+ readonly LOCAL_STORAGE_APP_STATE: "excalidraw-state";
27
+ readonly LOCAL_STORAGE_COLLAB: "excalidraw-collab";
28
+ readonly LOCAL_STORAGE_LIBRARY: "excalidraw-library";
29
+ readonly LOCAL_STORAGE_THEME: "excalidraw-theme";
30
+ readonly VERSION_DATA_STATE: "version-dataState";
31
+ readonly VERSION_FILES: "version-files";
32
+ };
@@ -0,0 +1,163 @@
1
+ /// <reference types="lodash" />
2
+ import { PureComponent } from "react";
3
+ import { ExcalidrawImperativeAPI } from "../../types";
4
+ import { ImportedDataState } from "../../data/types";
5
+ import { ExcalidrawElement } from "../../element/types";
6
+ import { Gesture } from "../../types";
7
+ import { SocketUpdateDataSource, SyncableExcalidrawElement } from "../data";
8
+ import Portal from "./Portal";
9
+ import { UserIdleState } from "../../types";
10
+ import { FileManager } from "../data/FileManager";
11
+ export declare const collabAPIAtom: import("jotai").Atom<CollabAPI | null> & {
12
+ write: (get: {
13
+ <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
14
+ <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
15
+ <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
16
+ } & {
17
+ <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
18
+ unstable_promise: true;
19
+ }): Value_3 | Promise<Value_3>;
20
+ <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
21
+ unstable_promise: true;
22
+ }): Value_4 | Promise<Value_4>;
23
+ <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
24
+ unstable_promise: true;
25
+ }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
26
+ }, set: {
27
+ <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
28
+ <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
29
+ }, update: CollabAPI | ((prev: CollabAPI | null) => CollabAPI | null) | null) => void;
30
+ onMount?: (<S extends (update: CollabAPI | ((prev: CollabAPI | null) => CollabAPI | null) | null) => void>(setAtom: S) => void | (() => void)) | undefined;
31
+ } & {
32
+ init: CollabAPI | null;
33
+ };
34
+ export declare const collabDialogShownAtom: import("jotai").Atom<boolean> & {
35
+ write: (get: {
36
+ <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
37
+ <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
38
+ <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
39
+ } & {
40
+ <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
41
+ unstable_promise: true;
42
+ }): Value_3 | Promise<Value_3>;
43
+ <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
44
+ unstable_promise: true;
45
+ }): Value_4 | Promise<Value_4>;
46
+ <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
47
+ unstable_promise: true;
48
+ }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
49
+ }, set: {
50
+ <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
51
+ <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
52
+ }, update: boolean | ((prev: boolean) => boolean)) => void;
53
+ onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
54
+ } & {
55
+ init: boolean;
56
+ };
57
+ export declare const isCollaboratingAtom: import("jotai").Atom<boolean> & {
58
+ write: (get: {
59
+ <Value>(atom: import("jotai").Atom<Value | Promise<Value>>): Value;
60
+ <Value_1>(atom: import("jotai").Atom<Promise<Value_1>>): Value_1;
61
+ <Value_2>(atom: import("jotai").Atom<Value_2>): Value_2 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_2;
62
+ } & {
63
+ <Value_3>(atom: import("jotai").Atom<Value_3 | Promise<Value_3>>, options: {
64
+ unstable_promise: true;
65
+ }): Value_3 | Promise<Value_3>;
66
+ <Value_4>(atom: import("jotai").Atom<Promise<Value_4>>, options: {
67
+ unstable_promise: true;
68
+ }): Value_4 | Promise<Value_4>;
69
+ <Value_5>(atom: import("jotai").Atom<Value_5>, options: {
70
+ unstable_promise: true;
71
+ }): (Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5) | Promise<Value_5 extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? V extends Promise<infer V> ? any : V : V : V : V : V : V : V : V : V : V : Value_5>;
72
+ }, set: {
73
+ <Value_6, Result extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_6, undefined, Result>): Result;
74
+ <Value_7, Update, Result_1 extends void | Promise<void>>(atom: import("jotai").WritableAtom<Value_7, Update, Result_1>, update: Update): Result_1;
75
+ }, update: boolean | ((prev: boolean) => boolean)) => void;
76
+ onMount?: (<S extends (update: boolean | ((prev: boolean) => boolean)) => void>(setAtom: S) => void | (() => void)) | undefined;
77
+ } & {
78
+ init: boolean;
79
+ };
80
+ interface CollabState {
81
+ errorMessage: string;
82
+ username: string;
83
+ activeRoomLink: string;
84
+ }
85
+ declare type CollabInstance = InstanceType<typeof Collab>;
86
+ export interface CollabAPI {
87
+ /** function so that we can access the latest value from stale callbacks */
88
+ isCollaborating: () => boolean;
89
+ onPointerUpdate: CollabInstance["onPointerUpdate"];
90
+ startCollaboration: CollabInstance["startCollaboration"];
91
+ stopCollaboration: CollabInstance["stopCollaboration"];
92
+ syncElements: CollabInstance["syncElements"];
93
+ fetchImageFilesFromFirebase: CollabInstance["fetchImageFilesFromFirebase"];
94
+ setUsername: (username: string) => void;
95
+ }
96
+ interface PublicProps {
97
+ excalidrawAPI: ExcalidrawImperativeAPI;
98
+ }
99
+ declare type Props = PublicProps & {
100
+ modalIsShown: boolean;
101
+ };
102
+ declare class Collab extends PureComponent<Props, CollabState> {
103
+ portal: Portal;
104
+ fileManager: FileManager;
105
+ excalidrawAPI: Props["excalidrawAPI"];
106
+ activeIntervalId: number | null;
107
+ idleTimeoutId: number | null;
108
+ private socketInitializationTimer?;
109
+ private lastBroadcastedOrReceivedSceneVersion;
110
+ private collaborators;
111
+ constructor(props: Props);
112
+ componentDidMount(): void;
113
+ componentWillUnmount(): void;
114
+ isCollaborating: () => boolean;
115
+ private setIsCollaborating;
116
+ private onUnload;
117
+ private beforeUnload;
118
+ saveCollabRoomToFirebase: (syncableElements: readonly SyncableExcalidrawElement[]) => Promise<void>;
119
+ stopCollaboration: (keepRemoteState?: boolean) => void;
120
+ private destroySocketClient;
121
+ private fetchImageFilesFromFirebase;
122
+ private decryptPayload;
123
+ private fallbackInitializationHandler;
124
+ startCollaboration: (existingRoomLinkData: null | {
125
+ roomId: string;
126
+ roomKey: string;
127
+ }) => Promise<ImportedDataState | null>;
128
+ private initializeRoom;
129
+ private reconcileElements;
130
+ private loadImageFiles;
131
+ private handleRemoteSceneUpdate;
132
+ private onPointerMove;
133
+ private onVisibilityChange;
134
+ private reportIdle;
135
+ private reportActive;
136
+ private initializeIdleDetector;
137
+ setCollaborators(sockets: string[]): void;
138
+ setLastBroadcastedOrReceivedSceneVersion: (version: number) => void;
139
+ getLastBroadcastedOrReceivedSceneVersion: () => number;
140
+ getSceneElementsIncludingDeleted: () => readonly ExcalidrawElement[];
141
+ onPointerUpdate: import("lodash").DebouncedFunc<(payload: {
142
+ pointer: SocketUpdateDataSource["MOUSE_LOCATION"]["payload"]["pointer"];
143
+ button: SocketUpdateDataSource["MOUSE_LOCATION"]["payload"]["button"];
144
+ pointersMap: Gesture["pointers"];
145
+ }) => void>;
146
+ onIdleStateChange: (userState: UserIdleState) => void;
147
+ broadcastElements: (elements: readonly ExcalidrawElement[]) => void;
148
+ syncElements: (elements: readonly ExcalidrawElement[]) => void;
149
+ queueBroadcastAllElements: import("lodash").DebouncedFunc<() => void>;
150
+ queueSaveToFirebase: import("lodash").DebouncedFunc<() => void>;
151
+ handleClose: () => void;
152
+ setUsername: (username: string) => void;
153
+ onUsernameChange: (username: string) => void;
154
+ render(): JSX.Element;
155
+ }
156
+ declare global {
157
+ interface Window {
158
+ collab: InstanceType<typeof Collab>;
159
+ }
160
+ }
161
+ declare const _Collab: React.FC<PublicProps>;
162
+ export default _Collab;
163
+ export declare type TCollabClass = Collab;
@@ -0,0 +1,28 @@
1
+ /// <reference types="socket.io-client" />
2
+ /// <reference types="lodash" />
3
+ import { SocketUpdateData, SocketUpdateDataSource } from "../data";
4
+ import { TCollabClass } from "./Collab";
5
+ import { ExcalidrawElement } from "../../element/types";
6
+ import { WS_SCENE_EVENT_TYPES } from "../app_constants";
7
+ import { UserIdleState } from "../../types";
8
+ declare class Portal {
9
+ collab: TCollabClass;
10
+ socket: SocketIOClient.Socket | null;
11
+ socketInitialized: boolean;
12
+ roomId: string | null;
13
+ roomKey: string | null;
14
+ broadcastedElementVersions: Map<string, number>;
15
+ constructor(collab: TCollabClass);
16
+ open(socket: SocketIOClient.Socket, id: string, key: string): SocketIOClient.Socket;
17
+ close(): void;
18
+ isOpen(): boolean;
19
+ _broadcastSocketData(data: SocketUpdateData, volatile?: boolean): Promise<void>;
20
+ queueFileUpload: import("lodash").DebouncedFunc<() => Promise<void>>;
21
+ broadcastScene: (updateType: WS_SCENE_EVENT_TYPES.INIT | WS_SCENE_EVENT_TYPES.UPDATE, allElements: readonly ExcalidrawElement[], syncAll: boolean) => Promise<void>;
22
+ broadcastIdleChange: (userState: UserIdleState) => Promise<void> | undefined;
23
+ broadcastMouseLocation: (payload: {
24
+ pointer: SocketUpdateDataSource["MOUSE_LOCATION"]["payload"]["pointer"];
25
+ button: SocketUpdateDataSource["MOUSE_LOCATION"]["payload"]["button"];
26
+ }) => Promise<void> | undefined;
27
+ }
28
+ export default Portal;
@@ -0,0 +1,13 @@
1
+ import "./RoomDialog.scss";
2
+ import { AppState } from "../../types";
3
+ declare const RoomDialog: ({ handleClose, activeRoomLink, username, onUsernameChange, onRoomCreate, onRoomDestroy, setErrorMessage, theme, }: {
4
+ handleClose: () => void;
5
+ activeRoomLink: string;
6
+ username: string;
7
+ onUsernameChange: (username: string) => void;
8
+ onRoomCreate: () => void;
9
+ onRoomDestroy: () => void;
10
+ setErrorMessage: (message: string) => void;
11
+ theme: AppState["theme"];
12
+ }) => JSX.Element;
13
+ export default RoomDialog;
@@ -0,0 +1,10 @@
1
+ import { PRECEDING_ELEMENT_KEY } from "../../constants";
2
+ import { ExcalidrawElement } from "../../element/types";
3
+ import { AppState } from "../../types";
4
+ export declare type ReconciledElements = readonly ExcalidrawElement[] & {
5
+ _brand: "reconciledElements";
6
+ };
7
+ export declare type BroadcastedExcalidrawElement = ExcalidrawElement & {
8
+ [PRECEDING_ELEMENT_KEY]?: string;
9
+ };
10
+ export declare const reconcileElements: (localElements: readonly ExcalidrawElement[], remoteElements: readonly BroadcastedExcalidrawElement[], localAppState: AppState) => ReconciledElements;
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { NonDeletedExcalidrawElement } from "../../element/types";
3
+ import { AppState, BinaryFiles } from "../../types";
4
+ export declare const ExportToExcalidrawPlus: React.FC<{
5
+ elements: readonly NonDeletedExcalidrawElement[];
6
+ appState: AppState;
7
+ files: BinaryFiles;
8
+ onError: (error: Error) => void;
9
+ }>;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ export declare const LanguageList: ({ style }: {
3
+ style?: React.CSSProperties | undefined;
4
+ }) => JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const excalidrawPlusIcon: JSX.Element;