-
-
Notifications
You must be signed in to change notification settings - Fork 135
fix(deps): update dependency @excalidraw/excalidraw to ^0.18.0 #1574
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/excalidraw-excalidraw-0.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+2,300
−380
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1574 +/- ##
==========================================
+ Coverage 63.49% 63.51% +0.02%
==========================================
Files 323 323
Lines 37067 37067
==========================================
+ Hits 23535 23543 +8
+ Misses 11582 11571 -11
- Partials 1950 1953 +3
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
31cbf4c
to
4b373f2
Compare
4b373f2
to
e9d8465
Compare
e9d8465
to
a36f34e
Compare
a36f34e
to
c459ebe
Compare
c459ebe
to
325bc64
Compare
325bc64
to
cfde110
Compare
cfde110
to
82a7d05
Compare
82a7d05
to
5765ab9
Compare
5765ab9
to
1166768
Compare
1166768
to
720aba9
Compare
720aba9
to
f358b46
Compare
f358b46
to
2ca4e42
Compare
2ca4e42
to
d3215e5
Compare
d3215e5
to
3559332
Compare
3559332
to
09030cc
Compare
09030cc
to
78f66b4
Compare
78f66b4
to
7ba1bf4
Compare
7ba1bf4
to
899feed
Compare
899feed
to
d40c0bb
Compare
d40c0bb
to
862b774
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
auto-update
This PR was automatically generated
no-release
Do not create a new release (wait for additional code changes)
size/xs
Extra small size PR
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^0.17.6
->^0.18.0
Release Notes
excalidraw/excalidraw (@excalidraw/excalidraw)
v0.18.0
: (2025-03-11)Compare Source
Excalidraw Library
0.18.0 (2025-03-11)
Highlights
Command palette #7804
Multiplayer undo / redo #7348
Editable element stats #6382
Text element wrapping #7999
Font picker with more fonts #8012
Font for Chinese, Japanese, and Korean #8530
Font subsetting for SVG export #8384
Elbow arrows #8299, #8952
Flowcharts #8329
Scene search #8438
Image cropping #8613
Element linking #8812
Breaking changes
Deprecated UMD bundle in favor of ES modules #7441, #9127
We've transitioned from
UMD
toESM
bundle format. Our newdist
folder inside@excalidraw/excalidraw
package now contains only bundled source files, making any dependencies tree-shakable. The package comes with the following structure:Make sure that your JavaScript environment supports ES modules. You may need to define
"type": "module"
in yourpackage.json
file or as part of the<script type="module" />
attribute.Typescript: deprecated "moduleResolution":
"node"
or"node10"
Since
"node"
and"node10"
do not supportpackage.json
"exports"
fields, having these values in yourtsconfig.json
will not work. Instead, use"bundler"
,"node16"
or"nodenext"
values. For more information, see Typescript's documentation.ESM strict resolution
Due to ESM's strict resolution, if you're using Webpack or other bundler that expects import paths to be fully specified, you'll need to disable this feature explicitly.
For example in Webpack, you should set
resolve.fullySpecified
tofalse
.For this reason, CRA will no longer work unless you eject or use a workaround such as craco.
New structure of the imports
Depending on the environment, this is how imports should look like with the
ESM
:With bundler (Vite, Next.js, etc.)
Without bundler (Browser)
Deprecated
excalidraw-assets
andexcalidraw-assets-dev
folders #8012, #9127The
excalidraw-assets
andexcalidraw-assets-dev
folders, which contained locales and fonts, are no longer used and have been deprecated.Locales
Locales are no longer treated as static
.json
assets but are transpiled withesbuild
directly to the.js
as ES modules. Note that some build tools (i.e. Vite) may require settinges2022
as a build target, in order to support "Arbitrary module namespace identifier names", e.g.export { english as "en-us" } )
.Fonts
All fonts are automatically loaded from the esm.run CDN. For self-hosting purposes, you'll have to copy the content of the folder
node_modules/@​excalidraw/excalidraw/dist/prod/fonts
to the path where your assets should be served from (i.e.public/
directory in your project). In that case, you should also setwindow.EXCALIDRAW_ASSET_PATH
to the very same path, i.e./
in case it's in the root:or, if you serve your assets from the root of your CDN, you would do:
or, if you prefer the path to be dynamically set based on the
location.origin
, you could do the following:Deprecated
commitToHistory
in favor ofcaptureUpdate
inupdateScene
API #7348, #7898The
updateScene
API has changed due to the addedStore
component, as part of the multiplayer undo / redo initiative. Specifically, optionalsceneData
parametercommitToHistory: boolean
was replaced with optionalcaptureUpdate: CaptureUpdateActionType
parameter. Therefore, make sure to update all instances ofupdateScene
, which usecommitToHistory
parameter according to the before / after table below.commitToHistory
(before)captureUpdate
(after)true
CaptureUpdateAction.IMMEDIATELY
false
(default)CaptureUpdateAction.EVENTUALLY
(default)CaptureUpdateAction.IMMEDIATELY
- triggered either by the nextupdateScene
or internally by the editor. These updates will eventually make it to the local undo / redo stacks.CaptureUpdateAction.NEVER
CaptureUpdateAction.NEVER
for updates which should never be recorded, such as remote updates or scene initialization. These updates will never make it to the local undo / redo stacks.Other
ExcalidrawTextElement.baseline
was removed and replaced with a vertical offset computation based on font metrics, performed on each text element re-render. In case of custom font usage, extend theFONT_METRICS
object with the related properties. #7693ExcalidrawEmbeddableElement.validated
was removed and moved to the private editor state. This should largely not affect your apps unless you were reading from this attribute. We keep validating embeddable urls internally, and the publicprops.validateEmbeddable
still applies. #7539Stats container CSS has changed, so if you're using
renderCustomStats
, you may need to adjust your styles to retain the same layout. #8361<DefaultSidebar />
triggers are now always merged with host app triggers, rendered through<DefaultSidebar.Triggers/>
.<DefaultSidebar.Triggers/>
no longer accepts any props other than children. #8498Features
Prefer user defined coordinates and dimensions when creating a frame using
convertToExcalidrawElements
#8517props.initialData
can now be a function that returnsExcalidrawInitialDataState
orPromise<ExcalidrawInitialDataState>
#8107MainMenu.DefaultItems.ToggleTheme
now supportsonSelect(theme: string)
callback, and optionallyallowSystemTheme: boolean
alongsidetheme: string
to indicate you want to allow users to set to system theme (you need to handle this yourself) #7853Add
useHandleLibrary
'sopts.adapter
as the new recommended pattern to handle library initialization and persistence on library updates #7655Add
useHandleLibrary
'sopts.migrationAdapter
adapter to handle library migration during init, when migrating from one data store to another (e.g. from LocalStorage to IndexedDB) #7655Add
onPointerUp
prop #7638Expose
getVisibleSceneBounds
helper to get scene bounds of visible canvas area #7450Soft-deprecate
useHandleLibrary
'sopts.getInitialLibraryItems
in favor ofopts.adapter
. #7655Extended
window.EXCALIDRAW_ASSET_PATH
to accept array of pathsstring[]
as a value, allowing to specify multiple baseURL
fallbacks. #8286Custom text metrics provider #9121
Add
props.onDuplicate
#9117Change empty arrowhead icon #9100
Tweak slider colors to be more muted #9076
Improve library sidebar performance #9060
Implement custom Range component for opacity control #9009
Box select frame & children to allow resizing at the same time #9031
Allow installing libs from excal github #9041
Update jotai #9015
Do not delete frame children on frame delete #9011
Add action to wrap selected items in a frame #9005
Reintroduce
.excalidraw.png
default when embedding scene #8979Add mimeTypes on file save #8946
Add crowfoot to arrowheads #8942
Make HTML attribute sanitization stricter #8977
Validate library install urls #8976
Cleanup svg export and move payload to
<metadata>
#8975Use stats panel to crop #8848
Snap when cropping as well #8831
Update blog url #8767
Export scene to e+ on workspace creation/redemption #8514
Added sitemap & fixed robot txt #8699
Do not strip unknown element properties on restore #8682
Added reddit links as embeddable #8099
Self-hosting existing google fonts #8540
Flip arrowheads if only arrow(s) selected #8525
Common elbow mid segments #8440
Merge search sidebar back to default sidebar #8497
Smarter zooming when scrolling to match & only match on search/switch #8488
Reset copyStatus on export dialog settings change #8443
Tweak copy button success animation #8441
Enable panning/zoom while in wysiwyg #8437
Visual debugger #8344
Improve elbow arrow keyboard move #8392
Rewrite d2c to not require token #8269
Split
gridSize
from enabled state & support customgridStep
#8364Improve zoom-to-content when creating flowchart #8368
Stats popup style tweaks #8361
Remove automatic frame naming #8302
Ability to debug the state of fractional indices #8235
Improve mermaid detection on paste #8287
Upgrade mermaid-to-excalidraw to v1.1.0 #8226
Bump max file size #8220
Smarter preferred lang detection #8205
Support Stats bound text
fontSize
editing #8187Paste as mermaid if applicable #8116
Stop autoselecting text on text edit on mobile #8076
Create new text with width #8038
Wrap long text when pasting #8026
Upgrade to mermaid-to-excalidraw v1 🚀 #8022
Rerender canvas on focus #8035
Add missing
type="button"
#8030Add install-PWA to command palette #7935
Tweak a few icons & add line editor button to side panel #7990
Allow binding only via linear element ends #7946
Resize elements from the sides #7855
Record freedraw tool selection to history #7949
Export reconciliation #7917
Add "toggle grid" to command palette #7887
Fractional indexing #7359
Show firefox-compatible command palette shortcut alias #7825
Upgrade mermaid-to-excalidraw to 0.3.0 #7819
Support to not render remote cursor & username #7130
Expose more collaborator status icons #7777
Close dropdown on escape #7750
Text measurements based on font metrics #7693
Improve collab error notification #7741
Grouped together Undo and Redo buttons on mobile #9109
Remove GA code from binding #9042
Load old library if migration fails
Change LibraryPersistenceAdapter
load()
source
->priority
Fixes
Fix inconsistency in resizing while maintaining aspect ratio #9116
IFrame and elbow arrow interaction fix #9101
Duplicating/removing frame while children selected #9079
Elbow arrow z-index binding #9067
Library item checkbox style regression #9080
Elbow arrow orthogonality #9073
Button bg CSS variable leaking into other styles #9075
Fonts not loading on export (again) #9064
Merge server-side fonts with liberation sans #9052
Hyperlinks html entities #9063
Remove flushSync to fix flickering #9057
Excalidraw issue #9045 flowcharts: align attributes of new node #9047
Align arrows bound to elements #8833 #8998
Update elbow arrow on font size change #8798 #9002
Undo for elbow arrows create incorrect routing #9046
Flowchart clones the current arrowhead #8581
Adding partial group to frame #9014
Do not refocus element link input on unrelated updates #9037
Arrow binding behaving unexpectedly on pointerup #9010
Change cursor by tool change immediately #8212
Package build fails on worker chunks #8990
Z-index clash in mobile UI #8985
Elbow arrows do not work within frames (issue: #8964) #8969
NormalizeSVG width and height from viewbox when size includes decimal points #8939
Make arrow binding area adapt to zoom levels #8927
Robust
state.editingFrame
teardown #8941Regression on dragging a selected frame by its name #8924
Right-click paste for images in clipboard (Issue #8826) #8845
Fixed image transparency by adding alpha option to preserve image alpha channel #8895
Flush pending DOM updates before .focus() #8901
Normalize svg using only absolute sizing #8854
Element link selector dialog z-index & positioning #8853
Update old blog links & add canonical url #8846
Optimize frameToHighlight state change and snapLines state change #8763
Make some events expllicitly active to avoid console warnings #8757
Unify binding update options for
updateBoundElements()
#8832Cleanup scripts and support upto node 22 #8794
Usage of
node12 which is deprecated
#8791Remove manifest.json #8783
Load env vars correctly and set debug and linter flags to false explicitly in prod mode #8770
Console error in dev mode due to missing font path in non-prod #8756
Text pushes UI due to padding #8745
Fix trailing line whitespaces layout shift #8714
Load font faces in Safari manually #8693
Restore svg image DataURL dimensions #8730
Image cropping svg + compat mode #8710
Usage of
node12 which is deprecated
#8709Image render perf #8697
Undo/redo action for international keyboard layouts #8649
Comic Shanns issues, new fonts structure #8641
Remove export-to-clip-as-svg shortcut for now #8660
Text disappearing on edit #8558 (#8624)
Elbow arrow fixedpoint flipping now properly flips on inverted resize and flip action #8324
Svg and png frame clipping cases #8515
Re-route elbow arrows when pasted #8448
Buffer dependency #8474
Linear element complete button disabled #8492
Aspect ratios of distorted images are not preserved in SVG exports #8061
WYSIWYG editor padding is not normalized with zoom.value #8481
Improve canvas search scroll behavior further #8491
AddFiles clears the whole image cache when each file is added - regression from #8471 #8490
select
instead offocus
search input #8483Image rendering issue when passed in
initialData
#8471Add partial mocking #8473
PropertiesPopover maxWidth changing fixed units to relative units #8456
View mode wheel zooming does not work #8452
Fixed copy to clipboard button #8426
Context menu does not work after after dragging on StatsDragInput #8386
Perf regression in
getCommonBounds
#8429Object snapping not working #8381
Reimplement rectangle intersection #8367
Round coordinates and sizes for rectangle intersection #8366
Text content with tab characters act differently in view/edit #8336
Drawing from 0-dimension canvas #8356
Disable flowchart keybindings inside inputs #8353
Yet more patching of intersect code #8352
Missing
act()
in flowchart tests #8354Z-index change by one causes app to freeze #8314
Patch over intersection calculation issue #8350
Point duplication in LEE on ALT+click #8347
Do not allow resizing unbound elbow arrows either #8333
Docker build in CI #8312
Duplicating arrow without bound elements throws error #8316
CVE-2023-45133 #7988
Throttle fractional indices validation #8306
Allow binding elbow arrows to frame children #8309
Skip registering font faces for local fonts #8303
Load fonts for
exportToCanvas
#8298Re-add Cascadia Code with ligatures #8291
Linear elements not selected on pointer up from hitting its bound text #8285
Revert default element canvas padding change #8266
Freedraw jittering #8238
Messed up env variable #8231
Log allowed events #8224
Memory leak - scene.destroy() and window.launchQueue #8198
Stop updating text versions on init #8191
Add binding update to manual stat changes #8183
Binding after duplicating is now applied for both the old and duplicate shapes #8185
Incorrect point offsetting in LinearElementEditor.movePoints() #8145
Stats state leaking & race conds #8177
Only bind arrow #8152
Repair invalid binding on restore & fix type check #8133
Wysiwyg blur-submit on mobile #8075
Restore linear dimensions from points #8062
Lp plus url #8056
Fix twitter og image #8050
Flaky snapshot tests with floating point precision issues #8049
Always re-generate index of defined moved elements #8040
Undo/redo when exiting view mode #8024
Two finger panning is slow #7849
Compatible safari layers button svg #8020
Correctly resolve the package version #8016
Re-introduce wysiwyg width offset #8014
Font not rendered correctly on init #8002
Command palette filter #7981
Remove unused param from drawImagePlaceholder #7991
Docker build of Excalidraw app #7430
Typo in doc api #7466
Use Reflect API instead of Object.hasOwn #7958
CTRL/CMD & arrow point drag unbinds both sides #6459 (#7877)
Z-index for laser pointer to be able to draw on embeds and such #7918
Double text rendering on edit #7904
Collision regressions from vector geometry rewrite #7902
Correct unit from 'eg' to 'deg' #7891
Allow same origin for all necessary domains #7889
Always make sure we render bound text above containers #7880
Parse embeddable srcdoc urls strictly #7884
Hit test for closed sharp curves #7881
Gist embed allowing unsafe html #7883
Command palette tweaks and fixes #7876
Include borders when testing insides of a shape #7865
External link not opening #7859
Add safe check for arrow points length in tranformToExcalidrawElements #7863
Import #7869
Theme toggle shortcut
event.code
#7868Remove incorrect check from index.html #7867
Stop using lookbehind for backwards compat #7824
Ejs support in html files #7822
excalidrawAPI.toggleSidebar
not switching between tabs correctly #7821Correcting Assistant metrics #7758
Add missing font metrics for Assistant #7752
Export utils from excalidraw package in excalidraw library #7731
Split renderScene so that locales aren't imported unnecessarily #7718
Remove dependency of t in blob.ts #7717
Remove dependency of t from clipboard and image #7712
Remove scene hack from export.ts & remove pass elementsMap to getContainingFrame #7713
Decouple pure functions from hyperlink to prevent mermaid bundling #7710
Make bounds independent of scene #7679
Make LinearElementEditor independent of scene #7670
Remove scene from getElementAbsoluteCoords and dependent functions and use elementsMap #7663
Remove t from getDefaultAppState and allow name to be nullable #7666
Stop using structuredClone #9128
Fix elbow arrow fixed binding on restore #9197
Cleanup legacy
element.rawText
(obsidian) #9203React 18 element.ref was accessed error #9208
Docked sidebar width #9213
Arrow updated on both sides #8593
Package env vars #9221
Bound elbow arrow on duplication does not route correctly #9236
Do not rebind undragged elbow arrow endpoint #9191
Logging and fixing extremely large scenes #9225
Refactor
Remove
defaultProps
#9035Separate resizing logic from pointer #8155
point()
->pointFrom()
to fix compiler issue #8578Rename example
App.tsx
->ExampleApp.tsx
#8501Remove unused env variable #8457
Rename
draggingElement
->newElement
#8294Update collision from ga to vector geometry #7636
Performance
Improved pointer events related performance when the sidebar is docked with a large library open #9086
Reduce unnecessary frame clippings #8980
Improve new element drawing #8340
Cache the temp canvas created for labeled arrows #8267
Build
Set PWA flag in dev to false #8788
Add a flag VITE_APP_ENABLE_PWA for enabling pwa in dev environment #8784
Upgrade vite to 5.4.x, vitest to 2.x and related vite packages #8459
Add example apps
public
and vitedev-dist
to eslintignore #8326Add
rm:build
,rm:node_modules
&clean-install
scripts #8323Update release script to build esm #8308
Run tests on master branch #8072
Specify
packageManager
field #8010Enable consistent type imports eslint rule #7992
Export types for @excalidraw/utils #7736
Create ESM build for utils package 🥳 #7500
Upgrade to react@19 #9182
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.