@dwelle/excalidraw 0.4.0-c4bad84 → 0.4.0-c86851b

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