@dwelle/excalidraw 0.4.0-bdeb845 → 0.4.0-c7222b3

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 (146) hide show
  1. package/CHANGELOG.md +195 -658
  2. package/README.md +491 -33
  3. package/dist/excalidraw-assets/Assistant-Bold.woff2 +0 -0
  4. package/dist/excalidraw-assets/Assistant-Medium.woff2 +0 -0
  5. package/dist/excalidraw-assets/Assistant-Regular.woff2 +0 -0
  6. package/dist/excalidraw-assets/Assistant-SemiBold.woff2 +0 -0
  7. package/dist/excalidraw-assets/vendor-2002fe1b8862917b36c1.js +2 -0
  8. package/dist/excalidraw-assets/{vendor-ddc717b6da3bea42bb67.js.LICENSE.txt → vendor-2002fe1b8862917b36c1.js.LICENSE.txt} +0 -0
  9. package/dist/excalidraw-assets-dev/Assistant-Bold.woff2 +0 -0
  10. package/dist/excalidraw-assets-dev/Assistant-Medium.woff2 +0 -0
  11. package/dist/excalidraw-assets-dev/Assistant-Regular.woff2 +0 -0
  12. package/dist/excalidraw-assets-dev/Assistant-SemiBold.woff2 +0 -0
  13. package/dist/excalidraw-assets-dev/vendor-e6df8519da951026ff69.js +98 -0
  14. package/dist/excalidraw.development.js +937 -354
  15. package/dist/excalidraw.production.min.js +1 -1
  16. package/dist/excalidraw.production.min.js.LICENSE.txt +1 -8
  17. package/package.json +1 -1
  18. package/types/actions/actionAddToLibrary.d.ts +45 -33
  19. package/types/actions/actionBoundText.d.ts +17 -13
  20. package/types/actions/actionCanvas.d.ts +248 -100
  21. package/types/actions/actionClipboard.d.ts +104 -57
  22. package/types/actions/actionDeleteSelected.d.ts +55 -34
  23. package/types/actions/actionExport.d.ts +147 -110
  24. package/types/actions/actionFinalize.d.ts +30 -22
  25. package/types/actions/actionFlip.d.ts +2 -2
  26. package/types/actions/actionGroup.d.ts +2 -2
  27. package/types/actions/actionLinearEditor.d.ts +118 -0
  28. package/types/actions/actionMenu.d.ts +47 -34
  29. package/types/actions/actionNavigate.d.ts +1 -0
  30. package/types/actions/actionProperties.d.ts +197 -145
  31. package/types/actions/actionStyles.d.ts +15 -11
  32. package/types/actions/actionToggleGridMode.d.ts +17 -11
  33. package/types/actions/actionToggleLock.d.ts +15 -11
  34. package/types/actions/actionToggleStats.d.ts +16 -11
  35. package/types/actions/actionToggleViewMode.d.ts +17 -11
  36. package/types/actions/actionToggleZenMode.d.ts +17 -11
  37. package/types/actions/index.d.ts +1 -0
  38. package/types/actions/manager.d.ts +1 -0
  39. package/types/actions/shortcuts.d.ts +1 -1
  40. package/types/actions/types.d.ts +5 -2
  41. package/types/appState.d.ts +23 -21
  42. package/types/clients.d.ts +1 -1
  43. package/types/clipboard.d.ts +6 -1
  44. package/types/components/Actions.d.ts +3 -2
  45. package/types/components/ActiveConfirmDialog.d.ts +24 -0
  46. package/types/components/App.d.ts +24 -16
  47. package/types/components/Avatar.d.ts +1 -1
  48. package/types/components/Button.d.ts +15 -0
  49. package/types/components/ContextMenu.d.ts +8 -21
  50. package/types/components/DialogActionButton.d.ts +10 -0
  51. package/types/components/HandButton.d.ts +10 -0
  52. package/types/components/HelpButton.d.ts +8 -0
  53. package/types/components/HintViewer.d.ts +3 -2
  54. package/types/components/HomeButton.d.ts +5 -0
  55. package/types/components/ImageExportDialog.d.ts +3 -1
  56. package/types/components/InitializeApp.d.ts +2 -0
  57. package/types/components/JSONExportDialog.d.ts +5 -3
  58. package/types/components/LayerUI.d.ts +6 -5
  59. package/types/components/LibraryButton.d.ts +1 -0
  60. package/types/components/LibraryMenu.d.ts +14 -5
  61. package/types/components/LibraryMenuBrowseButton.d.ts +7 -0
  62. package/types/components/LibraryMenuHeaderContent.d.ts +35 -0
  63. package/types/components/LibraryMenuItems.d.ts +5 -14
  64. package/types/components/LibraryUnit.d.ts +2 -3
  65. package/types/components/LoadingMessage.d.ts +2 -0
  66. package/types/components/LockButton.d.ts +0 -1
  67. package/types/components/MobileMenu.d.ts +9 -10
  68. package/types/components/Sidebar/Sidebar.d.ts +73 -0
  69. package/types/components/Sidebar/SidebarHeader.d.ts +20 -0
  70. package/types/components/Sidebar/common.d.ts +16 -0
  71. package/types/components/ToolButton.d.ts +1 -1
  72. package/types/components/UserList.d.ts +0 -3
  73. package/types/components/dropdownMenu/DropdownMenu.d.ts +66 -0
  74. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  75. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  76. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -0
  77. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -0
  78. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -0
  79. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -0
  80. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  81. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +9 -0
  82. package/types/components/dropdownMenu/common.d.ts +6 -0
  83. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  84. package/types/components/footer/Footer.d.ts +13 -0
  85. package/types/components/footer/FooterCenter.d.ts +8 -0
  86. package/types/components/hoc/withUpstreamOverride.d.ts +10 -0
  87. package/types/components/icons.d.ts +82 -122
  88. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +10 -0
  89. package/types/components/main-menu/DefaultItems.d.ts +47 -0
  90. package/types/components/main-menu/MainMenu.d.ts +60 -0
  91. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +58 -0
  92. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  93. package/types/components/welcome-screen/WelcomeScreen.d.ts +85 -0
  94. package/types/constants.d.ts +31 -15
  95. package/types/data/blob.d.ts +1 -1
  96. package/types/data/index.d.ts +1 -1
  97. package/types/data/restore.d.ts +1 -1
  98. package/types/data/types.d.ts +16 -1
  99. package/types/element/Hyperlink.d.ts +16 -12
  100. package/types/element/bounds.d.ts +3 -2
  101. package/types/element/image.d.ts +1 -1
  102. package/types/element/index.d.ts +1 -1
  103. package/types/element/linearElementEditor.d.ts +64 -21
  104. package/types/element/newElement.d.ts +16 -3
  105. package/types/element/resizeElements.d.ts +0 -1
  106. package/types/element/textElement.d.ts +30 -4
  107. package/types/element/textWysiwyg.d.ts +6 -1
  108. package/types/element/transformHandles.d.ts +3 -4
  109. package/types/element/typeChecks.d.ts +10 -1
  110. package/types/element/types.d.ts +12 -5
  111. package/types/hooks/useOutsideClick.d.ts +2 -0
  112. package/types/keys.d.ts +15 -6
  113. package/types/math.d.ts +9 -1
  114. package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-ddc717b6da3bea42bb67.d.ts → vendor-2002fe1b8862917b36c1.d.ts} +0 -0
  115. package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-2811fad3dc3b42ee3357.d.ts → vendor-e6df8519da951026ff69.d.ts} +0 -0
  116. package/types/packages/excalidraw/dist/excalidraw.development.d.ts +2 -4
  117. package/types/packages/excalidraw/example/App.d.ts +2 -1
  118. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -0
  119. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -0
  120. package/types/packages/excalidraw/example/sidebar/{Sidebar.d.ts → ExampleSidebar.d.ts} +1 -1
  121. package/types/packages/excalidraw/index.d.ts +15 -1
  122. package/types/packages/excalidraw/webpack.dev.config.d.ts +72 -61
  123. package/types/packages/excalidraw/webpack.prod.config.d.ts +85 -70
  124. package/types/packages/utils.d.ts +22 -22
  125. package/types/renderer/renderElement.d.ts +4 -3
  126. package/types/renderer/renderScene.d.ts +2 -4
  127. package/types/scene/Fonts.d.ts +21 -0
  128. package/types/scene/Scene.d.ts +15 -0
  129. package/types/scene/comparisons.d.ts +2 -3
  130. package/types/scene/export.d.ts +143 -9
  131. package/types/scene/index.d.ts +1 -1
  132. package/types/scene/types.d.ts +10 -1
  133. package/types/shapes.d.ts +27 -3
  134. package/types/types.d.ts +79 -38
  135. package/types/utils.d.ts +23 -3
  136. package/dist/excalidraw-assets/vendor-ddc717b6da3bea42bb67.js +0 -2
  137. package/dist/excalidraw-assets-dev/vendor-2811fad3dc3b42ee3357.js +0 -90
  138. package/types/components/ActiveFile.d.ts +0 -7
  139. package/types/components/BackgroundPickerAndDarkModeToggle.d.ts +0 -9
  140. package/types/components/ClearCanvas.d.ts +0 -4
  141. package/types/components/CollabButton.d.ts +0 -7
  142. package/types/components/Footer.d.ts +0 -9
  143. package/types/components/HelpIcon.d.ts +0 -8
  144. package/types/components/SidebarLockButton.d.ts +0 -8
  145. package/types/packages/common.webpack.dev.config.d.ts +0 -71
  146. package/types/packages/common.webpack.prod.config.d.ts +0 -83
package/CHANGELOG.md CHANGED
@@ -13,105 +13,40 @@ Please add the latest change on the top under the correct section.
13
13
 
14
14
  ## Unreleased
15
15
 
