@dwelle/excalidraw 0.4.0-d411eb2 → 0.4.0-d4bae3f

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 (228) hide show
  1. package/CHANGELOG.md +349 -522
  2. package/README.md +18 -1354
  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-d415b28e9024dee4bb1b.js +2 -0
  8. package/dist/excalidraw-assets-dev/Assistant-Bold.woff2 +0 -0
  9. package/dist/excalidraw-assets-dev/Assistant-Medium.woff2 +0 -0
  10. package/dist/excalidraw-assets-dev/Assistant-Regular.woff2 +0 -0
  11. package/dist/excalidraw-assets-dev/Assistant-SemiBold.woff2 +0 -0
  12. package/dist/excalidraw-assets-dev/{vendor-c0592035c3911af79359.js → vendor-a14cd58fa2db417e42b2.js} +7 -7
  13. package/dist/excalidraw.development.js +3157 -1359
  14. package/dist/excalidraw.production.min.js +1 -1
  15. package/dist/excalidraw.production.min.js.LICENSE.txt +34 -6
  16. package/main.js +1 -8
  17. package/package.json +9 -4
  18. package/types/actions/actionAddToLibrary.d.ts +118 -55
  19. package/types/actions/actionAlign.d.ts +25 -20
  20. package/types/actions/actionBoundText.d.ts +181 -23
  21. package/types/actions/actionCanvas.d.ts +728 -172
  22. package/types/actions/actionClipboard.d.ts +222 -94
  23. package/types/actions/actionDeleteSelected.d.ts +126 -58
  24. package/types/actions/actionDistribute.d.ts +7 -8
  25. package/types/actions/actionDuplicateSelection.d.ts +1 -2
  26. package/types/actions/actionElementLock.d.ts +271 -0
  27. package/types/actions/actionExport.d.ts +379 -189
  28. package/types/actions/actionFinalize.d.ts +77 -39
  29. package/types/actions/actionFlip.d.ts +4 -7
  30. package/types/actions/actionFrame.d.ts +423 -0
  31. package/types/actions/actionGroup.d.ts +6 -7
  32. package/types/actions/actionHistory.d.ts +1 -1
  33. package/types/actions/{actionToggleLock.d.ts → actionLinearEditor.d.ts} +52 -32
  34. package/types/actions/actionMenu.d.ts +123 -61
  35. package/types/actions/actionNavigate.d.ts +2 -1
  36. package/types/actions/actionProperties.d.ts +525 -253
  37. package/types/actions/actionSelectAll.d.ts +0 -1
  38. package/types/actions/actionStyles.d.ts +40 -20
  39. package/types/actions/actionToggleGridMode.d.ts +42 -20
  40. package/types/actions/actionToggleStats.d.ts +41 -20
  41. package/types/actions/actionToggleViewMode.d.ts +42 -20
  42. package/types/actions/actionToggleZenMode.d.ts +42 -20
  43. package/types/actions/actionZindex.d.ts +4 -4
  44. package/types/actions/index.d.ts +2 -1
  45. package/types/actions/manager.d.ts +2 -1
  46. package/types/actions/shortcuts.d.ts +2 -1
  47. package/types/actions/types.d.ts +15 -10
  48. package/types/appState.d.ts +30 -25
  49. package/types/charts.d.ts +2 -2
  50. package/types/clients.d.ts +5 -6
  51. package/types/clipboard.d.ts +8 -3
  52. package/types/colors.d.ts +60 -5
  53. package/types/components/Actions.d.ts +19 -7
  54. package/types/components/ActiveConfirmDialog.d.ts +4 -0
  55. package/types/components/App.d.ts +87 -25
  56. package/types/components/Avatar.d.ts +2 -3
  57. package/types/components/BraveMeasureTextError.d.ts +2 -0
  58. package/types/components/Button.d.ts +16 -0
  59. package/types/components/ButtonIconSelect.d.ts +11 -3
  60. package/types/components/Card.d.ts +0 -1
  61. package/types/components/ColorPicker/ColorInput.d.ts +7 -0
  62. package/types/components/ColorPicker/ColorPicker.d.ts +19 -0
  63. package/types/components/ColorPicker/CustomColorList.d.ts +8 -0
  64. package/types/components/ColorPicker/HotkeyLabel.d.ts +8 -0
  65. package/types/components/ColorPicker/Picker.d.ts +18 -0
  66. package/types/components/ColorPicker/PickerColorList.d.ts +10 -0
  67. package/types/components/ColorPicker/PickerHeading.d.ts +5 -0
  68. package/types/components/ColorPicker/ShadeList.d.ts +8 -0
  69. package/types/components/ColorPicker/TopPicks.d.ts +9 -0
  70. package/types/components/ColorPicker/colorPickerUtils.d.ts +21 -0
  71. package/types/components/ColorPicker/keyboardNavHandlers.d.ts +20 -0
  72. package/types/components/ContextMenu.d.ts +9 -22
  73. package/types/components/DefaultSidebar.d.ts +29 -0
  74. package/types/components/Dialog.d.ts +3 -4
  75. package/types/components/DialogActionButton.d.ts +10 -0
  76. package/types/components/ErrorDialog.d.ts +3 -2
  77. package/types/components/EyeDropper.d.ts +17 -0
  78. package/types/components/FilledButton.d.ts +17 -0
  79. package/types/components/FixedSideContainer.d.ts +1 -1
  80. package/types/components/HandButton.d.ts +10 -0
  81. package/types/components/HelpButton.d.ts +7 -0
  82. package/types/components/HintViewer.d.ts +5 -5
  83. package/types/components/HomeButton.d.ts +5 -0
  84. package/types/components/ImageExportDialog.d.ts +8 -11
  85. package/types/components/InitializeApp.d.ts +2 -0
  86. package/types/components/Island.d.ts +1 -1
  87. package/types/components/JSONExportDialog.d.ts +7 -5
  88. package/types/components/LayerUI.d.ts +9 -14
  89. package/types/components/LibraryMenu.d.ts +15 -8
  90. package/types/components/LibraryMenuBrowseButton.d.ts +7 -0
  91. package/types/components/LibraryMenuControlButtons.d.ts +9 -0
  92. package/types/components/LibraryMenuHeaderContent.d.ts +17 -0
  93. package/types/components/LibraryMenuItems.d.ts +4 -14
  94. package/types/components/LibraryMenuSection.d.ts +22 -0
  95. package/types/components/LibraryUnit.d.ts +7 -5
  96. package/types/components/LoadingMessage.d.ts +2 -1
  97. package/types/components/LockButton.d.ts +1 -2
  98. package/types/components/MobileMenu.d.ts +12 -13
  99. package/types/components/OverwriteConfirm/OverwriteConfirm.d.ts +17 -0
  100. package/types/components/OverwriteConfirm/OverwriteConfirmActions.d.ts +17 -0
  101. package/types/components/OverwriteConfirm/OverwriteConfirmState.d.ts +22 -0
  102. package/types/components/PasteChartDialog.d.ts +4 -5
  103. package/types/components/PenModeButton.d.ts +1 -1
  104. package/types/components/Popover.d.ts +1 -1
  105. package/types/components/ProjectName.d.ts +2 -1
  106. package/types/components/PublishLibrary.d.ts +2 -2
  107. package/types/components/RadioGroup.d.ts +12 -0
  108. package/types/components/Section.d.ts +1 -1
  109. package/types/components/Sidebar/Sidebar.d.ts +76 -0
  110. package/types/components/Sidebar/SidebarHeader.d.ts +7 -0
  111. package/types/components/Sidebar/SidebarTab.d.ts +8 -0
  112. package/types/components/Sidebar/SidebarTabTrigger.d.ts +9 -0
  113. package/types/components/Sidebar/SidebarTabTriggers.d.ts +6 -0
  114. package/types/components/Sidebar/SidebarTabs.d.ts +6 -0
  115. package/types/components/Sidebar/SidebarTrigger.d.ts +6 -0
  116. package/types/components/Sidebar/common.d.ts +33 -0
  117. package/types/components/Spinner.d.ts +2 -1
  118. package/types/components/Stack.d.ts +4 -3
  119. package/types/components/Stats.d.ts +4 -4
  120. package/types/components/Switch.d.ts +9 -0
  121. package/types/components/ToolButton.d.ts +6 -5
  122. package/types/components/Tooltip.d.ts +1 -1
  123. package/types/components/Trans.d.ts +9 -0
  124. package/types/components/UserList.d.ts +0 -3
  125. package/types/components/dropdownMenu/DropdownMenu.d.ts +67 -0
  126. package/types/components/dropdownMenu/DropdownMenuContent.d.ts +15 -0
  127. package/types/components/dropdownMenu/DropdownMenuGroup.d.ts +11 -0
  128. package/types/components/dropdownMenu/DropdownMenuItem.d.ts +12 -0
  129. package/types/components/dropdownMenu/DropdownMenuItemContent.d.ts +6 -0
  130. package/types/components/dropdownMenu/DropdownMenuItemCustom.d.ts +6 -0
  131. package/types/components/dropdownMenu/DropdownMenuItemLink.d.ts +13 -0
  132. package/types/components/dropdownMenu/DropdownMenuSeparator.d.ts +5 -0
  133. package/types/components/dropdownMenu/DropdownMenuTrigger.d.ts +10 -0
  134. package/types/components/dropdownMenu/common.d.ts +6 -0
  135. package/types/components/dropdownMenu/dropdownMenuUtils.d.ts +3 -0
  136. package/types/components/footer/Footer.d.ts +12 -0
  137. package/types/components/footer/FooterCenter.d.ts +8 -0
  138. package/types/components/hoc/withInternalFallback.d.ts +4 -0
  139. package/types/components/icons.d.ts +95 -123
  140. package/types/components/live-collaboration/LiveCollaborationTrigger.d.ts +9 -0
  141. package/types/components/main-menu/DefaultItems.d.ts +47 -0
  142. package/types/components/main-menu/MainMenu.d.ts +61 -0
  143. package/types/components/welcome-screen/WelcomeScreen.Center.d.ts +57 -0
  144. package/types/components/welcome-screen/WelcomeScreen.Hints.d.ts +19 -0
  145. package/types/components/welcome-screen/WelcomeScreen.d.ts +84 -0
  146. package/types/constants.d.ts +98 -23
  147. package/types/context/tunnels.d.ts +19 -0
  148. package/types/context/ui-appState.d.ts +4 -0
  149. package/types/data/blob.d.ts +4 -3
  150. package/types/data/encode.d.ts +1 -1
  151. package/types/data/filesystem.d.ts +2 -1
  152. package/types/data/index.d.ts +1 -1
  153. package/types/data/library.d.ts +3 -45
  154. package/types/data/restore.d.ts +10 -4
  155. package/types/data/types.d.ts +14 -1
  156. package/types/data/url.d.ts +7 -0
  157. package/types/element/Hyperlink.d.ts +52 -29
  158. package/types/element/binding.d.ts +3 -3
  159. package/types/element/bounds.d.ts +34 -8
  160. package/types/element/collision.d.ts +7 -7
  161. package/types/element/dragElements.d.ts +2 -1
  162. package/types/element/embeddable.d.ts +153 -0
  163. package/types/element/image.d.ts +11 -1
  164. package/types/element/index.d.ts +4 -3
  165. package/types/element/linearElementEditor.d.ts +90 -31
  166. package/types/element/mutateElement.d.ts +2 -1
  167. package/types/element/newElement.d.ts +52 -10
  168. package/types/element/resizeElements.d.ts +1 -1
  169. package/types/element/showSelectedShapeActions.d.ts +2 -2
  170. package/types/element/sortElements.d.ts +2 -0
  171. package/types/element/textElement.d.ts +62 -8
  172. package/types/element/textWysiwyg.d.ts +6 -1
  173. package/types/element/transformHandles.d.ts +16 -10
  174. package/types/element/typeChecks.d.ts +14 -2
  175. package/types/element/types.d.ts +67 -35
  176. package/types/emitter.d.ts +1 -1
  177. package/types/errors.d.ts +1 -1
  178. package/types/frame.d.ts +40 -0
  179. package/types/ga.d.ts +5 -5
  180. package/types/groups.d.ts +7 -3
  181. package/types/history.d.ts +3 -3
  182. package/types/hooks/useCreatePortalContainer.d.ts +4 -0
  183. package/types/hooks/useLibraryItemSvg.d.ts +11 -0
  184. package/types/hooks/useOutsideClick.d.ts +19 -0
  185. package/types/hooks/useScrollPosition.d.ts +1 -0
  186. package/types/hooks/useTransition.d.ts +2 -0
  187. package/types/i18n.d.ts +11 -2
  188. package/types/jotai.d.ts +20 -108
  189. package/types/keys.d.ts +19 -7
  190. package/types/math.d.ts +11 -1
  191. package/types/packages/excalidraw/example/App.d.ts +9 -2
  192. package/types/packages/excalidraw/example/CustomFooter.d.ts +5 -0
  193. package/types/packages/excalidraw/example/MobileFooter.d.ts +5 -0
  194. package/types/packages/excalidraw/example/initialData.d.ts +6 -0
  195. package/types/packages/excalidraw/example/sidebar/{Sidebar.d.ts → ExampleSidebar.d.ts} +1 -1
  196. package/types/packages/excalidraw/index.d.ts +19 -3
  197. package/types/packages/excalidraw/main.d.ts +3 -1
  198. package/types/packages/excalidraw/webpack.dev.config.d.ts +5 -2
  199. package/types/packages/excalidraw/webpack.prod.config.d.ts +3 -0
  200. package/types/packages/utils.d.ts +28 -22
  201. package/types/renderer/renderElement.d.ts +9 -6
  202. package/types/renderer/renderScene.d.ts +15 -7
  203. package/types/renderer/roundRect.d.ts +1 -1
  204. package/types/scene/Fonts.d.ts +21 -0
  205. package/types/scene/Scene.d.ts +40 -5
  206. package/types/scene/comparisons.d.ts +2 -3
  207. package/types/scene/export.d.ts +158 -10
  208. package/types/scene/index.d.ts +1 -1
  209. package/types/scene/selection.d.ts +25 -5
  210. package/types/scene/types.d.ts +14 -5
  211. package/types/shapes.d.ts +27 -3
  212. package/types/types.d.ts +156 -79
  213. package/types/utility-types.d.ts +24 -0
  214. package/types/utils.d.ts +67 -9
  215. package/types/zindex.d.ts +4 -4
  216. package/dist/excalidraw-assets/vendor-52b1f3361986b6c6a4fe.js +0 -2
  217. package/types/components/ActiveFile.d.ts +0 -7
  218. package/types/components/BackgroundPickerAndDarkModeToggle.d.ts +0 -9
  219. package/types/components/ClearCanvas.d.ts +0 -4
  220. package/types/components/CollabButton.d.ts +0 -7
  221. package/types/components/ColorPicker.d.ts +0 -14
  222. package/types/components/HelpIcon.d.ts +0 -8
  223. package/types/components/LibraryButton.d.ts +0 -7
  224. package/types/components/SidebarLockButton.d.ts +0 -8
  225. package/types/components/SingleLibraryItem.d.ts +0 -10
  226. /package/dist/excalidraw-assets/{vendor-52b1f3361986b6c6a4fe.js.LICENSE.txt → vendor-d415b28e9024dee4bb1b.js.LICENSE.txt} +0 -0
  227. /package/types/packages/excalidraw/dist/excalidraw-assets/{vendor-52b1f3361986b6c6a4fe.d.ts → vendor-d415b28e9024dee4bb1b.d.ts} +0 -0
  228. /package/types/packages/excalidraw/dist/excalidraw-assets-dev/{vendor-c0592035c3911af79359.d.ts → vendor-a14cd58fa2db417e42b2.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -13,99 +13,98 @@ Please add the latest change on the top under the correct section.
13
13
 
14
14
  ## Unreleased
15
15
 
16
- ### Excalidraw API
16
+ ### renderEmbeddable
17
17
 
18
- #### Breaking Changes
18
+ ```tsx
19
+ (element: NonDeletedExcalidrawElement, radius: number, appState: UIAppState) => JSX.Element | null;`
20
+ ```
19
21
 
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`.
22
+ The renderEmbeddable function allows you to customize the rendering of a JSX component instead of using the default `<iframe>`. By setting props.renderEmbeddable, you can provide a custom implementation for rendering the element.
21
23
 
22
- ## 0.12.0 (2022-07-07)
24
+ #### Parameters:
23
25
 
24
- ### Excalidraw API
26
+ - element (NonDeletedExcalidrawElement): The element to be rendered.
27
+ - radius (number): The calculated border radius in pixels.
28
+ - appState (UIAppState): The current state of the UI.
25
29
 
26
- #### Features
30
+ #### Return value:
27
31
 
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).
32
+ JSX.Element | null: The JSX component representing the custom rendering, or null if the default `<iframe>` should be rendered.
29
33
 
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)
34
+ ### Features
31
35
 
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).
36
+ - Added [`props.validateEmbeddable`](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/props#validateEmbeddable) to customize embeddable src url validation. [#6691](https://github.com/excalidraw/excalidraw/pull/6691)
37
+ - Add support for `opts.fitToViewport` and `opts.viewportZoomFactor` in the [`ExcalidrawAPI.scrollToContent`](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/props/ref#scrolltocontent) API. [#6581](https://github.com/excalidraw/excalidraw/pull/6581).
38
+ - Properly sanitize element `link` urls. [#6728](https://github.com/excalidraw/excalidraw/pull/6728).
39
+ - Sidebar component now supports tabs — for more detailed description of new behavior and breaking changes, see the linked PR. [#6213](https://github.com/excalidraw/excalidraw/pull/6213)
40
+ - Exposed `DefaultSidebar` component to allow modifying the default sidebar, such as adding custom tabs to it. [#6213](https://github.com/excalidraw/excalidraw/pull/6213)
33
41
 
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).
42
+ #### BREAKING CHANGES
35
43
 
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).
44
+ - `props.renderSidebar` is removed in favor of rendering as `children`.
45
+ - `appState.isSidebarDocked` replaced with `appState.defaultSidebarDockedPreference` with slightly different semantics, and relating only to the default sidebar. You need to handle `docked` state for your custom sidebars yourself.
46
+ - Sidebar `props.dockable` is removed. To indicate dockability, supply `props.onDock()` alongside setting `props.docked`.
47
+ - `Sidebar.Header` is no longer rendered by default. You need to render it yourself.
48
+ - `props.onClose` replaced with `props.onStateChange`.
49
+ - `restore()`/`restoreAppState()` now retains `appState.openSidebar` regardless of docked state.
37
50
 
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.
51
+ ## 0.15.2 (2023-04-20)
39
52
 
40
- ##### BREAKING CHANGE
53
+ ### Docs
41
54
 
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).
55
+ - Fix docs link in readme [#6486](https://github.com/excalidraw/excalidraw/pull/6486)
43
56
 
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).
57
+ ## Excalidraw Library
45
58
 
46
- ##### BREAKING CHANGE
59
+ **_This section lists the updates made to the excalidraw library and will not affect the integration._**
47
60
 
48
- - `updateScene` API no longer supports passing `libraryItems`. Instead, use the `updateLibrary` API.
61
+ ### Fixes
49
62
 
50
- - Add support for integrating custom elements [#5164](https://github.com/excalidraw/excalidraw/pull/5164).
63
+ - Rotate the text element when binding to a rotated container [#6477](https://github.com/excalidraw/excalidraw/pull/6477)
51
64
 
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.
65
+ - Support breaking words containing hyphen - [#6014](https://github.com/excalidraw/excalidraw/pull/6014)
55
66
 
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).
67
+ - Incorrect background fill button active state [#6491](https://github.com/excalidraw/excalidraw/pull/6491)
65
68
 
66
- #### Fixes
69
+ ---
67
70
 
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).
71
+ ## 0.15.1 (2023-04-18)
69
72
 
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).
73
+ ### Docs
71
74
 
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).
75
+ - Add the readme back to the package which was mistakenly removed [#6484](https://github.com/excalidraw/excalidraw/pull/6484)
74
76
 
75
- #### Refactor
77
+ ## Excalidraw Library
76
78
 
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.
79
+ **_This section lists the updates made to the excalidraw library and will not affect the integration._**
79
80
 
80
- ##### BREAKING CHANGE
81
+ ---
81
82
 
82
- You will need to pass `activeTool.locked` instead of `elementType` from now onwards in `appState`.
83
+ ## 0.15.0 (2023-04-18)
83
84
 
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).
85
+ ### Features
85
86
 
86
- ##### BREAKING CHANGE
87
+ - [`ExcalidrawAPI.scrollToContent`](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/props/ref#scrolltocontent) has new opts object allowing you to fit viewport to content, and animate the scrolling. [#6319](https://github.com/excalidraw/excalidraw/pull/6319)
87
88
 
88
- You will need to pass `activeTool` instead of `elementType` from now onwards in `appState`
89
+ - Expose `useI18n()` hook return an object containing `t()` i18n helper and current `langCode`. You can use this in components you render as `<Excalidraw>` children to render any of our i18n locale strings. [#6224](https://github.com/excalidraw/excalidraw/pull/6224)
89
90
 
90
- ### Build
91
+ - [`restoreElements`](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/utils/restore#restoreelements) API now takes an optional parameter `opts` which currently supports the below attributes
91
92
 
92
- - Use only named exports [#5045](https://github.com/excalidraw/excalidraw/pull/5045).
93
+ ```js
94
+ { refreshDimensions?: boolean, repairBindings?: boolean }
95
+ ```
93
96
 
94
- #### BREAKING CHANGE
97
+ The same `opts` param has been added to [`restore`](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/utils/restore#restore) API as well.
95
98
 
96
- You will need to import the named export from now onwards to use the component
99
+ For more details refer to the [docs](https://docs.excalidraw.com)
97
100
 
98
- Using bundler :point_down:
101
+ #### BREAKING CHANGE
99
102
 
100
- ```js
101
- import { Excalidraw } from "@excalidraw/excalidraw";
102
- ```
103
+ - The optional parameter `refreshDimensions` in [`restoreElements`](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api/utils/restore#restoreelements) has been removed and can be enabled via `opts`
103
104
 
104
- In Browser :point_down:
105
+ ### Fixes
105
106
 
106
- ```js
107
- React.createElement(ExcalidrawLib.Excalidraw, opts);
108
- ```
107
+ - Exporting labelled arrows via export utils [#6443](https://github.com/excalidraw/excalidraw/pull/6443)
109
108
 
110
109
  ## Excalidraw Library
111
110
 
@@ -113,315 +112,158 @@ React.createElement(ExcalidrawLib.Excalidraw, opts);
113
112
 
114
113
  ### Features
115
114
 
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)
119
-
120
- - Collab component state handling rewrite & fixes [#5046](https://github.com/excalidraw/excalidraw/pull/5046)
121
-
122
- - Support debugging PWA in dev [#4853](https://github.com/excalidraw/excalidraw/pull/4853)
123
-
124
- - Redirect vscode.excalidraw.com to vscode marketplace [#5285](https://github.com/excalidraw/excalidraw/pull/5285)
125
-
126
- - Go-to-excalidrawplus button [#5202](https://github.com/excalidraw/excalidraw/pull/5202)
127
-
128
- - Autoredirect to Excalidraw+ if special cookie is present [#5183](https://github.com/excalidraw/excalidraw/pull/5183)
129
-
130
- - Support resubmitting published library items [#5174](https://github.com/excalidraw/excalidraw/pull/5174)
131
-
132
- - Support adding multiple library items on canvas [#5116](https://github.com/excalidraw/excalidraw/pull/5116)
133
-
134
- - Support customType in activeTool [#5144](https://github.com/excalidraw/excalidraw/pull/5144)
135
-
136
- - Stop event propagation when key handled [#5091](https://github.com/excalidraw/excalidraw/pull/5091)
137
-
138
- - Rewrite library state management & related refactor [#5067](https://github.com/excalidraw/excalidraw/pull/5067)
139
-
140
- - Delay initial loading message & tweak design [#5049](https://github.com/excalidraw/excalidraw/pull/5049)
141
-
142
- - Reconcile when saving to firebase [#4991](https://github.com/excalidraw/excalidraw/pull/4991)
143
-
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)
115
+ - Constrain export dialog preview size [#6475](https://github.com/excalidraw/excalidraw/pull/6475)
153
116
 
154
- - Hide penMode button on reload if not enabled [#4992](https://github.com/excalidraw/excalidraw/pull/4992)
117
+ - Zigzag fill easter egg [#6439](https://github.com/excalidraw/excalidraw/pull/6439)
155
118
 
156
- - Eraser toggle to switch back to the previous tool [#4981](https://github.com/excalidraw/excalidraw/pull/4981)
119
+ - Add container to multiple text elements [#6428](https://github.com/excalidraw/excalidraw/pull/6428)
157
120
 
158
- - Save penDetected and penMode, and detect pen already on ToolButton click [#4955](https://github.com/excalidraw/excalidraw/pull/4955)
121
+ - Starting migration from GA to Matomo for better privacy [#6398](https://github.com/excalidraw/excalidraw/pull/6398)
159
122
 
160
- - Support binding text to container via context menu [#4935](https://github.com/excalidraw/excalidraw/pull/4935)
123
+ - Add line height attribute to text element [#6360](https://github.com/excalidraw/excalidraw/pull/6360)
161
124
 
162
- - Map shortcut O to ellipse and Add eraser shortcut E [#4930](https://github.com/excalidraw/excalidraw/pull/4930)
125
+ - Add thai lang support [#6314](https://github.com/excalidraw/excalidraw/pull/6314)
163
126
 
164
- - Update eraser cursor [#4922](https://github.com/excalidraw/excalidraw/pull/4922)
127
+ - Create bound container from text [#6301](https://github.com/excalidraw/excalidraw/pull/6301)
165
128
 
166
- - Add Eraser 🎉 [#4887](https://github.com/excalidraw/excalidraw/pull/4887)
129
+ - Improve text measurements in bound containers [#6187](https://github.com/excalidraw/excalidraw/pull/6187)
167
130
 
168
- - Added optional REACT_APP_WS_SERVER_URL for forks usecases [#4889](https://github.com/excalidraw/excalidraw/pull/4889)
131
+ - Bind text to container if double clicked on filled shape or stroke [#6250](https://github.com/excalidraw/excalidraw/pull/6250)
169
132
 
170
- - Rewrite collab server connecting [#4881](https://github.com/excalidraw/excalidraw/pull/4881)
133
+ - Make repair and refreshDimensions configurable in restoreElements [#6238](https://github.com/excalidraw/excalidraw/pull/6238)
171
134
 
172
- - Support vertical text align for bound containers [#4852](https://github.com/excalidraw/excalidraw/pull/4852)
135
+ - Show error message when not connected to internet while collabo… [#6165](https://github.com/excalidraw/excalidraw/pull/6165)
173
136
 
174
- - Support custom colors 🎉 [#4843](https://github.com/excalidraw/excalidraw/pull/4843)
137
+ - Shortcut for clearCanvas confirmDialog [#6114](https://github.com/excalidraw/excalidraw/pull/6114)
175
138
 
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)
139
+ - Disable canvas smoothing (antialiasing) for right-angled elements [#6186](https://github.com/excalidraw/excalidraw/pull/6186)Co-authored-by: Ignacio Cuadra <67276174+ignacio-cuadra@users.noreply.github.com>
179
140
 
180
141
  ### Fixes
181
142
 
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)
217
-
218
- - Wheel zoom normalization [#5165](https://github.com/excalidraw/excalidraw/pull/5165)
219
-
220
- - Hide sidebar when `custom` tool active [#5179](https://github.com/excalidraw/excalidraw/pull/5179)
221
-
222
- - Don't save deleted ExcalidrawElements to Firebase [#5108](https://github.com/excalidraw/excalidraw/pull/5108)
223
-
224
- - Eraser removed deleted elements [#5155](https://github.com/excalidraw/excalidraw/pull/5155)
225
-
226
- - Handle `ColorPicker` parentSelector being undefined [#5152](https://github.com/excalidraw/excalidraw/pull/5152)
143
+ - Center align text when wrapped in container via context menu [#6480](https://github.com/excalidraw/excalidraw/pull/6480)
227
144
 
228
- - Library multiselect not accounting for published state [#5132](https://github.com/excalidraw/excalidraw/pull/5132)
145
+ - Restore original container height when unbinding text which was binded via context menu [#6444](https://github.com/excalidraw/excalidraw/pull/6444)
229
146
 
230
- - Chart display fix [#5154](https://github.com/excalidraw/excalidraw/pull/5154)
147
+ - Mark more props as optional for element [#6448](https://github.com/excalidraw/excalidraw/pull/6448)
231
148
 
232
- - Update opacity of bound text when opacity of container updated [#5142](https://github.com/excalidraw/excalidraw/pull/5142)
149
+ - Improperly cache-busting on canvas scale instead of zoom [#6473](https://github.com/excalidraw/excalidraw/pull/6473)
233
150
 
234
- - Jumping of text when typing single line in bound text [#5139](https://github.com/excalidraw/excalidraw/pull/5139)
151
+ - Incorrectly duplicating items on paste/library insert [#6467](https://github.com/excalidraw/excalidraw/pull/6467)
235
152
 
236
- - Remove opacity scroll wheel interaction [#5111](https://github.com/excalidraw/excalidraw/pull/5111)
153
+ - Library ids cross-contamination on multiple insert [#6466](https://github.com/excalidraw/excalidraw/pull/6466)
237
154
 
238
- - Propagate keydown events from excalidraw-wysiwyg inputs [#5099](https://github.com/excalidraw/excalidraw/pull/5099)
155
+ - Color picker keyboard handling not working [#6464](https://github.com/excalidraw/excalidraw/pull/6464)
239
156
 
240
- - Don't bind text to container if double clicked else instead of center [#5105](https://github.com/excalidraw/excalidraw/pull/5105)
157
+ - Abort freedraw line if second touch is detected [#6440](https://github.com/excalidraw/excalidraw/pull/6440)
241
158
 
242
- - ToolIcon height not using rem [#5092](https://github.com/excalidraw/excalidraw/pull/5092)
159
+ - Utils leaking Scene state [#6461](https://github.com/excalidraw/excalidraw/pull/6461)
243
160
 
244
- - Excalidraw named export type [#5078](https://github.com/excalidraw/excalidraw/pull/5078)
161
+ - Split "Edit selected shape" shortcut [#6457](https://github.com/excalidraw/excalidraw/pull/6457)
245
162
 
246
- - BoundElementIds when arrows bound to elements are deleted [#5077](https://github.com/excalidraw/excalidraw/pull/5077)
163
+ - Center align text when bind to container via context menu [#6451](https://github.com/excalidraw/excalidraw/pull/6451)
247
164
 
248
- - Don't merge libraryItems on updateScene [#5076](https://github.com/excalidraw/excalidraw/pull/5076)
165
+ - Update coords when text unbinded from its container [#6445](https://github.com/excalidraw/excalidraw/pull/6445)
249
166
 
250
- - SVG metadata extraction regex on multiline elements [#5074](https://github.com/excalidraw/excalidraw/pull/5074)
167
+ - Autoredirect to plus in prod only [#6446](https://github.com/excalidraw/excalidraw/pull/6446)
251
168
 
252
- - Eraser cursor showing on theme change when not using eraser [#4990](https://github.com/excalidraw/excalidraw/pull/4990)
169
+ - Fixing popover overflow on small screen [#6433](https://github.com/excalidraw/excalidraw/pull/6433)
253
170
 
254
- - Update `storage.rules` [#5020](https://github.com/excalidraw/excalidraw/pull/5020)
171
+ - Introduce baseline to fix the layout shift when switching to text editor [#6397](https://github.com/excalidraw/excalidraw/pull/6397)
255
172
 
256
- - Add image button not working on iPad [#5038](https://github.com/excalidraw/excalidraw/pull/5038)
173
+ - Don't refresh dimensions for deleted text elements [#6438](https://github.com/excalidraw/excalidraw/pull/6438)
257
174
 
258
- - Ensure svg image dimensions are always set [#5044](https://github.com/excalidraw/excalidraw/pull/5044)
175
+ - Element vanishes when zoomed in [#6417](https://github.com/excalidraw/excalidraw/pull/6417)
259
176
 
260
- - Pinch zoom in view mode [#5001](https://github.com/excalidraw/excalidraw/pull/5001)
177
+ - Don't jump text to end when out of viewport in safari [#6416](https://github.com/excalidraw/excalidraw/pull/6416)
261
178
 
262
- - Select whole group on righclick & few lock-related fixes [#5022](https://github.com/excalidraw/excalidraw/pull/5022)
179
+ - GetDefaultLineHeight should return default font family line height for unknown font [#6399](https://github.com/excalidraw/excalidraw/pull/6399)
263
180
 
264
- - Export serializeLibraryAsJSON from the package [#5017](https://github.com/excalidraw/excalidraw/pull/5017)
181
+ - Revert use `ideographic` textBaseline to improve layout shift when editing text" [#6400](https://github.com/excalidraw/excalidraw/pull/6400)
265
182
 
266
- - Support copying PNG to clipboard on Safari [#3746](https://github.com/excalidraw/excalidraw/pull/3746)
183
+ - Call stack size exceeded when paste large text [#6373](https://github.com/excalidraw/excalidraw/pull/6373) (#6396)
267
184
 
268
- - More copyText fixes [#5016](https://github.com/excalidraw/excalidraw/pull/5016)
185
+ - Use `ideographic` textBaseline to improve layout shift when editing text [#6384](https://github.com/excalidraw/excalidraw/pull/6384)
269
186
 
270
- - Copy to clipboard all text nodes as text [#5014](https://github.com/excalidraw/excalidraw/pull/5014)
187
+ - Chrome crashing when embedding scene on chrome arm [#6383](https://github.com/excalidraw/excalidraw/pull/6383)
271
188
 
272
- - Update cursorButton once freedraw is released [#4996](https://github.com/excalidraw/excalidraw/pull/4996)
189
+ - Division by zero in findFocusPointForEllipse leads to infinite loop in wrapText freezing Excalidraw [#6377](https://github.com/excalidraw/excalidraw/pull/6377)
273
190
 
274
- - Decouple actionFinalize and actionErase [#4984](https://github.com/excalidraw/excalidraw/pull/4984)
191
+ - Containerizing text incorrectly updates arrow bindings [#6369](https://github.com/excalidraw/excalidraw/pull/6369)
275
192
 
276
- - Using stale state when switching tools [#4989](https://github.com/excalidraw/excalidraw/pull/4989)
193
+ - Ensure export preview is centered [#6337](https://github.com/excalidraw/excalidraw/pull/6337)
277
194
 
278
- - UpdateWysiwygStyle updatedElement is undefined TypeError [#4980](https://github.com/excalidraw/excalidraw/pull/4980)
195
+ - Hide text align for labelled arrows [#6339](https://github.com/excalidraw/excalidraw/pull/6339)
279
196
 
280
- - Adding check for link length to prevent early return [#4982](https://github.com/excalidraw/excalidraw/pull/4982)
197
+ - Refresh dimensions when elements loaded from shareable link and blob [#6333](https://github.com/excalidraw/excalidraw/pull/6333)
281
198
 
282
- - Show link icon for bound text containers [#4960](https://github.com/excalidraw/excalidraw/pull/4960)
199
+ - Show error message when measureText API breaks in brave [#6336](https://github.com/excalidraw/excalidraw/pull/6336)
283
200
 
284
- - Cancel erase elements on pointer up if eraser is not active on pointer up [#4956](https://github.com/excalidraw/excalidraw/pull/4956)
201
+ - Add an offset of 0.5px for text editor in containers [#6328](https://github.com/excalidraw/excalidraw/pull/6328)
285
202
 
286
- - Restore original opacities when alt pressed while erasing [#4954](https://github.com/excalidraw/excalidraw/pull/4954)
203
+ - Move utility types out of `.d.ts` file to fix exported declaration files [#6315](https://github.com/excalidraw/excalidraw/pull/6315)
287
204
 
288
- - Don't bind text to container if already present [#4946](https://github.com/excalidraw/excalidraw/pull/4946)
205
+ - More jotai scopes missing [#6313](https://github.com/excalidraw/excalidraw/pull/6313)
289
206
 
290
- - Erase all elements which are hit with single point click [#4934](https://github.com/excalidraw/excalidraw/pull/4934)
207
+ - Provide HelpButton title prop [#6209](https://github.com/excalidraw/excalidraw/pull/6209)
291
208
 
292
- - Add multiElement-edit finalize action to Desktop (currently only visible in Mobile view) [#4764](https://github.com/excalidraw/excalidraw/pull/4764)
209
+ - Respect text align when wrapping in a container [#6310](https://github.com/excalidraw/excalidraw/pull/6310)
293
210
 
294
- - Hide eraser in view mode in desktop [#4929](https://github.com/excalidraw/excalidraw/pull/4929)
211
+ - Compute bounding box correctly for text element when multiple element resizing [#6307](https://github.com/excalidraw/excalidraw/pull/6307)
295
212
 
296
- - Undo when erasing elements by clicking [#4921](https://github.com/excalidraw/excalidraw/pull/4921)
213
+ - Use jotai scope for editor-specific atoms [#6308](https://github.com/excalidraw/excalidraw/pull/6308)
297
214
 
298
- - Undo when erasing [#4900](https://github.com/excalidraw/excalidraw/pull/4900)
215
+ - Consider arrow for bound text element [#6297](https://github.com/excalidraw/excalidraw/pull/6297)
299
216
 
300
- - Incorrectly erasing on mobile [#4899](https://github.com/excalidraw/excalidraw/pull/4899)
217
+ - Text never goes beyond max width for unbound text elements [#6288](https://github.com/excalidraw/excalidraw/pull/6288)
301
218
 
302
- - Don't crash on drop highlighted text onto canvas [#4890](https://github.com/excalidraw/excalidraw/pull/4890)
219
+ - Svg text baseline [#6285](https://github.com/excalidraw/excalidraw/pull/6273)
303
220
 
304
- - Paste styles shortcut [#4886](https://github.com/excalidraw/excalidraw/pull/4886)
221
+ - Compute container height from bound text correctly [#6273](https://github.com/excalidraw/excalidraw/pull/6273)
305
222
 
306
- - Freedraw element's background fill color missing from SVG when exporting with package API exportToSvg() [#4871](https://github.com/excalidraw/excalidraw/pull/4871)
223
+ - Fit mobile toolbar and make scrollable [#6270](https://github.com/excalidraw/excalidraw/pull/6270)
307
224
 
308
- - Improve pointer syncing performance [#4883](https://github.com/excalidraw/excalidraw/pull/4883)
225
+ - Indenting via `tab` clashing with IME compositor [#6258](https://github.com/excalidraw/excalidraw/pull/6258)
309
226
 
310
- - Collab room initialization [#4882](https://github.com/excalidraw/excalidraw/pull/4882)
227
+ - Improve text wrapping inside rhombus and more fixes [#6265](https://github.com/excalidraw/excalidraw/pull/6265)
311
228
 
312
- - Ensure verticalAlign properties not shown when no element selected [#4860](https://github.com/excalidraw/excalidraw/pull/4860)
229
+ - Improve text wrapping in ellipse and alignment [#6172](https://github.com/excalidraw/excalidraw/pull/6172)
313
230
 
314
- - Binding text to non-bindable containers and not always preferring selection [#4655](https://github.com/excalidraw/excalidraw/pull/4655)
231
+ - Don't allow blank space in collab name [#6211](https://github.com/excalidraw/excalidraw/pull/6211)
315
232
 
316
- - Don't show align icons for single bound container element [#4846](https://github.com/excalidraw/excalidraw/pull/4846)
233
+ - Docker build architecture:linux/amd64 error occur on linux/arm64 instance [#6197](https://github.com/excalidraw/excalidraw/pull/6197)
317
234
 
318
- - Redraw text bounding box when pasting styles [#4845](https://github.com/excalidraw/excalidraw/pull/4845)
235
+ - Sort bound text elements to fix text duplication z-index error [#5130](https://github.com/excalidraw/excalidraw/pull/5130)
319
236
 
320
- - Restore cursor position after bound text container value updated [#4836](https://github.com/excalidraw/excalidraw/pull/4836)
237
+ - Hide welcome screen on mobile once user interacts [#6185](https://github.com/excalidraw/excalidraw/pull/6185)
321
238
 
322
- - Support resizing multiple bound text containers [#4824](https://github.com/excalidraw/excalidraw/pull/4824)
323
-
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)
239
+ - Edit link in docs [#6182](https://github.com/excalidraw/excalidraw/pull/6182)
327
240
 
328
241
  ### Refactor
329
242
 
330
- - Don't pass array to handleBindTextResize [#4826](https://github.com/excalidraw/excalidraw/pull/4826)
331
-
332
- ### Build
333
-
334
- - Extract all i18n files into locales folder [#5419](https://github.com/excalidraw/excalidraw/pull/5419)
243
+ - Inline `SingleLibraryItem` into `PublishLibrary` [#6462](https://github.com/excalidraw/excalidraw/pull/6462)
335
244
 
336
- - Automate release step fully [#5414](https://github.com/excalidraw/excalidraw/pull/5414)
245
+ - Make the example React app reusable without duplication [#6188](https://github.com/excalidraw/excalidraw/pull/6188)
337
246
 
338
- - Use next and preview tags instead of separate packages for next and preview release [#5346](https://github.com/excalidraw/excalidraw/pull/5346)
247
+ ### Performance
339
248
 
340
- - Support runtime React Jsx in @excalidraw/utils [#4866](https://github.com/excalidraw/excalidraw/pull/4866)
249
+ - Break early if the line width <= max width of the container [#6347](https://github.com/excalidraw/excalidraw/pull/6347)
341
250
 
342
- - Release @excalidraw/utils 0.1.1 [#4862](https://github.com/excalidraw/excalidraw/pull/4862)
251
+ ### Build
343
252
 
344
- - Remove build packages workflow [#4835](https://github.com/excalidraw/excalidraw/pull/4835)
253
+ - Move TS and types to devDependencies [#6346](https://github.com/excalidraw/excalidraw/pull/6346)
345
254
 
346
255
  ---
347
256
 
348
- ## 0.11.0 (2022-02-17)
349
-
350
- ## Excalidraw API
257
+ ## 0.14.2 (2023-02-01)
351
258
 
352
259
  ### Features
353
260
 
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):
366
-
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.
261
+ - Welcome screen no longer renders by default, and you need to render it yourself. `UIOptions.welcomeScreen` option is now deprecated. [#6117](https://github.com/excalidraw/excalidraw/pull/6117)
262
+ - `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)
401
263
 
402
264
  ### Fixes
403
265
 
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).
417
-
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)
419
-
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).
421
-
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).
423
-
424
- ---
266
+ - declare css variable for font in excalidraw so its available in host [#6160](https://github.com/excalidraw/excalidraw/pull/6160)
425
267
 
426
268
  ## Excalidraw Library
427
269
 
@@ -429,459 +271,444 @@ React.createElement(ExcalidrawLib.Excalidraw, opts);
429
271
 
430
272
  ### Features
431
273
 
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)
274
+ - Add hand/panning tool [#6141](https://github.com/excalidraw/excalidraw/pull/6141)
435
275
 
436
- - Keep selected tool on canvas reset [#4728](https://github.com/excalidraw/excalidraw/pull/4728)
276
+ - Show copy-as-png export button on firefox and show steps how to enable it [#6125](https://github.com/excalidraw/excalidraw/pull/6125)
437
277
 
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)
278
+ ### Fixes
453
279
 
454
- - Support decreasing/increasing `fontSize` via keyboard [#4553](https://github.com/excalidraw/excalidraw/pull/4553)
280
+ - Horizontal padding when aligning bound text containers [#6180](https://github.com/excalidraw/excalidraw/pull/6180)
455
281
 
456
- - Link to new LP for excalidraw plus [#4549](https://github.com/excalidraw/excalidraw/pull/4549)
282
+ - Make tunnels work in multi-instance scenarios [#6178](https://github.com/excalidraw/excalidraw/pull/6178)
457
283
 
458
- - Update stroke color of bounded text along with container [#4541](https://github.com/excalidraw/excalidraw/pull/4541)
284
+ - Add 1px width to the container to calculate more accurately [#6174](https://github.com/excalidraw/excalidraw/pull/6174)
459
285
 
460
- - Hints and shortcuts help around deep selection [#4502](https://github.com/excalidraw/excalidraw/pull/4502)
286
+ - Quick typo fix [#6167](https://github.com/excalidraw/excalidraw/pull/6167)
461
287
 
462
- - Support updating text properties by clicking on container [#4499](https://github.com/excalidraw/excalidraw/pull/4499)
288
+ - Set the width correctly using measureText in editor [#6162](https://github.com/excalidraw/excalidraw/pull/6162)
463
289
 
464
- - Bind text to shapes when pressing enter and support sticky notes 🎉 [#4343](https://github.com/excalidraw/excalidraw/pull/4343)
290
+ - :bug: broken emojis when wrap text [#6153](https://github.com/excalidraw/excalidraw/pull/6153)
465
291
 
466
- - Change `boundElementIds` `boundElements` [#4404](https://github.com/excalidraw/excalidraw/pull/4404)
292
+ - Button background and svg sizes [#6155](https://github.com/excalidraw/excalidraw/pull/6155)
467
293
 
468
- - Support selecting multiple points when editing line [#4373](https://github.com/excalidraw/excalidraw/pull/4373)
294
+ ### Styles
469
295
 
470
- - Horizontally center toolbar menu [commit link](https://github.com/excalidraw/excalidraw/commit/9b8ee3cacfec239617c357693cf2a3ca9972d2cb)
296
+ - Change in ExportButton style [#6147](https://github.com/excalidraw/excalidraw/pull/6147) (#6148)
471
297
 
472
- - Add support for rounded corners in diamond [#4369](https://github.com/excalidraw/excalidraw/pull/4369)
298
+ ### Build
473
299
 
474
- - Allow zooming up to 3000% [#4358](https://github.com/excalidraw/excalidraw/pull/4358)
300
+ - Temporarily disable pre-commit [#6132](https://github.com/excalidraw/excalidraw/pull/6132)
475
301
 
476
- - Stop discarding precision when rendering [#4357](https://github.com/excalidraw/excalidraw/pull/4357)
302
+ ---
477
303
 
478
- - Support Image binding [#4347](https://github.com/excalidraw/excalidraw/pull/4347)
304
+ ## 0.14.1 (2023-01-16)
479
305
 
480
- - Add `element.updated` [#4070](https://github.com/excalidraw/excalidraw/pull/4070)
306
+ ### Fixes
481
307
 
482
- - Compress shareLink data when uploading to json server [#4225](https://github.com/excalidraw/excalidraw/pull/4225)
308
+ - 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.
483
309
 
484
- - Supply `version` param when installing libraries [#4305](https://github.com/excalidraw/excalidraw/pull/4305)
310
+ ## 0.14.0 (2023-01-13)
485
311
 
486
- - Log FS abortError to console [#4279](https://github.com/excalidraw/excalidraw/pull/4279)
312
+ ### Features
487
313
 
488
- - Add validation for website and remove validation for library item name [#4269](https://github.com/excalidraw/excalidraw/pull/4269)
314
+ - 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).
489
315
 
490
- - Allow publishing libraries from UI [#4115](https://github.com/excalidraw/excalidraw/pull/4115)
316
+ - 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)
491
317
 
492
- - Create confirm dialog to use instead of window.confirm [#4256](https://github.com/excalidraw/excalidraw/pull/4256)
318
+ - 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).
493
319
 
494
- - Allow letters in IDs for storing files in backend [#4224](https://github.com/excalidraw/excalidraw/pull/4224)
320
+ - [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).
495
321
 
496
- - Remove support for V1 unencrypted backend [#4189](https://github.com/excalidraw/excalidraw/pull/4189)
322
+ - 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).
497
323
 
498
- - Use separate backend for local storage [#4187](https://github.com/excalidraw/excalidraw/pull/4187)
324
+ - 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).
499
325
 
500
- - Add hint around canvas panning [#4159](https://github.com/excalidraw/excalidraw/pull/4159)
326
+ #### BREAKING CHANGES
501
327
 
502
- - Stop using production services for development [#4113](https://github.com/excalidraw/excalidraw/pull/4113)
328
+ - `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.
329
+ - The prop `renderFooter` is now removed in favor of rendering as a child component.
503
330
 
504
- - Add triangle arrowhead [#4024](https://github.com/excalidraw/excalidraw/pull/4024)
331
+ ### Excalidraw schema
505
332
 
506
- - Add rewrite to webex landing page [#4102](https://github.com/excalidraw/excalidraw/pull/4102)
333
+ - 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).
507
334
 
508
- - Switch collab server [#4092](https://github.com/excalidraw/excalidraw/pull/4092)
335
+ ## Excalidraw Library
509
336
 
510
- - Use dialog component for clear canvas instead of window confirm [#4075](https://github.com/excalidraw/excalidraw/pull/4075)
337
+ **_This section lists the updates made to the excalidraw library and will not affect the integration._**
511
338
 
512
- ### Fixes
339
+ ### Features
513
340
 
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)
341
+ - Generic button export [#6092](https://github.com/excalidraw/excalidraw/pull/6092)
515
342
 
516
- - Add commits directly pushed to master in changelog [#4798](https://github.com/excalidraw/excalidraw/pull/4798)
343
+ - Scroll using PageUp and PageDown [#6038](https://github.com/excalidraw/excalidraw/pull/6038)
517
344
 
518
- - Don't bump element version when adding files data [#4794](https://github.com/excalidraw/excalidraw/pull/4794)
345
+ - Support shrinking text containers to original height when text removed [#6025](https://github.com/excalidraw/excalidraw/pull/6025)
519
346
 
520
- - Mobile link click [#4742](https://github.com/excalidraw/excalidraw/pull/4742)
347
+ - Move contextMenu into the component tree and control via appState [#6021](https://github.com/excalidraw/excalidraw/pull/6021)
521
348
 
522
- - ContextMenu timer & pointers not correctly reset on iOS [#4765](https://github.com/excalidraw/excalidraw/pull/4765)
349
+ - Allow readonly actions to be used in viewMode [#5982](https://github.com/excalidraw/excalidraw/pull/5982)
523
350
 
524
- - Use absolute coords when rendering link popover [#4753](https://github.com/excalidraw/excalidraw/pull/4753)
351
+ - Support labels for arrow 🔥 [#5723](https://github.com/excalidraw/excalidraw/pull/5723)
525
352
 
526
- - Changing font size when text is not selected or edited [#4751](https://github.com/excalidraw/excalidraw/pull/4751)
353
+ - Don't add midpoint until dragged beyond a threshold [#5927](https://github.com/excalidraw/excalidraw/pull/5927)
527
354
 
528
- - Disable contextmenu on non-secondary `pen` events or `touch` [#4675](https://github.com/excalidraw/excalidraw/pull/4675)
355
+ - Changed text copy/paste behaviour [#5786](https://github.com/excalidraw/excalidraw/pull/5786)
529
356
 
530
- - Mobile context menu won't show on long press [#4741](https://github.com/excalidraw/excalidraw/pull/4741)
357
+ - Reintroduce `x` shortcut for `freedraw` [#5840](https://github.com/excalidraw/excalidraw/pull/5840)
531
358
 
532
- - Do not open links twice [#4738](https://github.com/excalidraw/excalidraw/pull/4738)
359
+ - Tweak toolbar shortcuts & remove library shortcut [#5832](https://github.com/excalidraw/excalidraw/pull/5832)
533
360
 
534
- - Make link icon clickable in mobile [#4736](https://github.com/excalidraw/excalidraw/pull/4736)
361
+ - Clean unused images only after 24hrs (local-only) [#5839](https://github.com/excalidraw/excalidraw/pull/5839)
535
362
 
536
- - Apple Pen missing strokes [#4705](https://github.com/excalidraw/excalidraw/pull/4705)
363
+ - Refetch errored/pending images on collab room init load [#5833](https://github.com/excalidraw/excalidraw/pull/5833)
537
364
 
538
- - Freedraw slow movement jittery lines [#4726](https://github.com/excalidraw/excalidraw/pull/4726)
365
+ - Stop deleting whole line when no point select in line editor [#5676](https://github.com/excalidraw/excalidraw/pull/5676)
539
366
 
540
- - Disable three finger pinch zoom in penMode [#4725](https://github.com/excalidraw/excalidraw/pull/4725)
367
+ - Editor redesign 🔥 [#5780](https://github.com/excalidraw/excalidraw/pull/5780)
541
368
 
542
- - Remove click listener for opening popup [#4700](https://github.com/excalidraw/excalidraw/pull/4700)
369
+ ### Fixes
543
370
 
544
- - Link popup position not accounting for offsets [#4695](https://github.com/excalidraw/excalidraw/pull/4695)
371
+ - Mobile tools positioning [#6107](https://github.com/excalidraw/excalidraw/pull/6107)
545
372
 
546
- - PenMode darkmode style [#4692](https://github.com/excalidraw/excalidraw/pull/4692)
373
+ - Renamed folder MainMenu->main-menu and support rest props [#6103](https://github.com/excalidraw/excalidraw/pull/6103)
547
374
 
548
- - Typing `_+` in wysiwyg not working [#4681](https://github.com/excalidraw/excalidraw/pull/4681)
375
+ - Use position absolute for mobile misc tools [#6099](https://github.com/excalidraw/excalidraw/pull/6099)
549
376
 
550
- - Keyboard-zooming in wysiwyg should zoom canvas [#4676](https://github.com/excalidraw/excalidraw/pull/4676)
377
+ - React.memo resolvers not accounting for all props [#6042](https://github.com/excalidraw/excalidraw/pull/6042)
551
378
 
552
- - SceneCoordsToViewportCoords, jumping text when there is an offset [#4413](https://github.com/excalidraw/excalidraw/pull/4413) (#4630)
379
+ - Image horizontal flip fix + improved tests [#5799](https://github.com/excalidraw/excalidraw/pull/5799)
553
380
 
554
- - Right-click object menu displays partially off-screen [#4572](https://github.com/excalidraw/excalidraw/pull/4572) (#4631)
381
+ - Png-exporting does not preserve angles correctly for flipped images [#6085](https://github.com/excalidraw/excalidraw/pull/6085)
555
382
 
556
- - Support collaboration in bound text [#4573](https://github.com/excalidraw/excalidraw/pull/4573)
383
+ - Stale appState of MainMenu defaultItems rendered from Actions [#6074](https://github.com/excalidraw/excalidraw/pull/6074)
557
384
 
558
- - Cmd/ctrl native browser behavior blocked in inputs [#4589](https://github.com/excalidraw/excalidraw/pull/4589)
385
+ - HelpDialog [#6072](https://github.com/excalidraw/excalidraw/pull/6072)
559
386
 
560
- - Use cached width when calculating min width during resize [#4585](https://github.com/excalidraw/excalidraw/pull/4585)
387
+ - Show error message on collab save failure [#6063](https://github.com/excalidraw/excalidraw/pull/6063)
561
388
 
562
- - Support collaboration in bounded text [#4580](https://github.com/excalidraw/excalidraw/pull/4580)
389
+ - Remove ga from docker build [#6059](https://github.com/excalidraw/excalidraw/pull/6059)
563
390
 
564
- - Port for collab server and update docs [#4569](https://github.com/excalidraw/excalidraw/pull/4569)
391
+ - Use displayName since name gets stripped off when uglifying/minifiyng in production [#6036](https://github.com/excalidraw/excalidraw/pull/6036)
565
392
 
566
- - Don't mutate the bounded text if not updated when submitted [#4543](https://github.com/excalidraw/excalidraw/pull/4543)
393
+ - Remove background from wysiwyg when editing arrow label [#6033](https://github.com/excalidraw/excalidraw/pull/6033)
567
394
 
568
- - Prevent canvas drag while editing text [#4552](https://github.com/excalidraw/excalidraw/pull/4552)
395
+ - Use canvas measureText to calculate width in measureText [#6030](https://github.com/excalidraw/excalidraw/pull/6030)
569
396
 
570
- - Support shift+P for freedraw [#4550](https://github.com/excalidraw/excalidraw/pull/4550)
397
+ - Restoring deleted bindings [#6029](https://github.com/excalidraw/excalidraw/pull/6029)
571
398
 
572
- - Prefer spreadsheet data over image [#4533](https://github.com/excalidraw/excalidraw/pull/4533)
399
+ - ColorPicker getColor [#5949](https://github.com/excalidraw/excalidraw/pull/5949)
573
400
 
574
- - Show text properties button states correctly for bounded text [#4542](https://github.com/excalidraw/excalidraw/pull/4542)
401
+ - 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)
575
402
 
576
- - Rotate bounded text when container is rotated before typing [#4535](https://github.com/excalidraw/excalidraw/pull/4535)
403
+ - Showing `grabbing` cursor when holding `spacebar` [#6015](https://github.com/excalidraw/excalidraw/pull/6015)
577
404
 
578
- - Undo should work when selecting bounded textr [#4537](https://github.com/excalidraw/excalidraw/pull/4537)
405
+ - Resize sometimes throwing on missing null-checks [#6013](https://github.com/excalidraw/excalidraw/pull/6013)
579
406
 
580
- - Reduce padding to 5px for bounded text [#4530](https://github.com/excalidraw/excalidraw/pull/4530)
407
+ - PWA not working after CRA@5 update [#6012](https://github.com/excalidraw/excalidraw/pull/6012)
581
408
 
582
- - Bound text doesn't inherit container [#4521](https://github.com/excalidraw/excalidraw/pull/4521)
409
+ - Not properly restoring element stroke and bg colors [#6002](https://github.com/excalidraw/excalidraw/pull/6002)
583
410
 
584
- - Text wrapping with grid [#4505](https://github.com/excalidraw/excalidraw/pull/4505) (#4506)
411
+ - Avatar outline on safari & center [#5997](https://github.com/excalidraw/excalidraw/pull/5997)
585
412
 
586
- - Check if process is defined before using so it works in browser [#4497](https://github.com/excalidraw/excalidraw/pull/4497)
413
+ - Chart pasting not working due to removing tab characters [#5987](https://github.com/excalidraw/excalidraw/pull/5987)
587
414
 
588
- - Pending review fixes for sticky notes [#4493](https://github.com/excalidraw/excalidraw/pull/4493)
415
+ - Apply the right type of roundness when pasting styles [#5979](https://github.com/excalidraw/excalidraw/pull/5979)
589
416
 
590
- - Pasted elements except binded text once paste action is complete [#4472](https://github.com/excalidraw/excalidraw/pull/4472)
417
+ - Remove editor onpaste handler [#5971](https://github.com/excalidraw/excalidraw/pull/5971)
591
418
 
592
- - Don't select binded text when ungrouping [#4470](https://github.com/excalidraw/excalidraw/pull/4470)
419
+ - Remove blank space [#5950](https://github.com/excalidraw/excalidraw/pull/5950)
593
420
 
594
- - Set height correctly when text properties updated while editing in container until first submit [#4469](https://github.com/excalidraw/excalidraw/pull/4469)
421
+ - Galego and Kurdî missing in languages plus two locale typos [#5954](https://github.com/excalidraw/excalidraw/pull/5954)
595
422
 
596
- - Align and distribute binded text in container and cleanup [#4468](https://github.com/excalidraw/excalidraw/pull/4468)
423
+ - `ExcalidrawArrowElement` rather than `ExcalidrawArrowEleement` [#5955](https://github.com/excalidraw/excalidraw/pull/5955)
597
424
 
598
- - Move binded text when moving container using keyboard [#4466](https://github.com/excalidraw/excalidraw/pull/4466)
425
+ - RenderFooter styling [#5962](https://github.com/excalidraw/excalidraw/pull/5962)
599
426
 
600
- - Support dragging binded text in container selected in a group [#4462](https://github.com/excalidraw/excalidraw/pull/4462)
427
+ - Repair element bindings on restore [#5956](https://github.com/excalidraw/excalidraw/pull/5956)
601
428
 
602
- - Vertically align single line when deleting text in bounded container [#4460](https://github.com/excalidraw/excalidraw/pull/4460)
429
+ - Don't allow whitespaces for bound text [#5939](https://github.com/excalidraw/excalidraw/pull/5939)
603
430
 
604
- - Update height correctly when updating text properties in binded text [#4459](https://github.com/excalidraw/excalidraw/pull/4459)
431
+ - Bindings do not survive history serialization [#5942](https://github.com/excalidraw/excalidraw/pull/5942)
605
432
 
606
- - Align library item previews to center [#4447](https://github.com/excalidraw/excalidraw/pull/4447)
433
+ - Dedupe boundElement ids when container duplicated with alt+drag [#5938](https://github.com/excalidraw/excalidraw/pull/5938)
607
434
 
608
- - Vertically center align text when text deleted [#4457](https://github.com/excalidraw/excalidraw/pull/4457)
435
+ - Scale font correctly when using shift [#5935](https://github.com/excalidraw/excalidraw/pull/5935)
609
436
 
610
- - Vertically center the first line as user starts typing in container [#4454](https://github.com/excalidraw/excalidraw/pull/4454)
437
+ - Always bind to container selected by user [#5880](https://github.com/excalidraw/excalidraw/pull/5880)
611
438
 
612
- - Switch cursor to center of container when adding text when dimensions are too small [#4452](https://github.com/excalidraw/excalidraw/pull/4452)
439
+ - Fonts not rendered on init if `loadingdone` not fired [#5923](https://github.com/excalidraw/excalidraw/pull/5923)
613
440
 
614
- - Vertically center align the bounded text correctly when zoomed [#4444](https://github.com/excalidraw/excalidraw/pull/4444)
441
+ - Stop replacing `del` word with `Delete` [#5897](https://github.com/excalidraw/excalidraw/pull/5897)
615
442
 
616
- - Support updating stroke color for text by typing in color picker input [#4415](https://github.com/excalidraw/excalidraw/pull/4415)
443
+ - Remove legacy React.render() from the editor [#5893](https://github.com/excalidraw/excalidraw/pull/5893)
617
444
 
618
- - Bound text not atomic with container when changing z-index [#4414](https://github.com/excalidraw/excalidraw/pull/4414)
445
+ - Allow adding text via enter only for text containers [#5891](https://github.com/excalidraw/excalidraw/pull/5891)
619
446
 
620
- - Update viewport coords correctly when editing text [#4416](https://github.com/excalidraw/excalidraw/pull/4416)
447
+ - Stop font `loadingdone` loop when rendering element SVGs [#5883](https://github.com/excalidraw/excalidraw/pull/5883)
621
448
 
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)
449
+ - Refresh text dimensions only after font load done [#5878](https://github.com/excalidraw/excalidraw/pull/5878)
623
450
 
624
- - Husky not able to execute pre-commit on windows [#4370](https://github.com/excalidraw/excalidraw/pull/4370)
451
+ - Correctly paste contents parsed by `JSON.parse()` as text. [#5868](https://github.com/excalidraw/excalidraw/pull/5868)
625
452
 
626
- - Make firebase config parsing not fail on undefined env [#4381](https://github.com/excalidraw/excalidraw/pull/4381)
453
+ - SVG element attributes in icons.tsx [#5871](https://github.com/excalidraw/excalidraw/pull/5871)
627
454
 
628
- - Adding to library via contextmenu when no image is selected [#4356](https://github.com/excalidraw/excalidraw/pull/4356)
455
+ - Merge existing text with new when pasted [#5856](https://github.com/excalidraw/excalidraw/pull/5856)
629
456
 
630
- - Export scale quality regression [#4316](https://github.com/excalidraw/excalidraw/pull/4316)
457
+ - Disable FAST_REFRESH to fix live reload [#5852](https://github.com/excalidraw/excalidraw/pull/5852)
631
458
 
632
- - Remove `100%` height from tooltip container to fix layout issues [#3980](https://github.com/excalidraw/excalidraw/pull/3980)
459
+ - Paste clipboard contents into unbound text elements [#5849](https://github.com/excalidraw/excalidraw/pull/5849)
633
460
 
634
- - Inline ENV variables when building excalidraw package [#4311](https://github.com/excalidraw/excalidraw/pull/4311)
461
+ - Compute dimensions of container correctly when text pasted on container [#5845](https://github.com/excalidraw/excalidraw/pull/5845)
635
462
 
636
- - SVG export in dark mode with embedded bitmap image [#4285](https://github.com/excalidraw/excalidraw/pull/4285)
463
+ - Line editor points rendering below elements [#5781](https://github.com/excalidraw/excalidraw/pull/5781)
637
464
 
638
- - New FS API not working on Linux [#4280](https://github.com/excalidraw/excalidraw/pull/4280)
465
+ - Syncing 1-point lines to remote clients [#5677](https://github.com/excalidraw/excalidraw/pull/5677)
639
466
 
640
- - Url -> URL for consistency [#4277](https://github.com/excalidraw/excalidraw/pull/4277)
467
+ - Incorrectly selecting linear elements on creation while tool-locked [#5785](https://github.com/excalidraw/excalidraw/pull/5785)
641
468
 
642
- - Prevent adding images to library via contextMenu [#4264](https://github.com/excalidraw/excalidraw/pull/4264)
469
+ - Corrected typo in toggle theme shortcut [#5813](https://github.com/excalidraw/excalidraw/pull/5813)
643
470
 
644
- - Account for libraries v2 when prompting [#4263](https://github.com/excalidraw/excalidraw/pull/4263)
471
+ - Hide canvas-modifying UI in view mode [#5815](https://github.com/excalidraw/excalidraw/pull/5815)
645
472
 
646
- - Skia rendering issues [#4200](https://github.com/excalidraw/excalidraw/pull/4200)
473
+ - Fix vertical/horizntal centering icons [#5812](https://github.com/excalidraw/excalidraw/pull/5812)
647
474
 
648
- - Ellipse roughness when `0` [#4194](https://github.com/excalidraw/excalidraw/pull/4194)
475
+ - Consistent use of ZOOM_STEP [#5801](https://github.com/excalidraw/excalidraw/pull/5801)
649
476
 
650
- - Proper string for invalid SVG [#4191](https://github.com/excalidraw/excalidraw/pull/4191)
477
+ - Multiple elements resizing regressions [#5586](https://github.com/excalidraw/excalidraw/pull/5586)
651
478
 
652
- - Images not initialized correctly [#4157](https://github.com/excalidraw/excalidraw/pull/4157)
479
+ - Changelog typo [#5795](https://github.com/excalidraw/excalidraw/pull/5795)
653
480
 
654
- - Image-related fixes [#4147](https://github.com/excalidraw/excalidraw/pull/4147)
481
+ ### Refactor
655
482
 
656
- - Rewrite collab element reconciliation to fix z-index issues [#4076](https://github.com/excalidraw/excalidraw/pull/4076)
483
+ - Remove unnecessary code [#5933](https://github.com/excalidraw/excalidraw/pull/5933)
657
484
 
658
- - Redirect excalidraw.com/about to for-webex.excalidraw.com [#4104](https://github.com/excalidraw/excalidraw/pull/4104)
485
+ ### Build
659
486
 
660
- - Redirect to webex LP instead of rewrite to fix SW [#4103](https://github.com/excalidraw/excalidraw/pull/4103)
487
+ - Move release scripts to use release branch [#5958](https://github.com/excalidraw/excalidraw/pull/5958)
661
488
 
662
- - Clear image/shape cache of affected elements when adding files [#4089](https://github.com/excalidraw/excalidraw/pull/4089)
489
+ - Stops ignoring .env files from docker context so env variables get set during react app build. [#5809](https://github.com/excalidraw/excalidraw/pull/5809)
663
490
 
664
- - Clear `LibraryUnit` DOM on unmount [#4084](https://github.com/excalidraw/excalidraw/pull/4084)
491
+ ---
665
492
 
666
- - Pasting images on firefox [#4085](https://github.com/excalidraw/excalidraw/pull/4085)
493
+ ## 0.13.0 (2022-10-27)
667
494
 
668
- ### Refactor
495
+ ### Excalidraw API
669
496
 
670
- - Simplify zoom by removing `zoom.translation` [#4477](https://github.com/excalidraw/excalidraw/pull/4477)
497
+ #### Features
671
498
 
672
- - Deduplicate encryption helpers [#4146](https://github.com/excalidraw/excalidraw/pull/4146)
499
+ - `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).
500
+ - 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)).
501
+ - 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)).
502
+ - 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).
503
+ - 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].
504
+ - 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`.
673
505
 
674
- ### Performance
506
+ #### Breaking Changes
675
507
 
676
- - Cache approx line height in textwysiwg [#4651](https://github.com/excalidraw/excalidraw/pull/4651)
508
+ - `props.UIOptions.canvasActions.theme` is now renamed to `props.UIOptions.canvasActions.toggleTheme` [#5660](https://github.com/excalidraw/excalidraw/pull/5660).
509
+ - `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`.
677
510
 
678
- ### Build
511
+ ## Excalidraw Library
679
512
 
680
- - Rename release command to 'release package' [#4783](https://github.com/excalidraw/excalidraw/pull/4783)
513
+ **_This section lists the updates made to the excalidraw library and will not affect the integration._**
681
514
 
682
- - Deploy excalidraw package example [#4762](https://github.com/excalidraw/excalidraw/pull/4762)
515
+ ### Features
683
516
 
684
- - Allow package.json changes when autoreleasing next [#4068](https://github.com/excalidraw/excalidraw/pull/4068)
517
+ - Render library into `Sidebar` on mobile [#5774](https://github.com/excalidraw/excalidraw/pull/5774)
685
518
 
686
- ---
519
+ - Additional drag and drop image format support (webp, bmp, ico) [#5749](https://github.com/excalidraw/excalidraw/pull/5749)
687
520
 
688
- ## 0.10.0 (2021-10-13)
521
+ - Enter and Exit line editor via context menu [#5719](https://github.com/excalidraw/excalidraw/pull/5719)
689
522
 
690
- ## Excalidraw API
523
+ - Further reduce darkmode init flash [#5701](https://github.com/excalidraw/excalidraw/pull/5701)
691
524
 
692
- ### Fixes
525
+ - Support segment midpoints in line editor [#5641](https://github.com/excalidraw/excalidraw/pull/5641)
693
526
 
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).
527
+ - Added exportPadding to PNG (blob) export in @excalidraw/utils [#5626](https://github.com/excalidraw/excalidraw/pull/5626)
695
528
 
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).
529
+ - Introduce ExcalidrawElements and ExcalidrawAppState provider [#5463](https://github.com/excalidraw/excalidraw/pull/5463)
697
530
 
698
- #### BREAKING CHANGE
531
+ - Enable midpoint inside linear element editor [#5564](https://github.com/excalidraw/excalidraw/pull/5564)
699
532
 
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.
533
+ - Show a mid point for linear elements [#5534](https://github.com/excalidraw/excalidraw/pull/5534)
701
534
 
702
- ### Build
535
+ - Lock angle when editing linear elements with shift pressed [#5527](https://github.com/excalidraw/excalidraw/pull/5527)
703
536
 
704
- - Enable jsx transform in webpack [#4049](https://github.com/excalidraw/excalidraw/pull/4049)
537
+ - Redesign linear elements 🎉 [#5501](https://github.com/excalidraw/excalidraw/pull/5501)
705
538
 
706
- ### Docs
539
+ - Cursor alignment when creating linear elements with shift pressed [#5518](https://github.com/excalidraw/excalidraw/pull/5518)
707
540
 
708
- - Correct exportToBackend in README to onExportToBackend [#3952](https://github.com/excalidraw/excalidraw/pull/3952)
541
+ - Shift-clamp when creating multi-point lines/arrows [#5500](https://github.com/excalidraw/excalidraw/pull/5500)
709
542
 
710
- ## Excalidraw Library
543
+ - Cursor alignment when creating generic elements [#5516](https://github.com/excalidraw/excalidraw/pull/5516)
711
544
 
712
- **_This section lists the updates made to the excalidraw library and will not affect the integration._**
545
+ - Make context menu scrollable [#4030](https://github.com/excalidraw/excalidraw/pull/4030)
713
546
 
714
- ### Features
547
+ ### Fixes
715
548
 
716
- - Improve freedraw shape [#3984](https://github.com/excalidraw/excalidraw/pull/3984)
549
+ - Ungroup short cut key [#5779](https://github.com/excalidraw/excalidraw/pull/5779)
717
550
 
718
- - Make color ARIA labels better [#3871](https://github.com/excalidraw/excalidraw/pull/3871)
551
+ - Replaced KeyboardEvent.code with KeyboardEvent.key for all letters [#5523](https://github.com/excalidraw/excalidraw/pull/5523)
719
552
 
720
- - Add origin trial tokens [#3853](https://github.com/excalidraw/excalidraw/pull/3853)
553
+ - Free draw flip not scaling correctly [#5752](https://github.com/excalidraw/excalidraw/pull/5752)
721
554
 
722
- - Re-order zoom buttons [#3837](https://github.com/excalidraw/excalidraw/pull/3837)
555
+ - Wait for window focus until prompting for library install [#5751](https://github.com/excalidraw/excalidraw/pull/5751)
723
556
 
724
- - Add undo/redo buttons & tweak footer [#3832](https://github.com/excalidraw/excalidraw/pull/3832)
557
+ - Update perfect freehand library to fix extra dot [#5727](https://github.com/excalidraw/excalidraw/pull/5727)
725
558
 
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)
559
+ - RestoreElementWithProperties drops "parent" property [#5742](https://github.com/excalidraw/excalidraw/pull/5742)
727
560
 
728
- ### Fixes
561
+ - Horizontal text alignment for bound text when resizing [#5721](https://github.com/excalidraw/excalidraw/pull/5721)
729
562
 
730
- - Abstract and fix legacy fs [#4032](https://github.com/excalidraw/excalidraw/pull/4032)
563
+ - Set the dimensions of bound text correctly [#5710](https://github.com/excalidraw/excalidraw/pull/5710)
731
564
 
732
- - Context menu positioning [#4025](https://github.com/excalidraw/excalidraw/pull/4025)
565
+ - Image-mirroring in export preview and in exported svg [#5700](https://github.com/excalidraw/excalidraw/pull/5700)
733
566
 
734
- - Added alert for bad encryption key [#3998](https://github.com/excalidraw/excalidraw/pull/3998)
567
+ - Double state update incorrectly resetting state [#5704](https://github.com/excalidraw/excalidraw/pull/5704)
735
568
 
736
- - OnPaste should return false to prevent paste action [#3974](https://github.com/excalidraw/excalidraw/pull/3974)
569
+ - Remove no longer used code related to collab room loading [#5699](https://github.com/excalidraw/excalidraw/pull/5699)
737
570
 
738
- - Help-icon now visible on Safari [#3939](https://github.com/excalidraw/excalidraw/pull/3939)
571
+ - Revert webpack deduping to fix `@next` runtime [#5695](https://github.com/excalidraw/excalidraw/pull/5695)
739
572
 
740
- - Permanent zoom mode [#3931](https://github.com/excalidraw/excalidraw/pull/3931)
573
+ - Move to release notes for v0.9.0 and after [#5686](https://github.com/excalidraw/excalidraw/pull/5686)
741
574
 
742
- - Undo/redo buttons gap in Safari [#3836](https://github.com/excalidraw/excalidraw/pull/3836)
575
+ - Zen-mode exit button not working [#5682](https://github.com/excalidraw/excalidraw/pull/5682)
743
576
 
744
- - Prevent gradual canvas misalignment [#3833](https://github.com/excalidraw/excalidraw/pull/3833)
577
+ - Buttons jump around on the mobile menu [#5658](https://github.com/excalidraw/excalidraw/pull/5658)
745
578
 
746
- - Color picker shortcuts not working when elements selected [#3817](https://github.com/excalidraw/excalidraw/pull/3817)
579
+ - #5622 - prevent session theme reset during collaboration [#5640](https://github.com/excalidraw/excalidraw/pull/5640)
747
580
 
748
- ---
581
+ - Library actions inside the sidebar [#5638](https://github.com/excalidraw/excalidraw/pull/5638)
749
582
 
750
- ## 0.9.0 (2021-07-10)
583
+ - Don't render library menu twice for mobile [#5636](https://github.com/excalidraw/excalidraw/pull/5636)
751
584
 
752
- ## Excalidraw API
585
+ - Reintroduce help dialog button [#5631](https://github.com/excalidraw/excalidraw/pull/5631)
753
586
 
754
- ### Features
587
+ - Add display name to components so it doesn't show as anonymous [#5616](https://github.com/excalidraw/excalidraw/pull/5616)
755
588
 
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).
589
+ - Improve solveQuadratic when a = 0 [#5618](https://github.com/excalidraw/excalidraw/pull/5618)
757
590
 
758
- #### BREAKING CHANGE
591
+ - Add random tiny offsets to avoid linear elements from being clipped [#5615](https://github.com/excalidraw/excalidraw/pull/5615)
759
592
 
760
- - `localElements` argument is mandatory (can be `null`/`undefined`) if using TypeScript.
593
+ - Crash when adding a new point in the line editor #5602 [#5606](https://github.com/excalidraw/excalidraw/pull/5606)
761
594
 
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).
595
+ - Allow box selection of points when inside editor [#5594](https://github.com/excalidraw/excalidraw/pull/5594)
763
596
 
764
- #### BREAKING CHANGE
597
+ - Remove unnecessary conditions in pointerup for linear elements [#5575](https://github.com/excalidraw/excalidraw/pull/5575)
765
598
 
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.
599
+ - Check if hitting link in handleSelectionOnPointerDown [#5589](https://github.com/excalidraw/excalidraw/pull/5589)
768
600
 
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).
601
+ - Points not being normalized on single-elem resize [#5581](https://github.com/excalidraw/excalidraw/pull/5581)
770
602
 
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).
603
+ - Deselect linear element when clicked inside bounding box outside editor [#5579](https://github.com/excalidraw/excalidraw/pull/5579)
772
604
 
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).
605
+ - Resize multiple elements from center [#5560](https://github.com/excalidraw/excalidraw/pull/5560)
774
606
 
775
- Note: Earlier Excalidraw component was focused by default on page load, you need to enable `autoFocus` prop to retain the same behaviour.
607
+ - Call static methods via class instead of instance in linearElementEditor [#5561](https://github.com/excalidraw/excalidraw/pull/5561)
776
608
 
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).
609
+ - Show bounding box for 3 or more linear point elements [#5554](https://github.com/excalidraw/excalidraw/pull/5554)
779
610
 
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).
611
+ - Cleanup the condition for dragging elements [#5555](https://github.com/excalidraw/excalidraw/pull/5555)
781
612
 
782
- Also, [`UIOptions`](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md#UIOptions) is now memoized to avoid unnecessary rerenders.
613
+ - Shareable links being merged with current scene data [#5547](https://github.com/excalidraw/excalidraw/pull/5547)
783
614
 
784
- #### BREAKING CHANGE
615
+ - Scene lookup failing when looking up by id [#5542](https://github.com/excalidraw/excalidraw/pull/5542)
785
616
 
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.
617
+ - Remove rounding to fix jitter when shift-editing [#5543](https://github.com/excalidraw/excalidraw/pull/5543)
788
618
 
789
- ### Fixes
619
+ - Line deselected when shift-dragging point outside editor [#5540](https://github.com/excalidraw/excalidraw/pull/5540)
790
620
 
791
- - Use excalidraw Id in elements so every element has unique id [#3696](https://github.com/excalidraw/excalidraw/pull/3696).
621
+ - Flip linear elements after redesign [#5538](https://github.com/excalidraw/excalidraw/pull/5538)
792
622
 
793
- ### Refactor
623
+ - Disable locking aspect ratio for box-selection [#5525](https://github.com/excalidraw/excalidraw/pull/5525)
794
624
 
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.
625
+ - Add `title` attribute to the modal close button [#5521](https://github.com/excalidraw/excalidraw/pull/5521)
799
626
 
800
- ## Excalidraw Library
627
+ - Context menu positioning when component has offsets [#5520](https://github.com/excalidraw/excalidraw/pull/5520)
801
628
 
802
- **_This section lists the updates made to the excalidraw library and will not affect the integration._**
629
+ - Resolve paths in prebuild.js script [#5498](https://github.com/excalidraw/excalidraw/pull/5498)
803
630
 
804
- ### Features
631
+ - Use flushSync when moving line editor since we need to read previous value after setting state [#5508](https://github.com/excalidraw/excalidraw/pull/5508)
805
632
 
806
- - Switch to selection tool on library item insert [#3773](https://github.com/excalidraw/excalidraw/pull/3773)
633
+ - UseLayout effect cleanup in dev mode for charts [#5505](https://github.com/excalidraw/excalidraw/pull/5505)
807
634
 
808
- - Show active file name when saving to current file [#3733](https://github.com/excalidraw/excalidraw/pull/3733)
635
+ - Revert browser toast for high/low zoom [#5495](https://github.com/excalidraw/excalidraw/pull/5495)
809
636
 
810
- - Add hint around text editing [#3708](https://github.com/excalidraw/excalidraw/pull/3708)
637
+ - Fixing push to DockerHub [#5468](https://github.com/excalidraw/excalidraw/pull/5468)
811
638
 
812
- - Change library icon to be more clear [#3583](https://github.com/excalidraw/excalidraw/pull/3583)
639
+ - Incorrectly rendering freedraw elements [#5481](https://github.com/excalidraw/excalidraw/pull/5481)
813
640
 
814
- - Pass current `theme` when installing libraries [#3701](https://github.com/excalidraw/excalidraw/pull/3701)
641
+ - Generate types when building example [#5480](https://github.com/excalidraw/excalidraw/pull/5480)
815
642
 
816
- - Update virgil font [#3692](https://github.com/excalidraw/excalidraw/pull/3692)
643
+ - Use React.FC as react-dom is not able to infer types of Modal [#5479](https://github.com/excalidraw/excalidraw/pull/5479)
817
644
 
818
- - Support exporting json to excalidraw plus [#3678](https://github.com/excalidraw/excalidraw/pull/3678)
645
+ - Missing translation for "Scale" to Export Dialog [#5456](https://github.com/excalidraw/excalidraw/pull/5456)
819
646
 
820
- - Save exportScale in AppState [#3580](https://github.com/excalidraw/excalidraw/pull/3580)
647
+ - Add display name for Excalidraw component so it doesn't show as anonymous [#5464](https://github.com/excalidraw/excalidraw/pull/5464)
821
648
 
822
- - Add shortcuts for stroke and background color picker [#3318](https://github.com/excalidraw/excalidraw/pull/3318)
649
+ - Account for safe area for floating buttons on mobile [#5420](https://github.com/excalidraw/excalidraw/pull/5420)
823
650
 
824
- - Exporting redesign [#3613](https://github.com/excalidraw/excalidraw/pull/3613)
651
+ - Attribute warnings in comment svg example [#5465](https://github.com/excalidraw/excalidraw/pull/5465)
825
652
 
826
- - Auto-position tooltip and support overflowing container [#3631](https://github.com/excalidraw/excalidraw/pull/3631)
653
+ - Check for ctrl key when wheel event triggered to only disable zooming [#5459](https://github.com/excalidraw/excalidraw/pull/5459)
827
654
 
828
- - Auto release @excalidraw/excalidraw-next on every change [#3614](https://github.com/excalidraw/excalidraw/pull/3614)
655
+ - Disable render throttling by default & during resize [#5451](https://github.com/excalidraw/excalidraw/pull/5451)
829
656
 
830
- - Allow inner-drag-selecting with cmd/ctrl [#3603](https://github.com/excalidraw/excalidraw/pull/3603)
657
+ - Attach wheel event to exscalidraw container only [#5443](https://github.com/excalidraw/excalidraw/pull/5443)
831
658
 
832
- ### Fixes
659
+ - Show toast when browser zoom is not 100% [#5304](https://github.com/excalidraw/excalidraw/pull/5304)
833
660
 
834
- - view mode cursor adjustments [#3809](https://github.com/excalidraw/excalidraw/pull/3809).
661
+ - Prevent browser zoom inside Excalidraw [#5426](https://github.com/excalidraw/excalidraw/pull/5426)
835
662
 
836
- - Pass next release to updatePackageVersion & replace ## unreleased with new version [#3806](https://github.com/excalidraw/excalidraw/pull/3806)
663
+ - Typo in changelog [#5425](https://github.com/excalidraw/excalidraw/pull/5425)
837
664
 
838
- - Include deleted elements when passing to restore [#3802](https://github.com/excalidraw/excalidraw/pull/3802)
665
+ ### Refactor
839
666
 
840
- - Import React before using jsx [#3804](https://github.com/excalidraw/excalidraw/pull/3804)
667
+ - Create a util to compute container dimensions for bound text container [#5708](https://github.com/excalidraw/excalidraw/pull/5708)
841
668
 
842
- - Ensure `s` and `g` shortcuts work on no selection [#3800](https://github.com/excalidraw/excalidraw/pull/3800)
669
+ - Reuse common ui dialogs and message for mobile and LayerUI [#5611](https://github.com/excalidraw/excalidraw/pull/5611)
843
670
 
844
- - Keep binding for attached arrows after changing text [#3754](https://github.com/excalidraw/excalidraw/pull/3754)
671
+ - Stats component [#5610](https://github.com/excalidraw/excalidraw/pull/5610)
845
672
 
846
- - Deselect elements on viewMode toggle [#3741](https://github.com/excalidraw/excalidraw/pull/3741)
673
+ - Move footer to its own component [#5609](https://github.com/excalidraw/excalidraw/pull/5609)
847
674
 
848
- - Allow pointer events for disable zen mode button [#3743](https://github.com/excalidraw/excalidraw/pull/3743)
675
+ - Remove unused attribute hasHitElementInside from pointerDownState [#5591](https://github.com/excalidraw/excalidraw/pull/5591)
849
676
 
850
- - Use rgba instead of shorthand alpha [#3688](https://github.com/excalidraw/excalidraw/pull/3688)
677
+ - Cleanup renderScene [#5573](https://github.com/excalidraw/excalidraw/pull/5573)
851
678
 
852
- - Color pickers not opening on mobile [#3676](https://github.com/excalidraw/excalidraw/pull/3676)
679
+ - Rename docs to dev-docs [#5487](https://github.com/excalidraw/excalidraw/pull/5487)
853
680
 
854
- - On contextMenu, use selected element regardless of z-index [#3668](https://github.com/excalidraw/excalidraw/pull/3668)
681
+ - Remove unnecessary if condition for linear element onKeyDown [#5486](https://github.com/excalidraw/excalidraw/pull/5486)
855
682
 
856
- - SelectedGroupIds not being stored in history [#3630](https://github.com/excalidraw/excalidraw/pull/3630)
683
+ - Improve typing & check [#5415](https://github.com/excalidraw/excalidraw/pull/5415)
857
684
 
858
- - Overscroll on touch devices [#3663](https://github.com/excalidraw/excalidraw/pull/3663)
685
+ - Don't pass zenModeEnable, viewModeEnabled and toggleZenMode props to LayerUI [#5444](https://github.com/excalidraw/excalidraw/pull/5444)
859
686
 
860
- - Small UI issues around image export dialog [#3642](https://github.com/excalidraw/excalidraw/pull/3642)
687
+ ### Build
861
688
 
862
- - Normalize linear element points on restore [#3633](https://github.com/excalidraw/excalidraw/pull/3633)
689
+ - Add missing dependencies: pica, lodash [#5656](https://github.com/excalidraw/excalidraw/pull/5656)
863
690
 
864
- - Disable pointer-events on footer-center container [#3629](https://github.com/excalidraw/excalidraw/pull/3629)
691
+ - Move dotenv to dev deps [#5472](https://github.com/excalidraw/excalidraw/pull/5472)
865
692
 
866
- ### Refactor
693
+ ---
867
694
 
868
- - Delete React SyntheticEvent persist [#3700](https://github.com/excalidraw/excalidraw/pull/3700)
695
+ ## 0.12.0 (2022-07-07)
869
696
 
870
- - Code clean up [#3681](https://github.com/excalidraw/excalidraw/pull/3681)
697
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.12.0) )
871
698
 
872
- ### Performance
699
+ **_This section lists the updates made to the excalidraw library and will not affect the integration._**
873
700
 
874
- - Improve arrow head sizing [#3480](https://github.com/excalidraw/excalidraw/pull/3480)
701
+ ## 0.11.0 (2022-02-17)
875
702
 
876
- ### Build
703
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.11.0)
877
704
 
878
- - Add release script to update relevant files and commit for next release [#3805](https://github.com/excalidraw/excalidraw/pull/3805)
705
+ ## 0.10.0 (2021-10-13)
879
706
 
880
- - Add script to update changelog before a stable release [#3784](https://github.com/excalidraw/excalidraw/pull/3784)
707
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.10.0)
881
708
 
882
- - Add script to update readme before stable release [#3781](https://github.com/excalidraw/excalidraw/pull/3781)
709
+ ## 0.9.0 (2021-07-10)
883
710
 
884
- ---
711
+ Check out the [release notes](https://github.com/excalidraw/excalidraw/releases/tag/v0.9.0)
885
712
 
886
713
  ## 0.8.0 (2021-05-15)
887
714