v0.16.0 (2023-09-19)
0.16.0 (2023-09-19)
Features
-
Support creating containers, linear elements, text containers, labelled arrows and arrow bindings programatically #6546
-
Added
props.validateEmbeddableto customize embeddable src url validation. #6691 -
Add support for
opts.fitToViewportandopts.viewportZoomFactorin theExcalidrawAPI.scrollToContentAPI. #6581. -
Sidebar component now supports tabs โ for more detailed description of new behavior and breaking changes, see the linked PR. #6213
-
Exposed
DefaultSidebarcomponent to allow modifying the default sidebar, such as adding custom tabs to it. #6213BREAKING CHANGES
props.renderSidebaris removed in favor of rendering aschildren.appState.isSidebarDockedreplaced withappState.defaultSidebarDockedPreferencewith slightly different semantics, and relating only to the default sidebar. You need to handledockedstate for your custom sidebars yourself.- Sidebar
props.dockableis removed. To indicate dockability, supplyprops.onDock()alongside settingprops.docked. Sidebar.Headeris no longer rendered by default. You need to render it yourself.props.onClosereplaced withprops.onStateChange.restore()/restoreAppState()now retainsappState.openSidebarregardless of docked state.
Excalidraw Library
This section lists the updates made to the excalidraw library and will not affect the integration.
Features
-
Properly sanitize element
linkurls. #6728. -
allow
avif,jfif,webp,bmp,icoimage types #6500 -
Zen-mode/go-to-plus button style tweaks #7006
-
Holding down CMD/CTRL will disable snap to grid when grid is active #6983
-
Update logo #6979
-
Export
changeProperty()andgetFormValue(). #6957 -
Partition main canvas vertically #6759
-
Add support for simplePDF in Web-Embeds #6810
-
Introducing Web-Embeds (alias iframe element)#6691
-
Add support for val.town embeds #6821
-
Render bold lines in grid #6779
-
Adds support for stackblitz.com embeds #6813
-
Cache most of element selection #6747
-
Support customizing what parts of frames are rendered #6752
-
Make
appState.selectedElementIdsmore stable #6745 -
Overwrite confirmation dialogs #6658
-
Simple analitycs #6683
-
Introduce frames #6123
-
Add canvas-roundrect-polyfill package #6675
-
Polyfill
CanvasRenderingContext2D.roundRect#6673 -
Disable collab feature when running in iframe #6646
-
Assign random user name when not set #6663
-
Redesigned collab cursors #6659
-
Eye dropper #6615
-
Redesign of Live Collaboration dialog #6635
-
Recover scrolled position after Library re-opening #6624
-
Clearing library cache #6621
-
Update design of ImageExportDialog #6614
-
Add flipping for multiple elements #5578
-
Color picker redesign #6216
-
Add "unlock all elements" to canvas contextMenu #5894
-
Library sidebar design tweaks #6582
-
Add Trans component for interpolating JSX in translations #6534
-
Testing simple analytics and fathom analytics for better privacy of the users #6529
-
Retain
seedon shift-paste #6509 -
Allow
avif,jfif,webp,bmp,icoimage types (#6500
Fixes
-
Improperly disabling UI pointer-events on canvas interaction #7005
-
Several eyeDropper fixes #7002
-
IsBindableElement to affirm frames #6900
-
Use
device.isMobilefor sidebar trigger label breakpoint #6994 -
Export to plus url #6980
-
Z-index inconsistencies during addition / deletion in frames #6914
-
Update size-limit so react is not installed as dependency #6964
-
Stale labeled arrow bounds cache after editing the label #6893
-
Canvas flickering due to resetting canvas on skipped frames #6960
-
Grid jittery after partition PR #6935
-
Regression in indexing when adding elements to frame #6904
-
Stabilize
selectedElementIdswhen box selecting #6912 -
Resetting deleted elements on duplication #6906
-
Make canvas compos memoize appState on props they declare #6897
-
Scope
--color-selectionretrieval to given instance #6886 -
Webpack config exclude statement to system agnostic #6857
-
Remove
embeddablefrom generic elements #6853 -
Resizing arrow labels #6789
-
Eye-dropper not working with app offset correctly on non-1 dPR #6835
-
Add self destroying service-worker.js to migrate everyone from CRA to Vite #6833
-
Forgotten REACT_APP env variables #6834
-
Refresh sw when browser refreshed #6824
-
Adding to selection via shift box-select #6815
-
Prevent binding focus NaN value #6803
-
Use pull request in semantic workflow for better security #6799
-
Don't show
canvasBackgroundlabel whenUIOptions.canvasActions.changeViewBackgroundColoris false #6781 -
Use subdirectory for @excalidraw/excalidraw size limit #6787
-
Use actual dock state to not close docked library on insert #6766
-
UI disappears when pressing the eyedropper shortcut on mobile #6725
-
Elements in non-existing frame getting removed #6708
-
Scrollbars renders but disable #6706
-
Typo in chart.ts #6696
-
Do not bind text to container using text tool when it has text already #6694
-
Don't allow binding text to images #6693
-
Updated link for documentation page under help section #6654
-
Collab username style fixes #6668
-
Bound arrows not updated when rotating multiple elements #6662
-
Delete setCursor when resize #6660
-
Creating text while color picker open #6651
-
Cleanup textWysiwyg and getAdjustedDimensions #6520
-
Eye dropper not accounting for offsets #6640
-
Color picker input closing problem #6599
-
Export dialog shortcut toggles console on firefox #6620
-
Add react v17
useTransitionpolyfill #6618 -
Library dropdown visibility issue for mobile #6613
-
withInternalFallbackleaking state in multi-instance scenarios #6602 -
Language list containing duplicate
enlang #6583 -
Garbled text displayed on avatars #6575
-
Assign the original text to text editor only during init #6580
-
I18n: Apply Trans component to publish library dialogue #6564
-
Fix brave error i18n string and remove unused #6561
-
Revert add version tags to Docker build #6540
-
Don't refresh dimensions for text containers on font load #6523
-
Cleanup getMaxContainerHeight and getMaxContainerWidth #6519
-
Cleanup redrawTextBoundingBox #6518
-
Text jumps when editing on Android Chrome #6503
Styles
Refactor
-
Factor out shape generation from
renderElement.tspt 2 #6878 -
Add typeScript support to enforce valid translation keys #6776
-
Simplify
ImageExportDialog#6578
Performance
-
Limiting the suggested binding to fix performance issue #6877
-
Memoize rendering of library #6622
-
Improve rendering performance for Library #6587
-
Use
UIAppStatewhere possible to reduce UI rerenders #6560
Build
-
Increase limit for bundle by 1kb #6880
-
Update to node 18 in docker #6822
-
Migrate to Vite ๐ #6818
-
Migrate to Vite ๐ #6713
-
Increase limit to 290 kB for prod bundle #6809
-
Add version tags to Docker build #6508