16
- ### Excalidraw API
17
-
18
- #### Features
19
-
20
- - Added support for storing [`customData`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#storing-custom-data-to-excalidraw-elements) on Excalidraw elements [#5592].
21
-
22
- #### Breaking Changes
23
-
24
- - `setToastMessage` API is now renamed to `setToast` API and the function signature is also updated [#5427](https://github.com/excalidraw/excalidraw/pull/5427). You can also pass `duration` and `closable` attributes along with `message`.
25
-
26
- ## 0.12.0 (2022-07-07)
27
-
28
- ### Excalidraw API
29
-
30
- #### Features
31
-
32
- - [`loadLibraryFromBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#loadLibraryFromBlob) now takes an additional parameter `defaultStatus` which sets the default status of library item if not present, defaults to `unpublished` [#5067](https://github.com/excalidraw/excalidraw/pull/5067).
33
-
34
- - Add [`UIOptions.dockedSidebarBreakpoint`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#dockedSidebarBreakpoint) to customize at which point to break from the docked sidebar [#5274](https://github.com/excalidraw/excalidraw/pull/5274).
35
-
36
- - Added support for supplying user `id` in the Collaborator object (see `collaborators` in [`updateScene()`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#updateScene)), which will be used to deduplicate users when rendering collaborator avatar list. Cursors will still be rendered for every user. [#5309](https://github.com/excalidraw/excalidraw/pull/5309)
37
-
38
- - Export API to [set](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#setCursor) and [reset](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#resetCursor) mouse cursor on the canvas [#5215](https://github.com/excalidraw/excalidraw/pull/5215).
39
-
40
- - Export [`sceneCoordsToViewportCoords`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPointerDown) and [`viewportCoordsToSceneCoords`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPointerDown) utilities [#5187](https://github.com/excalidraw/excalidraw/pull/5187).
41
-
42
- - Added [`useHandleLibrary`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#useHandleLibrary) hook to automatically handle importing of libraries when `#addLibrary` URL hash key is present, and potentially for initializing library as well [#5115](https://github.com/excalidraw/excalidraw/pull/5115).
43
-
44
- Also added [`parseLibraryTokensFromUrl`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#parseLibraryTokensFromUrl) to help in manually importing library from URL if desired.
45
-
46
- ##### BREAKING CHANGE
47
-
48
- - Libraries are no longer automatically initialized from URL when `#addLibrary` hash key is present. Host apps now need to handle this themselves with the help of either of the above APIs (`useHandleLibrary` is recommended).
49
-
50
- - Added [`updateLibrary`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#updateLibrary) API to update (replace/merge) the library [#5115](https://github.com/excalidraw/excalidraw/pull/5115).
51
-
52
- ##### BREAKING CHANGE
53
-
54
- - `updateScene` API no longer supports passing `libraryItems`. Instead, use the `updateLibrary` API.
55
-
56
- - Add support for integrating custom elements [#5164](https://github.com/excalidraw/excalidraw/pull/5164).
57
-
58
- - Add [`onPointerDown`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPointerDown) callback which gets triggered on pointer down events.
59
- - Add [`onScrollChange`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onScrollChange) callback which gets triggered when scrolling the canvas.
60
- - Add API [`setActiveTool`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#setActiveTool) which host can call to set the active tool.
61
-
62
- - Exported [`loadSceneOrLibraryFromBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#loadSceneOrLibraryFromBlob) function [#5057](https://github.com/excalidraw/excalidraw/pull/5057).
63
- - Export [`MIME_TYPES`](https://github.com/excalidraw/excalidraw/blob/master/src/constants.ts#L92) supported by Excalidraw [#5135](https://github.com/excalidraw/excalidraw/pull/5135).
64
- - Support [`avatarUrl`](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L50) for collaborators. Now onwards host can pass `avatarUrl` to render the customized avatar for collaborators [#5114](https://github.com/excalidraw/excalidraw/pull/5114), renamed in [#5177](https://github.com/excalidraw/excalidraw/pull/5177).
65
- - Support `libraryItems` argument in `initialData.libraryItems` and `updateScene({ libraryItems })` to be a Promise resolving to `LibraryItems`, and support functional update of `libraryItems` in [`updateScene({ libraryItems })`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#updateScene). [#5101](https://github.com/excalidraw/excalidraw/pull/5101).
66
- - Expose util [`mergeLibraryItems`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#mergeLibraryItems) [#5101](https://github.com/excalidraw/excalidraw/pull/5101).
67
- - Expose util [`exportToClipboard`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToClipboard) which allows to copy the scene contents to clipboard as `svg`, `png` or `json` [#5103](https://github.com/excalidraw/excalidraw/pull/5103).
68
- - Expose `window.EXCALIDRAW_EXPORT_SOURCE` which you can use to overwrite the `source` field in exported data [#5095](https://github.com/excalidraw/excalidraw/pull/5095).
69
- - The `exportToBlob` utility now supports the `exportEmbedScene` option when generating a png image [#5047](https://github.com/excalidraw/excalidraw/pull/5047).
70
- - Exported [`restoreLibraryItems`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#restoreLibraryItems) API [#4995](https://github.com/excalidraw/excalidraw/pull/4995).
71
-
72
- #### Fixes
16
+ ### Features
73
17
 
74
- - Allow returning `null ` in [`renderFooter`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderFooter) prop [#5282](https://github.com/excalidraw/excalidraw/pull/5282).
18
+ - `MainMenu`, `MainMenu.Item`, and `MainMenu.ItemLink` components now all support `onSelect(event: Event): void` callback. If you call `event.preventDefault()`, it will prevent the menu from closing when an item is selected (clicked on). [#6152](https://github.com/excalidraw/excalidraw/pull/6152)
75
19
 
76
- - Transpile `browser-fs-access` dependency so that its `for await` syntax doesn't force `es2018` requirement onto dependent projects [#5041](https://github.com/excalidraw/excalidraw/pull/5041).
20
+ ## 0.14.1 (2023-01-16)
77
21
 
78
- - Use `window.EXCALIDRAW_ASSET_PATH` for fonts when exporting to svg [#5065](https://github.com/excalidraw/excalidraw/pull/5065).
79
- - Library menu now properly rerenders if open when library is updated using `updateScene({ libraryItems })` [#4995](https://github.com/excalidraw/excalidraw/pull/4995).
22
+ ### Fixes
80
23
 
81
- #### Refactor
24
+ - remove overflow hidden from button [#6110](https://github.com/excalidraw/excalidraw/pull/6110). This fixes the collaborator count css in the [LiveCollaborationTrigger](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#LiveCollaborationTrigger) component.
82
25
 
83
- - Rename `appState.elementLocked` to `appState.activeTool.locked` [#4983](https://github.com/excalidraw/excalidraw/pull/4983).
84
- - Expose [`serializeLibraryAsJSON`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#serializeLibraryAsJSON) helper that we use when saving Excalidraw Library to a file.
26
+ ## 0.14.0 (2023-01-13)
85
27
 
86
- ##### BREAKING CHANGE
28
+ ### Features
87
29
 
88
- You will need to pass `activeTool.locked` instead of `elementType` from now onwards in `appState`.
30
+ - Support customization for the editor [welcome screen](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#WelcomeScreen) [#6048](https://github.com/excalidraw/excalidraw/pull/6048).
89
31
 
90
- - Rename `appState.elementType` to [`appState.activeTool`](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L80) which is now an object [#4698](https://github.com/excalidraw/excalidraw/pull/4968).
32
+ - Expose component API for the Excalidraw main menu [#6034](https://github.com/excalidraw/excalidraw/pull/6034), You can read more about its usage [here](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#MainMenu)
91
33
 
92
- ##### BREAKING CHANGE
34
+ - Support customization for the Excalidraw [main menu](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#MainMenu) [#6034](https://github.com/excalidraw/excalidraw/pull/6034).
93
35
 
94
- You will need to pass `activeTool` instead of `elementType` from now onwards in `appState`
36
+ - [Footer](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#Footer) is now rendered as child component instead of passed as a render prop [#5970](https://github.com/excalidraw/excalidraw/pull/5970).
95
37
 
96
- ### Build
38
+ - Any top-level children passed to the `<Excalidraw/>` component that do not belong to one of the officially supported Excalidraw children components are now rendered directly inside the Excalidraw container (previously, they weren't rendered at all) [#6096](https://github.com/excalidraw/excalidraw/pull/6096).
97
39
 
98
- - Use only named exports [#5045](https://github.com/excalidraw/excalidraw/pull/5045).
40
+ - Expose [LiveCollaborationTrigger](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#LiveCollaborationTrigger) component. Replaces `props.onCollabButtonClick` [#6104](https://github.com/excalidraw/excalidraw/pull/6104).
99
41
 
100
- #### BREAKING CHANGE
42
+ #### BREAKING CHANGES
101
43
 
102
- You will need to import the named export from now onwards to use the component
44
+ - `props.onCollabButtonClick` is now removed. You need to render the main menu item yourself, and optionally also render the `<LiveCollaborationTrigger>` component using [renderTopRightUI](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderTopRightUI) prop if you want to retain the canvas button at top-right.
45
+ - The prop `renderFooter` is now removed in favor of rendering as a child component.
103
46
 
104
- Using bundler :point_down:
47
+ ### Excalidraw schema
105
48
 
106
- ```js
107
- import { Excalidraw } from "@excalidraw/excalidraw";
108
- ```
109
-
110
- In Browser :point_down:
111
-
112
- ```js
113
- React.createElement(ExcalidrawLib.Excalidraw, opts);
114
- ```
49
+ - Merged `appState.currentItemStrokeSharpness` and `appState.currentItemLinearStrokeSharpness` into `appState.currentItemRoundness`. Renamed `changeSharpness` action to `changeRoundness`. Excalidraw element's `strokeSharpness` was changed to `roundness`. Check the PR for types and more details [#5553](https://github.com/excalidraw/excalidraw/pull/5553).
115
50
 
116
51
  ## Excalidraw Library
117
52
 
@@ -119,315 +54,175 @@ React.createElement(ExcalidrawLib.Excalidraw, opts);
119
54
 
120
55
  ### Features
121
56
 
122
- - Throttle scene rendering to animation framerate [#5422](https://github.com/excalidraw/excalidraw/pull/5422)
123
-
124
- - Make toast closable and allow custom duration [#5308](https://github.com/excalidraw/excalidraw/pull/5308)
125
-
126
- - Collab component state handling rewrite & fixes [#5046](https://github.com/excalidraw/excalidraw/pull/5046)
127
-
128
- - Support debugging PWA in dev [#4853](https://github.com/excalidraw/excalidraw/pull/4853)
129
-
130
- - Redirect vscode.excalidraw.com to vscode marketplace [#5285](https://github.com/excalidraw/excalidraw/pull/5285)
131
-
132
- - Go-to-excalidrawplus button [#5202](https://github.com/excalidraw/excalidraw/pull/5202)
133
-
134
- - Autoredirect to Excalidraw+ if special cookie is present [#5183](https://github.com/excalidraw/excalidraw/pull/5183)
135
-
136
- - Support resubmitting published library items [#5174](https://github.com/excalidraw/excalidraw/pull/5174)
137
-
138
- - Support adding multiple library items on canvas [#5116](https://github.com/excalidraw/excalidraw/pull/5116)
139
-
140
- - Support customType in activeTool [#5144](https://github.com/excalidraw/excalidraw/pull/5144)
141
-
142
- - Stop event propagation when key handled [#5091](https://github.com/excalidraw/excalidraw/pull/5091)
143
-
144
- - Rewrite library state management & related refactor [#5067](https://github.com/excalidraw/excalidraw/pull/5067)
145
-
146
- - Delay initial loading message & tweak design [#5049](https://github.com/excalidraw/excalidraw/pull/5049)
147
-
148
- - Reconcile when saving to firebase [#4991](https://github.com/excalidraw/excalidraw/pull/4991)
149
-
150
- - Hide trash button during collaboration [#5037](https://github.com/excalidraw/excalidraw/pull/5037)
151
-
152
- - Refactor local persistence & fix race condition on SW reload [#5032](https://github.com/excalidraw/excalidraw/pull/5032)
57
+ - Generic button export [#6092](https://github.com/excalidraw/excalidraw/pull/6092)
153
58
 
154
- - Element locking [#4964](https://github.com/excalidraw/excalidraw/pull/4964)
59
+ - Scroll using PageUp and PageDown [#6038](https://github.com/excalidraw/excalidraw/pull/6038)
155
60
 
156
- - Copy to clipboard all text nodes as text [#5013](https://github.com/excalidraw/excalidraw/pull/5013)
61
+ - Support shrinking text containers to original height when text removed [#6025](https://github.com/excalidraw/excalidraw/pull/6025)
157
62
 
158
- - Create and expose serializeLibraryAsJSON [#5009](https://github.com/excalidraw/excalidraw/pull/5009)
63
+ - Move contextMenu into the component tree and control via appState [#6021](https://github.com/excalidraw/excalidraw/pull/6021)
159
64
 
160
- - Hide penMode button on reload if not enabled [#4992](https://github.com/excalidraw/excalidraw/pull/4992)
65
+ - Allow readonly actions to be used in viewMode [#5982](https://github.com/excalidraw/excalidraw/pull/5982)
161
66
 
162
- - Eraser toggle to switch back to the previous tool [#4981](https://github.com/excalidraw/excalidraw/pull/4981)
67
+ - Support labels for arrow 🔥 [#5723](https://github.com/excalidraw/excalidraw/pull/5723)
163
68
 
164
- - Save penDetected and penMode, and detect pen already on ToolButton click [#4955](https://github.com/excalidraw/excalidraw/pull/4955)
69
+ - Don't add midpoint until dragged beyond a threshold [#5927](https://github.com/excalidraw/excalidraw/pull/5927)
165
70
 
166
- - Support binding text to container via context menu [#4935](https://github.com/excalidraw/excalidraw/pull/4935)
71
+ - Changed text copy/paste behaviour [#5786](https://github.com/excalidraw/excalidraw/pull/5786)
167
72
 
168
- - Map shortcut O to ellipse and Add eraser shortcut E [#4930](https://github.com/excalidraw/excalidraw/pull/4930)
73
+ - Reintroduce `x` shortcut for `freedraw` [#5840](https://github.com/excalidraw/excalidraw/pull/5840)
169
74
 
170
- - Update eraser cursor [#4922](https://github.com/excalidraw/excalidraw/pull/4922)
75
+ - Tweak toolbar shortcuts & remove library shortcut [#5832](https://github.com/excalidraw/excalidraw/pull/5832)
171
76
 
172
- - Add Eraser 🎉 [#4887](https://github.com/excalidraw/excalidraw/pull/4887)
77
+ - Clean unused images only after 24hrs (local-only) [#5839](https://github.com/excalidraw/excalidraw/pull/5839)
173
78
 
174
- - Added optional REACT_APP_WS_SERVER_URL for forks usecases [#4889](https://github.com/excalidraw/excalidraw/pull/4889)
79
+ - Refetch errored/pending images on collab room init load [#5833](https://github.com/excalidraw/excalidraw/pull/5833)
175
80
 
176
- - Rewrite collab server connecting [#4881](https://github.com/excalidraw/excalidraw/pull/4881)
81
+ - Stop deleting whole line when no point select in line editor [#5676](https://github.com/excalidraw/excalidraw/pull/5676)
177
82
 
178
- - Support vertical text align for bound containers [#4852](https://github.com/excalidraw/excalidraw/pull/4852)
179
-
180
- - Support custom colors 🎉 [#4843](https://github.com/excalidraw/excalidraw/pull/4843)
181
-
182
- - Support Links in Exported SVG [#4791](https://github.com/excalidraw/excalidraw/pull/4791)
183
-
184
- - Scale font size when bound text containers resized with shift pressed [#4828](https://github.com/excalidraw/excalidraw/pull/4828)
83
+ - Editor redesign 🔥 [#5780](https://github.com/excalidraw/excalidraw/pull/5780)
185
84
 
186
85
  ### Fixes
187
86
 
188
- - Autorelease job name [#5412](https://github.com/excalidraw/excalidraw/pull/5412)
189
-
190
- - Action name for autorelease [#5411](https://github.com/excalidraw/excalidraw/pull/5411)
191
-
192
- - Typecast file to fix the build [#5410](https://github.com/excalidraw/excalidraw/pull/5410)
193
-
194
- - File handle not persisted when importing excalidraw files [#5372](https://github.com/excalidraw/excalidraw/pull/5372)
195
-
196
- - Library not scrollable when no published items installed [#5352](https://github.com/excalidraw/excalidraw/pull/5352)
197
-
198
- - Focus traps inside popovers [#5317](https://github.com/excalidraw/excalidraw/pull/5317)
199
-
200
- - Unable to use cmd/ctrl-delete/backspace in inputs [#5348](https://github.com/excalidraw/excalidraw/pull/5348)
201
-
202
- - Delay loading until language imported [#5344](https://github.com/excalidraw/excalidraw/pull/5344)
203
-
204
- - Command to trigger release [#5347](https://github.com/excalidraw/excalidraw/pull/5347)
205
-
206
- - Remove unnecessary options passed to language detector [#5336](https://github.com/excalidraw/excalidraw/pull/5336)
207
-
208
- - Stale `appState.pendingImageElement` [#5322](https://github.com/excalidraw/excalidraw/pull/5322)
209
-
210
- - Non-letter shortcuts being swallowed by color picker [#5316](https://github.com/excalidraw/excalidraw/pull/5316)
211
-
212
- - Bind text to correct container when nested [#5307](https://github.com/excalidraw/excalidraw/pull/5307)
213
-
214
- - Copy bound text style when copying element having bound text [#5305](https://github.com/excalidraw/excalidraw/pull/5305)
215
-
216
- - Copy arrow head when using copy styles [#5303](https://github.com/excalidraw/excalidraw/pull/5303)
87
+ - Mobile tools positioning [#6107](https://github.com/excalidraw/excalidraw/pull/6107)
217
88
 
218
- - Unsafely accessing draggingElement [#5216](https://github.com/excalidraw/excalidraw/pull/5216)
89
+ - Renamed folder MainMenu->main-menu and support rest props [#6103](https://github.com/excalidraw/excalidraw/pull/6103)
219
90
 
220
- - Library load button does not work [#5205](https://github.com/excalidraw/excalidraw/pull/5205)
91
+ - Use position absolute for mobile misc tools [#6099](https://github.com/excalidraw/excalidraw/pull/6099)
221
92
 
222
- - Do not deselect when not zooming using touchscreen pinch [#5181](https://github.com/excalidraw/excalidraw/pull/5181)
93
+ - React.memo resolvers not accounting for all props [#6042](https://github.com/excalidraw/excalidraw/pull/6042)
223
94
 
224
- - Wheel zoom normalization [#5165](https://github.com/excalidraw/excalidraw/pull/5165)
95
+ - Image horizontal flip fix + improved tests [#5799](https://github.com/excalidraw/excalidraw/pull/5799)
225
96
 
226
- - Hide sidebar when `custom` tool active [#5179](https://github.com/excalidraw/excalidraw/pull/5179)
97
+ - Png-exporting does not preserve angles correctly for flipped images [#6085](https://github.com/excalidraw/excalidraw/pull/6085)
227
98
 
228
- - Don't save deleted ExcalidrawElements to Firebase [#5108](https://github.com/excalidraw/excalidraw/pull/5108)
99
+ - Stale appState of MainMenu defaultItems rendered from Actions [#6074](https://github.com/excalidraw/excalidraw/pull/6074)
229
100
 
230
- - Eraser removed deleted elements [#5155](https://github.com/excalidraw/excalidraw/pull/5155)
101
+ - HelpDialog [#6072](https://github.com/excalidraw/excalidraw/pull/6072)
231
102
 
232
- - Handle `ColorPicker` parentSelector being undefined [#5152](https://github.com/excalidraw/excalidraw/pull/5152)
103
+ - Show error message on collab save failure [#6063](https://github.com/excalidraw/excalidraw/pull/6063)
233
104
 
234
- - Library multiselect not accounting for published state [#5132](https://github.com/excalidraw/excalidraw/pull/5132)
105
+ - Remove ga from docker build [#6059](https://github.com/excalidraw/excalidraw/pull/6059)
235
106
 
236
- - Chart display fix [#5154](https://github.com/excalidraw/excalidraw/pull/5154)
107
+ - Use displayName since name gets stripped off when uglifying/minifiyng in production [#6036](https://github.com/excalidraw/excalidraw/pull/6036)
237
108
 
238
- - Update opacity of bound text when opacity of container updated [#5142](https://github.com/excalidraw/excalidraw/pull/5142)
109
+ - Remove background from wysiwyg when editing arrow label [#6033](https://github.com/excalidraw/excalidraw/pull/6033)
239
110
 
240
- - Jumping of text when typing single line in bound text [#5139](https://github.com/excalidraw/excalidraw/pull/5139)
111
+ - Use canvas measureText to calculate width in measureText [#6030](https://github.com/excalidraw/excalidraw/pull/6030)
241
112
 
242
- - Remove opacity scroll wheel interaction [#5111](https://github.com/excalidraw/excalidraw/pull/5111)
113
+ - Restoring deleted bindings [#6029](https://github.com/excalidraw/excalidraw/pull/6029)
243
114
 
244
- - Propagate keydown events from excalidraw-wysiwyg inputs [#5099](https://github.com/excalidraw/excalidraw/pull/5099)
115
+ - ColorPicker getColor [#5949](https://github.com/excalidraw/excalidraw/pull/5949)
245
116
 
246
- - Don't bind text to container if double clicked else instead of center [#5105](https://github.com/excalidraw/excalidraw/pull/5105)
117
+ - Don't push whitespace to next line when exceeding max width during wrapping and make sure to use same width of text editor on DOM when measuring dimensions [#5996](https://github.com/excalidraw/excalidraw/pull/5996)
247
118
 
248
- - ToolIcon height not using rem [#5092](https://github.com/excalidraw/excalidraw/pull/5092)
119
+ - Showing `grabbing` cursor when holding `spacebar` [#6015](https://github.com/excalidraw/excalidraw/pull/6015)
249
120
 
250
- - Excalidraw named export type [#5078](https://github.com/excalidraw/excalidraw/pull/5078)
121
+ - Resize sometimes throwing on missing null-checks [#6013](https://github.com/excalidraw/excalidraw/pull/6013)
251
122
 
252
- - BoundElementIds when arrows bound to elements are deleted [#5077](https://github.com/excalidraw/excalidraw/pull/5077)
123
+ - PWA not working after CRA@5 update [#6012](https://github.com/excalidraw/excalidraw/pull/6012)
253
124
 
254
- - Don't merge libraryItems on updateScene [#5076](https://github.com/excalidraw/excalidraw/pull/5076)
125
+ - Not properly restoring element stroke and bg colors [#6002](https://github.com/excalidraw/excalidraw/pull/6002)
255
126
 
256
- - SVG metadata extraction regex on multiline elements [#5074](https://github.com/excalidraw/excalidraw/pull/5074)
127
+ - Avatar outline on safari & center [#5997](https://github.com/excalidraw/excalidraw/pull/5997)
257
128
 
258
- - Eraser cursor showing on theme change when not using eraser [#4990](https://github.com/excalidraw/excalidraw/pull/4990)
129
+ - Chart pasting not working due to removing tab characters [#5987](https://github.com/excalidraw/excalidraw/pull/5987)
259
130
 
260
- - Update `storage.rules` [#5020](https://github.com/excalidraw/excalidraw/pull/5020)
131
+ - Apply the right type of roundness when pasting styles [#5979](https://github.com/excalidraw/excalidraw/pull/5979)
261
132
 
262
- - Add image button not working on iPad [#5038](https://github.com/excalidraw/excalidraw/pull/5038)
133
+ - Remove editor onpaste handler [#5971](https://github.com/excalidraw/excalidraw/pull/5971)
263
134
 
264
- - Ensure svg image dimensions are always set [#5044](https://github.com/excalidraw/excalidraw/pull/5044)
135
+ - Remove blank space [#5950](https://github.com/excalidraw/excalidraw/pull/5950)
265
136
 
266
- - Pinch zoom in view mode [#5001](https://github.com/excalidraw/excalidraw/pull/5001)
137
+ - Galego and Kurdî missing in languages plus two locale typos [#5954](https://github.com/excalidraw/excalidraw/pull/5954)
267
138
 
268
- - Select whole group on righclick & few lock-related fixes [#5022](https://github.com/excalidraw/excalidraw/pull/5022)
139
+ - `ExcalidrawArrowElement` rather than `ExcalidrawArrowEleement` [#5955](https://github.com/excalidraw/excalidraw/pull/5955)
269
140
 
270
- - Export serializeLibraryAsJSON from the package [#5017](https://github.com/excalidraw/excalidraw/pull/5017)
141
+ - RenderFooter styling [#5962](https://github.com/excalidraw/excalidraw/pull/5962)
271
142
 
272
- - Support copying PNG to clipboard on Safari [#3746](https://github.com/excalidraw/excalidraw/pull/3746)
143
+ - Repair element bindings on restore [#5956](https://github.com/excalidraw/excalidraw/pull/5956)
273
144
 
274
- - More copyText fixes [#5016](https://github.com/excalidraw/excalidraw/pull/5016)
145
+ - Don't allow whitespaces for bound text [#5939](https://github.com/excalidraw/excalidraw/pull/5939)
275
146
 
276
- - Copy to clipboard all text nodes as text [#5014](https://github.com/excalidraw/excalidraw/pull/5014)
147
+ - Bindings do not survive history serialization [#5942](https://github.com/excalidraw/excalidraw/pull/5942)
277
148
 
278
- - Update cursorButton once freedraw is released [#4996](https://github.com/excalidraw/excalidraw/pull/4996)
149
+ - Dedupe boundElement ids when container duplicated with alt+drag [#5938](https://github.com/excalidraw/excalidraw/pull/5938)
279
150
 
280
- - Decouple actionFinalize and actionErase [#4984](https://github.com/excalidraw/excalidraw/pull/4984)
151
+ - Scale font correctly when using shift [#5935](https://github.com/excalidraw/excalidraw/pull/5935)
281
152
 
282
- - Using stale state when switching tools [#4989](https://github.com/excalidraw/excalidraw/pull/4989)
153
+ - Always bind to container selected by user [#5880](https://github.com/excalidraw/excalidraw/pull/5880)
283
154
 
284
- - UpdateWysiwygStyle updatedElement is undefined TypeError [#4980](https://github.com/excalidraw/excalidraw/pull/4980)
155
+ - Fonts not rendered on init if `loadingdone` not fired [#5923](https://github.com/excalidraw/excalidraw/pull/5923)
285
156
 
286
- - Adding check for link length to prevent early return [#4982](https://github.com/excalidraw/excalidraw/pull/4982)
157
+ - Stop replacing `del` word with `Delete` [#5897](https://github.com/excalidraw/excalidraw/pull/5897)
287
158
 
288
- - Show link icon for bound text containers [#4960](https://github.com/excalidraw/excalidraw/pull/4960)
159
+ - Remove legacy React.render() from the editor [#5893](https://github.com/excalidraw/excalidraw/pull/5893)
289
160
 
290
- - Cancel erase elements on pointer up if eraser is not active on pointer up [#4956](https://github.com/excalidraw/excalidraw/pull/4956)
161
+ - Allow adding text via enter only for text containers [#5891](https://github.com/excalidraw/excalidraw/pull/5891)
291
162
 
292
- - Restore original opacities when alt pressed while erasing [#4954](https://github.com/excalidraw/excalidraw/pull/4954)
163
+ - Stop font `loadingdone` loop when rendering element SVGs [#5883](https://github.com/excalidraw/excalidraw/pull/5883)
293
164
 
294
- - Don't bind text to container if already present [#4946](https://github.com/excalidraw/excalidraw/pull/4946)
165
+ - Refresh text dimensions only after font load done [#5878](https://github.com/excalidraw/excalidraw/pull/5878)
295
166
 
296
- - Erase all elements which are hit with single point click [#4934](https://github.com/excalidraw/excalidraw/pull/4934)
167
+ - Correctly paste contents parsed by `JSON.parse()` as text. [#5868](https://github.com/excalidraw/excalidraw/pull/5868)
297
168
 
298
- - Add multiElement-edit finalize action to Desktop (currently only visible in Mobile view) [#4764](https://github.com/excalidraw/excalidraw/pull/4764)
169
+ - SVG element attributes in icons.tsx [#5871](https://github.com/excalidraw/excalidraw/pull/5871)
299
170
 
300
- - Hide eraser in view mode in desktop [#4929](https://github.com/excalidraw/excalidraw/pull/4929)
171
+ - Merge existing text with new when pasted [#5856](https://github.com/excalidraw/excalidraw/pull/5856)
301
172
 
302
- - Undo when erasing elements by clicking [#4921](https://github.com/excalidraw/excalidraw/pull/4921)
173
+ - Disable FAST_REFRESH to fix live reload [#5852](https://github.com/excalidraw/excalidraw/pull/5852)
303
174
 
304
- - Undo when erasing [#4900](https://github.com/excalidraw/excalidraw/pull/4900)
175
+ - Paste clipboard contents into unbound text elements [#5849](https://github.com/excalidraw/excalidraw/pull/5849)
305
176
 
306
- - Incorrectly erasing on mobile [#4899](https://github.com/excalidraw/excalidraw/pull/4899)
177
+ - Compute dimensions of container correctly when text pasted on container [#5845](https://github.com/excalidraw/excalidraw/pull/5845)
307
178
 
308
- - Don't crash on drop highlighted text onto canvas [#4890](https://github.com/excalidraw/excalidraw/pull/4890)
179
+ - Line editor points rendering below elements [#5781](https://github.com/excalidraw/excalidraw/pull/5781)
309
180
 
310
- - Paste styles shortcut [#4886](https://github.com/excalidraw/excalidraw/pull/4886)
181
+ - Syncing 1-point lines to remote clients [#5677](https://github.com/excalidraw/excalidraw/pull/5677)
311
182
 
312
- - Freedraw element's background fill color missing from SVG when exporting with package API exportToSvg() [#4871](https://github.com/excalidraw/excalidraw/pull/4871)
183
+ - Incorrectly selecting linear elements on creation while tool-locked [#5785](https://github.com/excalidraw/excalidraw/pull/5785)
313
184
 
314
- - Improve pointer syncing performance [#4883](https://github.com/excalidraw/excalidraw/pull/4883)
185
+ - Corrected typo in toggle theme shortcut [#5813](https://github.com/excalidraw/excalidraw/pull/5813)
315
186
 
316
- - Collab room initialization [#4882](https://github.com/excalidraw/excalidraw/pull/4882)
187
+ - Hide canvas-modifying UI in view mode [#5815](https://github.com/excalidraw/excalidraw/pull/5815)
317
188
 
318
- - Ensure verticalAlign properties not shown when no element selected [#4860](https://github.com/excalidraw/excalidraw/pull/4860)
189
+ - Fix vertical/horizntal centering icons [#5812](https://github.com/excalidraw/excalidraw/pull/5812)
319
190
 
320
- - Binding text to non-bindable containers and not always preferring selection [#4655](https://github.com/excalidraw/excalidraw/pull/4655)
191
+ - Consistent use of ZOOM_STEP [#5801](https://github.com/excalidraw/excalidraw/pull/5801)
321
192
 
322
- - Don't show align icons for single bound container element [#4846](https://github.com/excalidraw/excalidraw/pull/4846)
193
+ - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)
323
194
 
324
- - Redraw text bounding box when pasting styles [#4845](https://github.com/excalidraw/excalidraw/pull/4845)
325
-
326
- - Restore cursor position after bound text container value updated [#4836](https://github.com/excalidraw/excalidraw/pull/4836)
327
-
328
- - Support resizing multiple bound text containers [#4824](https://github.com/excalidraw/excalidraw/pull/4824)
329
-
330
- - Also check overflowY: overlay in detectScroll [#4806](https://github.com/excalidraw/excalidraw/pull/4806)
331
-
332
- - Stuck resizing when resizing bound text container very fast beyond threshold [#4804](https://github.com/excalidraw/excalidraw/pull/4804)
195
+ - Changelog typo [#5795](https://github.com/excalidraw/excalidraw/pull/5795)
333
196
 
334
197
  ### Refactor
335
198
 
336
- - Don't pass array to handleBindTextResize [#4826](https://github.com/excalidraw/excalidraw/pull/4826)
199
+ - Remove unnecessary code [#5933](https://github.com/excalidraw/excalidraw/pull/5933)
337
200
 
338
201
  ### Build
339
202
 
340
- - Extract all i18n files into locales folder [#5419](https://github.com/excalidraw/excalidraw/pull/5419)
341
-
342
- - Automate release step fully [#5414](https://github.com/excalidraw/excalidraw/pull/5414)
203
+ - Move release scripts to use release branch [#5958](https://github.com/excalidraw/excalidraw/pull/5958)
343
204
 
344
- - Use next and preview tags instead of separate packages for next and preview release [#5346](https://github.com/excalidraw/excalidraw/pull/5346)
345
-
346
- - Support runtime React Jsx in @excalidraw/utils [#4866](https://github.com/excalidraw/excalidraw/pull/4866)
347
-
348
- - Release @excalidraw/utils 0.1.1 [#4862](https://github.com/excalidraw/excalidraw/pull/4862)
349
-
350
- - Remove build packages workflow [#4835](https://github.com/excalidraw/excalidraw/pull/4835)
205
+ - Stops ignoring .env files from docker context so env variables get set during react app build. [#5809](https://github.com/excalidraw/excalidraw/pull/5809)
351
206
 
352
207
  ---
353
208
 
354
- ## 0.11.0 (2022-02-17)
355
-
356
- ## Excalidraw API
357
-
358
- ### Features
359
-
360
- - Add `onLinkOpen` prop which will be triggered when clicked on element hyperlink if present [#4694](https://github.com/excalidraw/excalidraw/pull/4694).
361
- - Support updating library using [`updateScene`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#updateScene) API [#4546](https://github.com/excalidraw/excalidraw/pull/4546).
362
-
363
- - Introduced primary colors to the app. The colors can be overridden. Check [readme](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#customizing-styles) on how to do so [#4387](https://github.com/excalidraw/excalidraw/pull/4387).
364
-
365
- - [`exportToBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToBlob) now automatically sets `appState.exportBackground` to `true` if exporting to `image/jpeg` MIME type (to ensure that alpha channel is not compressed to black color) [#4342](https://github.com/excalidraw/excalidraw/pull/4342).
366
-
367
- #### BREAKING CHANGE
368
-
369
- Remove `getElementMap` util [#4306](https://github.com/excalidraw/excalidraw/pull/4306).
370
-
371
- - Changes to [`exportToCanvas`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToCanvas) util function [#4321](https://github.com/excalidraw/excalidraw/pull/4321):
372
-
373
- - Add `maxWidthOrHeight?: number` attribute.
374
- - `scale` returned from `getDimensions()` is now optional (default to `1`).
375
-
376
- - Image support added for host [PR](https://github.com/excalidraw/excalidraw/pull/4011)
377
-
378
- General notes:
379
-
380
- - File data are encoded as DataURLs (base64) for portability reasons.
381
-
382
- [ExcalidrawAPI](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onLibraryChange):
383
-
384
- - added `getFiles()` to get current `BinaryFiles` (`Record<FileId, BinaryFileData>`). It may contain files that aren't referenced by any element, so if you're persisting the files to a storage, you should compare them against stored elements.
385
-
386
- Excalidraw app props:
387
-
388
- - added `generateIdForFile(file: File)` optional prop so you can generate your own ids for added files.
389
- - `onChange(elements, appState, files)` prop callback is now passed `BinaryFiles` as third argument.
390
- - `onPaste(data, event)` data prop should contain `data.files` (`BinaryFiles`) if the elements pasted are referencing new files.
391
- - `initialData` object now supports additional `files` (`BinaryFiles`) attribute.
392
-
393
- Other notes:
394
-
395
- - `.excalidraw` files may now contain top-level `files` key in format of `Record<FileId, BinaryFileData>` when exporting any (image) elements.
396
- - Changes were made to various export utilities exported from the package so that they take `files`, you can refer to the docs for the same.
397
-
398
- - Export [`isLinearElement`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#isLinearElement) and [`getNonDeletedElements`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#getNonDeletedElements) [#4072](https://github.com/excalidraw/excalidraw/pull/4072).
399
-
400
- - Support [`renderTopRightUI`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderTopRightUI) in mobile UI [#4065](https://github.com/excalidraw/excalidraw/pull/4065).
401
-
402
- - Export `THEME` constant from the package so host can use this when passing the theme [#4055](https://github.com/excalidraw/excalidraw/pull/4055).
403
-
404
- #### BREAKING CHANGE
405
-
406
- The `Appearance` type is now removed and renamed to `Theme` so `Theme` type needs to be used.
407
-
408
- ### Fixes
409
-
410
- - Reset `unmounted` state on the component once component mounts to fix the mounting/unmounting repeatedly when used with `useEffect` [#4682](https://github.com/excalidraw/excalidraw/pull/4682).
411
- - Panning the canvas using `mousewheel-drag` and `space-drag` now prevents the browser from scrolling the container/page [#4489](https://github.com/excalidraw/excalidraw/pull/4489).
412
- - Scope drag and drop events to Excalidraw container to prevent overriding host application drag and drop events [#4445](https://github.com/excalidraw/excalidraw/pull/4445).
413
-
414
- ### Build
415
-
416
- - Release preview package [@excalidraw/excalidraw-preview](https://www.npmjs.com/package/@excalidraw/excalidraw-preview) when triggered via comment
417
-
418
- ```
419
- @excalibot trigger release
420
- ```
209
+ ## 0.13.0 (2022-10-27)
421
210
 
422
- [#4750](https://github.com/excalidraw/excalidraw/pull/4750).
211
+ ### Excalidraw API
423
212
 
424
- - Added an example to test and develop the package [locally](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#Development) using `yarn start` [#4488](https://github.com/excalidraw/excalidraw/pull/4488)
213
+ #### Features
425
214
 
426
- - Remove `file-loader` so font assets are not duplicated by webpack and use webpack asset modules for font generation [#4380](https://github.com/excalidraw/excalidraw/pull/4380).
215
+ - `restoreElements()` now takes an optional parameter to indicate whether we should also recalculate text element dimensions. Defaults to `true`, but since this is a potentially costly operation, you may want to disable it if you restore elements in tight loops, such as during collaboration [#5432](https://github.com/excalidraw/excalidraw/pull/5432).
216
+ - Support rendering custom sidebar using [`renderSidebar`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#renderSidebar) prop ([#5663](https://github.com/excalidraw/excalidraw/pull/5663)).
217
+ - Add [`toggleMenu`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#toggleMenu) prop to toggle specific menu open/close state ([#5663](https://github.com/excalidraw/excalidraw/pull/5663)).
218
+ - Support [theme](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#theme) to be semi-controlled [#5660](https://github.com/excalidraw/excalidraw/pull/5660).
219
+ - Added support for storing [`customData`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#storing-custom-data-on-excalidraw-elements) on Excalidraw elements [#5592].
220
+ - Added `exportPadding?: number;` to [exportToCanvas](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exporttocanvas) and [exportToBlob](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exporttoblob). The default value of the padding is `10`.
427
221
 
428
- - We're now compiling to `es2017` target. Notably, `async/await` is not compiled down to generators. [#4341](https://github.com/excalidraw/excalidraw/pull/4341).
222
+ #### Breaking Changes
429
223
 
430
- ---
224
+ - `props.UIOptions.canvasActions.theme` is now renamed to `props.UIOptions.canvasActions.toggleTheme` [#5660](https://github.com/excalidraw/excalidraw/pull/5660).
225
+ - `setToastMessage` API is now renamed to `setToast` API and the function signature is also updated [#5427](https://github.com/excalidraw/excalidraw/pull/5427). You can also pass `duration` and `closable` attributes along with `message`.
431
226
 
432
227
  ## Excalidraw Library
433
228
 
@@ -435,459 +230,201 @@ React.createElement(ExcalidrawLib.Excalidraw, opts);
435
230
 
436
231
  ### Features
437
232
 
438
- - Show group/group and link action in mobile [#4795](https://github.com/excalidraw/excalidraw/pull/4795)
439
-
440
- - Support background fill for freedraw shapes [#4610](https://github.com/excalidraw/excalidraw/pull/4610)
441
-
442
- - Keep selected tool on canvas reset [#4728](https://github.com/excalidraw/excalidraw/pull/4728)
443
-
444
- - Make whole element clickable in view mode when it has hyperlink [#4735](https://github.com/excalidraw/excalidraw/pull/4735)
445
-
446
- - Allow any precision when zooming [#4730](https://github.com/excalidraw/excalidraw/pull/4730)
447
-
448
- - Throttle `pointermove` events per framerate [#4727](https://github.com/excalidraw/excalidraw/pull/4727)
449
-
450
- - Support hyperlinks 🔥 [#4620](https://github.com/excalidraw/excalidraw/pull/4620)
451
-
452
- - Added penMode for palm rejection [#4657](https://github.com/excalidraw/excalidraw/pull/4657)
453
-
454
- - Support unbinding bound text [#4686](https://github.com/excalidraw/excalidraw/pull/4686)
455
-
456
- - Sync local storage state across tabs when out of sync [#4545](https://github.com/excalidraw/excalidraw/pull/4545)
457
-
458
- - Support contextMenuLabel to be of function type to support dynamic labels [#4654](https://github.com/excalidraw/excalidraw/pull/4654)
459
-
460
- - Support decreasing/increasing `fontSize` via keyboard [#4553](https://github.com/excalidraw/excalidraw/pull/4553)
461
-
462
- - Link to new LP for excalidraw plus [#4549](https://github.com/excalidraw/excalidraw/pull/4549)
463
-
464
- - Update stroke color of bounded text along with container [#4541](https://github.com/excalidraw/excalidraw/pull/4541)
465
-
466
- - Hints and shortcuts help around deep selection [#4502](https://github.com/excalidraw/excalidraw/pull/4502)
467
-
468
- - Support updating text properties by clicking on container [#4499](https://github.com/excalidraw/excalidraw/pull/4499)
469
-
470
- - Bind text to shapes when pressing enter and support sticky notes 🎉 [#4343](https://github.com/excalidraw/excalidraw/pull/4343)
471
-
472
- - Change `boundElementIds` → `boundElements` [#4404](https://github.com/excalidraw/excalidraw/pull/4404)
473
-
474
- - Support selecting multiple points when editing line [#4373](https://github.com/excalidraw/excalidraw/pull/4373)
475
-
476
- - Horizontally center toolbar menu [commit link](https://github.com/excalidraw/excalidraw/commit/9b8ee3cacfec239617c357693cf2a3ca9972d2cb)
477
-
478
- - Add support for rounded corners in diamond [#4369](https://github.com/excalidraw/excalidraw/pull/4369)
233
+ - Render library into `Sidebar` on mobile [#5774](https://github.com/excalidraw/excalidraw/pull/5774)
479
234
 
480
- - Allow zooming up to 3000% [#4358](https://github.com/excalidraw/excalidraw/pull/4358)
235
+ - Additional drag and drop image format support (webp, bmp, ico) [#5749](https://github.com/excalidraw/excalidraw/pull/5749)
481
236
 
482
- - Stop discarding precision when rendering [#4357](https://github.com/excalidraw/excalidraw/pull/4357)
237
+ - Enter and Exit line editor via context menu [#5719](https://github.com/excalidraw/excalidraw/pull/5719)
483
238
 
484
- - Support Image binding [#4347](https://github.com/excalidraw/excalidraw/pull/4347)
239
+ - Further reduce darkmode init flash [#5701](https://github.com/excalidraw/excalidraw/pull/5701)
485
240
 
486
- - Add `element.updated` [#4070](https://github.com/excalidraw/excalidraw/pull/4070)
241
+ - Support segment midpoints in line editor [#5641](https://github.com/excalidraw/excalidraw/pull/5641)
487
242
 
488
- - Compress shareLink data when uploading to json server [#4225](https://github.com/excalidraw/excalidraw/pull/4225)
243
+ - Added exportPadding to PNG (blob) export in @excalidraw/utils [#5626](https://github.com/excalidraw/excalidraw/pull/5626)
489
244
 
490
- - Supply `version` param when installing libraries [#4305](https://github.com/excalidraw/excalidraw/pull/4305)
245
+ - Introduce ExcalidrawElements and ExcalidrawAppState provider [#5463](https://github.com/excalidraw/excalidraw/pull/5463)
491
246
 
492
- - Log FS abortError to console [#4279](https://github.com/excalidraw/excalidraw/pull/4279)
247
+ - Enable midpoint inside linear element editor [#5564](https://github.com/excalidraw/excalidraw/pull/5564)
493
248
 
494
- - Add validation for website and remove validation for library item name [#4269](https://github.com/excalidraw/excalidraw/pull/4269)
249
+ - Show a mid point for linear elements [#5534](https://github.com/excalidraw/excalidraw/pull/5534)
495
250
 
496
- - Allow publishing libraries from UI [#4115](https://github.com/excalidraw/excalidraw/pull/4115)
251
+ - Lock angle when editing linear elements with shift pressed [#5527](https://github.com/excalidraw/excalidraw/pull/5527)
497
252
 
498
- - Create confirm dialog to use instead of window.confirm [#4256](https://github.com/excalidraw/excalidraw/pull/4256)
253
+ - Redesign linear elements 🎉 [#5501](https://github.com/excalidraw/excalidraw/pull/5501)
499
254
 
500
- - Allow letters in IDs for storing files in backend [#4224](https://github.com/excalidraw/excalidraw/pull/4224)
255
+ - Cursor alignment when creating linear elements with shift pressed [#5518](https://github.com/excalidraw/excalidraw/pull/5518)
501
256
 
502
- - Remove support for V1 unencrypted backend [#4189](https://github.com/excalidraw/excalidraw/pull/4189)
257
+ - Shift-clamp when creating multi-point lines/arrows [#5500](https://github.com/excalidraw/excalidraw/pull/5500)
503
258
 
504
- - Use separate backend for local storage [#4187](https://github.com/excalidraw/excalidraw/pull/4187)
259
+ - Cursor alignment when creating generic elements [#5516](https://github.com/excalidraw/excalidraw/pull/5516)
505
260
 
506
- - Add hint around canvas panning [#4159](https://github.com/excalidraw/excalidraw/pull/4159)
507
-
508
- - Stop using production services for development [#4113](https://github.com/excalidraw/excalidraw/pull/4113)
509
-
510
- - Add triangle arrowhead [#4024](https://github.com/excalidraw/excalidraw/pull/4024)
511
-
512
- - Add rewrite to webex landing page [#4102](https://github.com/excalidraw/excalidraw/pull/4102)
513
-
514
- - Switch collab server [#4092](https://github.com/excalidraw/excalidraw/pull/4092)
515
-
516
- - Use dialog component for clear canvas instead of window confirm [#4075](https://github.com/excalidraw/excalidraw/pull/4075)
261
+ - Make context menu scrollable [#4030](https://github.com/excalidraw/excalidraw/pull/4030)
517
262
 
518
263
  ### Fixes
519
264
 
520
- - Rename --color-primary-chubb to --color-primary-contrast-offset and fallback to primary color if not present [#4803](https://github.com/excalidraw/excalidraw/pull/4803)
521
-
522
- - Add commits directly pushed to master in changelog [#4798](https://github.com/excalidraw/excalidraw/pull/4798)
523
-
524
- - Don't bump element version when adding files data [#4794](https://github.com/excalidraw/excalidraw/pull/4794)
525
-
526
- - Mobile link click [#4742](https://github.com/excalidraw/excalidraw/pull/4742)
527
-
528
- - ContextMenu timer & pointers not correctly reset on iOS [#4765](https://github.com/excalidraw/excalidraw/pull/4765)
529
-
530
- - Use absolute coords when rendering link popover [#4753](https://github.com/excalidraw/excalidraw/pull/4753)
531
-
532
- - Changing font size when text is not selected or edited [#4751](https://github.com/excalidraw/excalidraw/pull/4751)
533
-
534
- - Disable contextmenu on non-secondary `pen` events or `touch` [#4675](https://github.com/excalidraw/excalidraw/pull/4675)
535
-
536
- - Mobile context menu won't show on long press [#4741](https://github.com/excalidraw/excalidraw/pull/4741)
537
-
538
- - Do not open links twice [#4738](https://github.com/excalidraw/excalidraw/pull/4738)
539
-
540
- - Make link icon clickable in mobile [#4736](https://github.com/excalidraw/excalidraw/pull/4736)
541
-
542
- - Apple Pen missing strokes [#4705](https://github.com/excalidraw/excalidraw/pull/4705)
543
-
544
- - Freedraw slow movement jittery lines [#4726](https://github.com/excalidraw/excalidraw/pull/4726)
265
+ - Ungroup short cut key [#5779](https://github.com/excalidraw/excalidraw/pull/5779)
545
266
 
546
- - Disable three finger pinch zoom in penMode [#4725](https://github.com/excalidraw/excalidraw/pull/4725)
267
+ - Replaced KeyboardEvent.code with KeyboardEvent.key for all letters [#5523](https://github.com/excalidraw/excalidraw/pull/5523)
547
268
 
548
- - Remove click listener for opening popup [#4700](https://github.com/excalidraw/excalidraw/pull/4700)
269
+ - Free draw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)
549
270
 
550
- - Link popup position not accounting for offsets [#4695](https://github.com/excalidraw/excalidraw/pull/4695)
271
+ - Wait for window focus until prompting for library install [#5751](https://github.com/excalidraw/excalidraw/pull/5751)
551
272
 
552
- - PenMode darkmode style [#4692](https://github.com/excalidraw/excalidraw/pull/4692)
273
+ - Update perfect freehand library to fix extra dot [#5727](https://github.com/excalidraw/excalidraw/pull/5727)
553
274
 
554
- - Typing `_+` in wysiwyg not working [#4681](https://github.com/excalidraw/excalidraw/pull/4681)
275
+ - RestoreElementWithProperties drops "parent" property [#5742](https://github.com/excalidraw/excalidraw/pull/5742)
555
276
 
556
- - Keyboard-zooming in wysiwyg should zoom canvas [#4676](https://github.com/excalidraw/excalidraw/pull/4676)
277
+ - Horizontal text alignment for bound text when resizing [#5721](https://github.com/excalidraw/excalidraw/pull/5721)
557
278
 
558
- - SceneCoordsToViewportCoords, jumping text when there is an offset [#4413](https://github.com/excalidraw/excalidraw/pull/4413) (#4630)
279
+ - Set the dimensions of bound text correctly [#5710](https://github.com/excalidraw/excalidraw/pull/5710)
559
280
 
560
- - Right-click object menu displays partially off-screen [#4572](https://github.com/excalidraw/excalidraw/pull/4572) (#4631)
281
+ - Image-mirroring in export preview and in exported svg [#5700](https://github.com/excalidraw/excalidraw/pull/5700)
561
282
 
562
- - Support collaboration in bound text [#4573](https://github.com/excalidraw/excalidraw/pull/4573)
283
+ - Double state update incorrectly resetting state [#5704](https://github.com/excalidraw/excalidraw/pull/5704)
563
284
 
564
- - Cmd/ctrl native browser behavior blocked in inputs [#4589](https://github.com/excalidraw/excalidraw/pull/4589)
285
+ - Remove no longer used code related to collab room loading [#5699](https://github.com/excalidraw/excalidraw/pull/5699)
565
286
 
566
- - Use cached width when calculating min width during resize [#4585](https://github.com/excalidraw/excalidraw/pull/4585)
287
+ - Revert webpack deduping to fix `@next` runtime [#5695](https://github.com/excalidraw/excalidraw/pull/5695)
567
288
 
568
- - Support collaboration in bounded text [#4580](https://github.com/excalidraw/excalidraw/pull/4580)
289
+ - Move to release notes for v0.9.0 and after [#5686](https://github.com/excalidraw/excalidraw/pull/5686)
569
290
 
570
- - Port for collab server and update docs [#4569](https://github.com/excalidraw/excalidraw/pull/4569)
291
+ - Zen-mode exit button not working [#5682](https://github.com/excalidraw/excalidraw/pull/5682)
571
292
 
572
- - Don't mutate the bounded text if not updated when submitted [#4543](https://github.com/excalidraw/excalidraw/pull/4543)
293
+ - Buttons jump around on the mobile menu [#5658](https://github.com/excalidraw/excalidraw/pull/5658)
573
294
 
574
- - Prevent canvas drag while editing text [#4552](https://github.com/excalidraw/excalidraw/pull/4552)
295
+ - #5622 - prevent session theme reset during collaboration [#5640](https://github.com/excalidraw/excalidraw/pull/5640)
575
296
 
576
- - Support shift+P for freedraw [#4550](https://github.com/excalidraw/excalidraw/pull/4550)
297
+ - Library actions inside the sidebar [#5638](https://github.com/excalidraw/excalidraw/pull/5638)
577
298
 
578
- - Prefer spreadsheet data over image [#4533](https://github.com/excalidraw/excalidraw/pull/4533)
299
+ - Don't render library menu twice for mobile [#5636](https://github.com/excalidraw/excalidraw/pull/5636)
579
300
 
580
- - Show text properties button states correctly for bounded text [#4542](https://github.com/excalidraw/excalidraw/pull/4542)
301
+ - Reintroduce help dialog button [#5631](https://github.com/excalidraw/excalidraw/pull/5631)
581
302
 
582
- - Rotate bounded text when container is rotated before typing [#4535](https://github.com/excalidraw/excalidraw/pull/4535)
303
+ - Add display name to components so it doesn't show as anonymous [#5616](https://github.com/excalidraw/excalidraw/pull/5616)
583
304
 
584
- - Undo should work when selecting bounded textr [#4537](https://github.com/excalidraw/excalidraw/pull/4537)
305
+ - Improve solveQuadratic when a = 0 [#5618](https://github.com/excalidraw/excalidraw/pull/5618)
585
306
 
586
- - Reduce padding to 5px for bounded text [#4530](https://github.com/excalidraw/excalidraw/pull/4530)
307
+ - Add random tiny offsets to avoid linear elements from being clipped [#5615](https://github.com/excalidraw/excalidraw/pull/5615)
587
308
 
588
- - Bound text doesn't inherit container [#4521](https://github.com/excalidraw/excalidraw/pull/4521)
309
+ - Crash when adding a new point in the line editor #5602 [#5606](https://github.com/excalidraw/excalidraw/pull/5606)
589
310
 
590
- - Text wrapping with grid [#4505](https://github.com/excalidraw/excalidraw/pull/4505) (#4506)
311
+ - Allow box selection of points when inside editor [#5594](https://github.com/excalidraw/excalidraw/pull/5594)
591
312
 
592
- - Check if process is defined before using so it works in browser [#4497](https://github.com/excalidraw/excalidraw/pull/4497)
313
+ - Remove unnecessary conditions in pointerup for linear elements [#5575](https://github.com/excalidraw/excalidraw/pull/5575)
593
314
 
594
- - Pending review fixes for sticky notes [#4493](https://github.com/excalidraw/excalidraw/pull/4493)
315
+ - Check if hitting link in handleSelectionOnPointerDown [#5589](https://github.com/excalidraw/excalidraw/pull/5589)
595
316
 
596
- - Pasted elements except binded text once paste action is complete [#4472](https://github.com/excalidraw/excalidraw/pull/4472)
317
+ - Points not being normalized on single-elem resize [#5581](https://github.com/excalidraw/excalidraw/pull/5581)
597
318
 
598
- - Don't select binded text when ungrouping [#4470](https://github.com/excalidraw/excalidraw/pull/4470)
319
+ - Deselect linear element when clicked inside bounding box outside editor [#5579](https://github.com/excalidraw/excalidraw/pull/5579)
599
320
 
600
- - Set height correctly when text properties updated while editing in container until first submit [#4469](https://github.com/excalidraw/excalidraw/pull/4469)
321
+ - Resize multiple elements from center [#5560](https://github.com/excalidraw/excalidraw/pull/5560)
601
322
 
602
- - Align and distribute binded text in container and cleanup [#4468](https://github.com/excalidraw/excalidraw/pull/4468)
323
+ - Call static methods via class instead of instance in linearElementEditor [#5561](https://github.com/excalidraw/excalidraw/pull/5561)
603
324
 
604
- - Move binded text when moving container using keyboard [#4466](https://github.com/excalidraw/excalidraw/pull/4466)
325
+ - Show bounding box for 3 or more linear point elements [#5554](https://github.com/excalidraw/excalidraw/pull/5554)
605
326
 
606
- - Support dragging binded text in container selected in a group [#4462](https://github.com/excalidraw/excalidraw/pull/4462)
327
+ - Cleanup the condition for dragging elements [#5555](https://github.com/excalidraw/excalidraw/pull/5555)
607
328
 
608
- - Vertically align single line when deleting text in bounded container [#4460](https://github.com/excalidraw/excalidraw/pull/4460)
329
+ - Shareable links being merged with current scene data [#5547](https://github.com/excalidraw/excalidraw/pull/5547)
609
330
 
610
- - Update height correctly when updating text properties in binded text [#4459](https://github.com/excalidraw/excalidraw/pull/4459)
331
+ - Scene lookup failing when looking up by id [#5542](https://github.com/excalidraw/excalidraw/pull/5542)
611
332
 
612
- - Align library item previews to center [#4447](https://github.com/excalidraw/excalidraw/pull/4447)
333
+ - Remove rounding to fix jitter when shift-editing [#5543](https://github.com/excalidraw/excalidraw/pull/5543)
613
334
 
614
- - Vertically center align text when text deleted [#4457](https://github.com/excalidraw/excalidraw/pull/4457)
335
+ - Line deselected when shift-dragging point outside editor [#5540](https://github.com/excalidraw/excalidraw/pull/5540)
615
336
 
616
- - Vertically center the first line as user starts typing in container [#4454](https://github.com/excalidraw/excalidraw/pull/4454)
337
+ - Flip linear elements after redesign [#5538](https://github.com/excalidraw/excalidraw/pull/5538)
617
338
 
618
- - Switch cursor to center of container when adding text when dimensions are too small [#4452](https://github.com/excalidraw/excalidraw/pull/4452)
339
+ - Disable locking aspect ratio for box-selection [#5525](https://github.com/excalidraw/excalidraw/pull/5525)
619
340
 
620
- - Vertically center align the bounded text correctly when zoomed [#4444](https://github.com/excalidraw/excalidraw/pull/4444)
341
+ - Add `title` attribute to the modal close button [#5521](https://github.com/excalidraw/excalidraw/pull/5521)
621
342
 
622
- - Support updating stroke color for text by typing in color picker input [#4415](https://github.com/excalidraw/excalidraw/pull/4415)
343
+ - Context menu positioning when component has offsets [#5520](https://github.com/excalidraw/excalidraw/pull/5520)
623
344
 
624
- - Bound text not atomic with container when changing z-index [#4414](https://github.com/excalidraw/excalidraw/pull/4414)
345
+ - Resolve paths in prebuild.js script [#5498](https://github.com/excalidraw/excalidraw/pull/5498)
625
346
 
626
- - Update viewport coords correctly when editing text [#4416](https://github.com/excalidraw/excalidraw/pull/4416)
347
+ - Use flushSync when moving line editor since we need to read previous value after setting state [#5508](https://github.com/excalidraw/excalidraw/pull/5508)
627
348
 
628
- - Use word-break break-word only and update text editor height only when binded to container [#4410](https://github.com/excalidraw/excalidraw/pull/4410)
349
+ - UseLayout effect cleanup in dev mode for charts [#5505](https://github.com/excalidraw/excalidraw/pull/5505)
629
350
 
630
- - Husky not able to execute pre-commit on windows [#4370](https://github.com/excalidraw/excalidraw/pull/4370)
351
+ - Revert browser toast for high/low zoom [#5495](https://github.com/excalidraw/excalidraw/pull/5495)
631
352
 
632
- - Make firebase config parsing not fail on undefined env [#4381](https://github.com/excalidraw/excalidraw/pull/4381)
353
+ - Fixing push to DockerHub [#5468](https://github.com/excalidraw/excalidraw/pull/5468)
633
354
 
634
- - Adding to library via contextmenu when no image is selected [#4356](https://github.com/excalidraw/excalidraw/pull/4356)
355
+ - Incorrectly rendering freedraw elements [#5481](https://github.com/excalidraw/excalidraw/pull/5481)
635
356
 
636
- - Export scale quality regression [#4316](https://github.com/excalidraw/excalidraw/pull/4316)
357
+ - Generate types when building example [#5480](https://github.com/excalidraw/excalidraw/pull/5480)
637
358
 
638
- - Remove `100%` height from tooltip container to fix layout issues [#3980](https://github.com/excalidraw/excalidraw/pull/3980)
359
+ - Use React.FC as react-dom is not able to infer types of Modal [#5479](https://github.com/excalidraw/excalidraw/pull/5479)
639
360
 
640
- - Inline ENV variables when building excalidraw package [#4311](https://github.com/excalidraw/excalidraw/pull/4311)
361
+ - Missing translation for "Scale" to Export Dialog [#5456](https://github.com/excalidraw/excalidraw/pull/5456)
641
362
 
642
- - SVG export in dark mode with embedded bitmap image [#4285](https://github.com/excalidraw/excalidraw/pull/4285)
363
+ - Add display name for Excalidraw component so it doesn't show as anonymous [#5464](https://github.com/excalidraw/excalidraw/pull/5464)
643
364
 
644
- - New FS API not working on Linux [#4280](https://github.com/excalidraw/excalidraw/pull/4280)
365
+ - Account for safe area for floating buttons on mobile [#5420](https://github.com/excalidraw/excalidraw/pull/5420)
645
366
 
646
- - Url -> URL for consistency [#4277](https://github.com/excalidraw/excalidraw/pull/4277)
367
+ - Attribute warnings in comment svg example [#5465](https://github.com/excalidraw/excalidraw/pull/5465)
647
368
 
648
- - Prevent adding images to library via contextMenu [#4264](https://github.com/excalidraw/excalidraw/pull/4264)
369
+ - Check for ctrl key when wheel event triggered to only disable zooming [#5459](https://github.com/excalidraw/excalidraw/pull/5459)
649
370
 
650
- - Account for libraries v2 when prompting [#4263](https://github.com/excalidraw/excalidraw/pull/4263)
371
+ - Disable render throttling by default & during resize [#5451](https://github.com/excalidraw/excalidraw/pull/5451)
651
372
 
652
- - Skia rendering issues [#4200](https://github.com/excalidraw/excalidraw/pull/4200)
373
+ - Attach wheel event to exscalidraw container only [#5443](https://github.com/excalidraw/excalidraw/pull/5443)
653
374
 
654
- - Ellipse roughness when `0` [#4194](https://github.com/excalidraw/excalidraw/pull/4194)
375
+ - Show toast when browser zoom is not 100% [#5304](https://github.com/excalidraw/excalidraw/pull/5304)
655
376
 
656
- - Proper string for invalid SVG [#4191](https://github.com/excalidraw/excalidraw/pull/4191)
377
+ - Prevent browser zoom inside Excalidraw [#5426](https://github.com/excalidraw/excalidraw/pull/5426)
657
378
 
658
- - Images not initialized correctly [#4157](https://github.com/excalidraw/excalidraw/pull/4157)
659
-
660
- - Image-related fixes [#4147](https://github.com/excalidraw/excalidraw/pull/4147)
661
-
662
- - Rewrite collab element reconciliation to fix z-index issues [#4076](https://github.com/excalidraw/excalidraw/pull/4076)
663
-
664
- - Redirect excalidraw.com/about to for-webex.excalidraw.com [#4104](https://github.com/excalidraw/excalidraw/pull/4104)
665
-
666
- - Redirect to webex LP instead of rewrite to fix SW [#4103](https://github.com/excalidraw/excalidraw/pull/4103)
667
-
668
- - Clear image/shape cache of affected elements when adding files [#4089](https://github.com/excalidraw/excalidraw/pull/4089)
669
-
670
- - Clear `LibraryUnit` DOM on unmount [#4084](https://github.com/excalidraw/excalidraw/pull/4084)
671
-
672
- - Pasting images on firefox [#4085](https://github.com/excalidraw/excalidraw/pull/4085)
379
+ - Typo in changelog [#5425](https://github.com/excalidraw/excalidraw/pull/5425)
673
380
 
674
381
  ### Refactor
675
382
 
676
- - Simplify zoom by removing `zoom.translation` [#4477](https://github.com/excalidraw/excalidraw/pull/4477)
383
+ - Create a util to compute container dimensions for bound text container [#5708](https://github.com/excalidraw/excalidraw/pull/5708)
677
384
 
678
- - Deduplicate encryption helpers [#4146](https://github.com/excalidraw/excalidraw/pull/4146)
385
+ - Reuse common ui dialogs and message for mobile and LayerUI [#5611](https://github.com/excalidraw/excalidraw/pull/5611)
679
386
 
680
- ### Performance
387
+ - Stats component [#5610](https://github.com/excalidraw/excalidraw/pull/5610)
681
388
 
682
- - Cache approx line height in textwysiwg [#4651](https://github.com/excalidraw/excalidraw/pull/4651)
683
-
684
- ### Build
389
+ - Move footer to its own component [#5609](https://github.com/excalidraw/excalidraw/pull/5609)
685
390
 
686
- - Rename release command to 'release package' [#4783](https://github.com/excalidraw/excalidraw/pull/4783)
687
-
688
- - Deploy excalidraw package example [#4762](https://github.com/excalidraw/excalidraw/pull/4762)
689
-
690
- - Allow package.json changes when autoreleasing next [#4068](https://github.com/excalidraw/excalidraw/pull/4068)
691
-
692
- ---
693
-
694
- ## 0.10.0 (2021-10-13)
695
-
696
- ## Excalidraw API
391
+ - Remove unused attribute hasHitElementInside from pointerDownState [#5591](https://github.com/excalidraw/excalidraw/pull/5591)
697
392
 
698
- ### Fixes
393
+ - Cleanup renderScene [#5573](https://github.com/excalidraw/excalidraw/pull/5573)
699
394
 
700
- - Don't show save file to disk button in export dialog when `saveFileToDisk` passed as `false` in [`UIOptions.canvasActions.export`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportOpts) [#4073](https://github.com/excalidraw/excalidraw/pull/4073).
395
+ - Rename docs to dev-docs [#5487](https://github.com/excalidraw/excalidraw/pull/5487)
701
396
 
702
- - [`onPaste`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPaste) prop should return false to prevent the native excalidraw paste action [#3974](https://github.com/excalidraw/excalidraw/pull/3974).
397
+ - Remove unnecessary if condition for linear element onKeyDown [#5486](https://github.com/excalidraw/excalidraw/pull/5486)
703
398
 
704
- #### BREAKING CHANGE
399
+ - Improve typing & check [#5415](https://github.com/excalidraw/excalidraw/pull/5415)
705
400
 
706
- - Earlier the paste action was prevented when the prop [`onPaste`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#onPaste) returned true, but now it should return false to prevent the paste action. This was done to make it semantically more correct and intuitive.
401
+ - Don't pass zenModeEnable, viewModeEnabled and toggleZenMode props to LayerUI [#5444](https://github.com/excalidraw/excalidraw/pull/5444)
707
402
 
708
403
  ### Build
709
404
 
710
- - Enable jsx transform in webpack [#4049](https://github.com/excalidraw/excalidraw/pull/4049)
711
-
712
- ### Docs
713
-
714
- - Correct exportToBackend in README to onExportToBackend [#3952](https://github.com/excalidraw/excalidraw/pull/3952)
715
-
716
- ## Excalidraw Library
717
-
718
- **_This section lists the updates made to the excalidraw library and will not affect the integration._**
719
-
720
- ### Features
721
-
722
- - Improve freedraw shape [#3984](https://github.com/excalidraw/excalidraw/pull/3984)
723
-
724
- - Make color ARIA labels better [#3871](https://github.com/excalidraw/excalidraw/pull/3871)
725
-
726
- - Add origin trial tokens [#3853](https://github.com/excalidraw/excalidraw/pull/3853)
727
-
728
- - Re-order zoom buttons [#3837](https://github.com/excalidraw/excalidraw/pull/3837)
729
-
730
- - Add undo/redo buttons & tweak footer [#3832](https://github.com/excalidraw/excalidraw/pull/3832)
731
-
732
- - Resave to png/svg with metadata if you loaded your scene from a png/svg file [#3645](https://github.com/excalidraw/excalidraw/pull/3645)
405
+ - Add missing dependencies: pica, lodash [#5656](https://github.com/excalidraw/excalidraw/pull/5656)
733
406
 
734
- ### Fixes
735
-
736
- - Abstract and fix legacy fs [#4032](https://github.com/excalidraw/excalidraw/pull/4032)
737
-
738
- - Context menu positioning [#4025](https://github.com/excalidraw/excalidraw/pull/4025)
739
-
740
- - Added alert for bad encryption key [#3998](https://github.com/excalidraw/excalidraw/pull/3998)
741
-
742
- - OnPaste should return false to prevent paste action [#3974](https://github.com/excalidraw/excalidraw/pull/3974)
743
-
744
- - Help-icon now visible on Safari [#3939](https://github.com/excalidraw/excalidraw/pull/3939)
745
-
746
- - Permanent zoom mode [#3931](https://github.com/excalidraw/excalidraw/pull/3931)
747
-
748
- - Undo/redo buttons gap in Safari [#3836](https://github.com/excalidraw/excalidraw/pull/3836)
749
-
750
- - Prevent gradual canvas misalignment [#3833](https://github.com/excalidraw/excalidraw/pull/3833)
751
-
752
- - Color picker shortcuts not working when elements selected [#3817](https://github.com/excalidraw/excalidraw/pull/3817)
407
+ - Move dotenv to dev deps [#5472](https://github.com/excalidraw/excalidraw/pull/5472)
753
408
 
754
409
  ---
755
410
 
756
- ## 0.9.0 (2021-07-10)
757
-
758
- ## Excalidraw API
759
-
760
- ### Features
761
-
762
- - [`restore(data, localAppState, localElements)`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#restore) and [`restoreElements(elements, localElements)`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#restoreElements) now take `localElements` argument which will be used to ensure existing elements' versions are used and incremented. This fixes an issue where importing the same file would resolve to elements with older versions, potentially causing issues when reconciling [#3797](https://github.com/excalidraw/excalidraw/pull/3797).
763
-
764
- #### BREAKING CHANGE
765
-
766
- - `localElements` argument is mandatory (can be `null`/`undefined`) if using TypeScript.
767
-
768
- - Support `appState.exportEmbedScene` attribute in [`exportToSvg`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToSvg) which allows to embed the scene data [#3777](https://github.com/excalidraw/excalidraw/pull/3777).
769
-
770
- #### BREAKING CHANGE
771
-
772
- - The attribute `metadata` is now removed as `metadata` was only used to embed scene data which is now supported with the `appState.exportEmbedScene` attribute.
773
- - [`exportToSvg`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportToSvg) now resolves to a promise which resolves to `svg` of the exported drawing.
774
-
775
- - Expose [`loadLibraryFromBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#loadLibraryFromBlobY), [`loadFromBlob`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#loadFromBlob), and [`getFreeDrawSvgPath`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#getFreeDrawSvgPath) [#3764](https://github.com/excalidraw/excalidraw/pull/3764).
776
-
777
- - Expose [`FONT_FAMILY`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#FONT_FAMILY) so that consumer can use when passing `initialData.appState.currentItemFontFamily` [#3710](https://github.com/excalidraw/excalidraw/pull/3710).
778
-
779
- - Added prop [`autoFocus`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#autoFocus) to focus the excalidraw component on page load when enabled, defaults to false [#3691](https://github.com/excalidraw/excalidraw/pull/3691).
780
-
781
- Note: Earlier Excalidraw component was focused by default on page load, you need to enable `autoFocus` prop to retain the same behaviour.
782
-
783
- - Added prop `UIOptions.canvasActions.export.renderCustomUI` to support Custom UI rendering inside export dialog [#3666](https://github.com/excalidraw/excalidraw/pull/3666).
784
- - Added prop `UIOptions.canvasActions.saveAsImage` to show/hide the **Save as image** button in the canvas actions. Defaults to `true` hence the **Save as Image** button is rendered [#3662](https://github.com/excalidraw/excalidraw/pull/3662).
785
-
786
- - Export dialog can be customised with [`UiOptions.canvasActions.export`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#exportOpts) [#3658](https://github.com/excalidraw/excalidraw/pull/3658).
787
-
788
- Also, [`UIOptions`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#UIOptions) is now memoized to avoid unnecessary rerenders.
789
-
790
- #### BREAKING CHANGE
791
-
792
- - `UIOptions.canvasActions.saveAsScene` is now renamed to `UiOptions.canvasActions.export.saveFileToDisk`. Defaults to `true` hence the **save file to disk** button is rendered inside the export dialog.
793
- - `exportToBackend` is now renamed to `UIOptions.canvasActions.export.exportToBackend`. If this prop is not passed, the **shareable-link** button will not be rendered, same as before.
794
-
795
- ### Fixes
796
-
797
- - Use excalidraw Id in elements so every element has unique id [#3696](https://github.com/excalidraw/excalidraw/pull/3696).
798
-
799
- ### Refactor
800
-
801
- - #### BREAKING CHANGE
802
- - Rename `UIOptions.canvasActions.saveScene` to `UIOptions.canvasActions.saveToActiveFile`[#3657](https://github.com/excalidraw/excalidraw/pull/3657).
803
- - Removed `shouldAddWatermark: boolean` attribute from options for [export](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#export-utilities) APIs [#3639](https://github.com/excalidraw/excalidraw/pull/3639).
804
- - Removed `appState.shouldAddWatermark` so in case you were passing `shouldAddWatermark` in [initialData.AppState](https://github.com/excalidraw/excalidraw/blob/master/src/types.ts#L42) it will not work anymore.
411
+ ## 0.12.0 (2022-07-07)
805
412
 
806
- ## Excalidraw Library
413
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.12.0) )
807
414
 
808
415
  **_This section lists the updates made to the excalidraw library and will not affect the integration._**
809
416
 
810
- ### Features
811
-
812
- - Switch to selection tool on library item insert [#3773](https://github.com/excalidraw/excalidraw/pull/3773)
813
-
814
- - Show active file name when saving to current file [#3733](https://github.com/excalidraw/excalidraw/pull/3733)
815
-
816
- - Add hint around text editing [#3708](https://github.com/excalidraw/excalidraw/pull/3708)
817
-
818
- - Change library icon to be more clear [#3583](https://github.com/excalidraw/excalidraw/pull/3583)
819
-
820
- - Pass current `theme` when installing libraries [#3701](https://github.com/excalidraw/excalidraw/pull/3701)
821
-
822
- - Update virgil font [#3692](https://github.com/excalidraw/excalidraw/pull/3692)
823
-
824
- - Support exporting json to excalidraw plus [#3678](https://github.com/excalidraw/excalidraw/pull/3678)
825
-
826
- - Save exportScale in AppState [#3580](https://github.com/excalidraw/excalidraw/pull/3580)
827
-
828
- - Add shortcuts for stroke and background color picker [#3318](https://github.com/excalidraw/excalidraw/pull/3318)
829
-
830
- - Exporting redesign [#3613](https://github.com/excalidraw/excalidraw/pull/3613)
831
-
832
- - Auto-position tooltip and support overflowing container [#3631](https://github.com/excalidraw/excalidraw/pull/3631)
833
-
834
- - Auto release @excalidraw/excalidraw-next on every change [#3614](https://github.com/excalidraw/excalidraw/pull/3614)
835
-
836
- - Allow inner-drag-selecting with cmd/ctrl [#3603](https://github.com/excalidraw/excalidraw/pull/3603)
837
-
838
- ### Fixes
839
-
840
- - view mode cursor adjustments [#3809](https://github.com/excalidraw/excalidraw/pull/3809).
841
-
842
- - Pass next release to updatePackageVersion & replace ## unreleased with new version [#3806](https://github.com/excalidraw/excalidraw/pull/3806)
843
-
844
- - Include deleted elements when passing to restore [#3802](https://github.com/excalidraw/excalidraw/pull/3802)
845
-
846
- - Import React before using jsx [#3804](https://github.com/excalidraw/excalidraw/pull/3804)
847
-
848
- - Ensure `s` and `g` shortcuts work on no selection [#3800](https://github.com/excalidraw/excalidraw/pull/3800)
849
-
850
- - Keep binding for attached arrows after changing text [#3754](https://github.com/excalidraw/excalidraw/pull/3754)
851
-
852
- - Deselect elements on viewMode toggle [#3741](https://github.com/excalidraw/excalidraw/pull/3741)
853
-
854
- - Allow pointer events for disable zen mode button [#3743](https://github.com/excalidraw/excalidraw/pull/3743)
855
-
856
- - Use rgba instead of shorthand alpha [#3688](https://github.com/excalidraw/excalidraw/pull/3688)
857
-
858
- - Color pickers not opening on mobile [#3676](https://github.com/excalidraw/excalidraw/pull/3676)
859
-
860
- - On contextMenu, use selected element regardless of z-index [#3668](https://github.com/excalidraw/excalidraw/pull/3668)
861
-
862
- - SelectedGroupIds not being stored in history [#3630](https://github.com/excalidraw/excalidraw/pull/3630)
863
-
864
- - Overscroll on touch devices [#3663](https://github.com/excalidraw/excalidraw/pull/3663)
865
-
866
- - Small UI issues around image export dialog [#3642](https://github.com/excalidraw/excalidraw/pull/3642)
867
-
868
- - Normalize linear element points on restore [#3633](https://github.com/excalidraw/excalidraw/pull/3633)
869
-
870
- - Disable pointer-events on footer-center container [#3629](https://github.com/excalidraw/excalidraw/pull/3629)
871
-
872
- ### Refactor
873
-
874
- - Delete React SyntheticEvent persist [#3700](https://github.com/excalidraw/excalidraw/pull/3700)
875
-
876
- - Code clean up [#3681](https://github.com/excalidraw/excalidraw/pull/3681)
877
-
878
- ### Performance
879
-
880
- - Improve arrow head sizing [#3480](https://github.com/excalidraw/excalidraw/pull/3480)
417
+ ## 0.11.0 (2022-02-17)
881
418
 
882
- ### Build
419
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.11.0)
883
420
 
884
- - Add release script to update relevant files and commit for next release [#3805](https://github.com/excalidraw/excalidraw/pull/3805)
421
+ ## 0.10.0 (2021-10-13)
885
422
 
886
- - Add script to update changelog before a stable release [#3784](https://github.com/excalidraw/excalidraw/pull/3784)
423
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.10.0)
887
424
 
888
- - Add script to update readme before stable release [#3781](https://github.com/excalidraw/excalidraw/pull/3781)
425
+ ## 0.9.0 (2021-07-10)
889
426
 
890
- ---
427
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.9.0)
891
428
 
892
429
  ## 0.8.0 (2021-05-15)
893
430