Maintenance
- Refactored the plugin by removing unused functions and improving code structure and readability. Removed the obsolete Draw.io/Diagram plugin integration and retired the Create DrawIO file script.
- Migrated the embedded Excalidraw runtime from the retired UMD build to a dedicated ESM-source-based Obsidian package while preserving offline operation, popout windows, and runtime Mermaid loading through Excalidraw Extras. The Assistant UI font is now bundled, and the plugin-private React runtime is generated from the official npm package entrypoints.
- Updated the plugin-private React and ReactDOM runtime to React 19.
Fixed
- The Excalidraw color palette now uses its natural height when space is available instead of being unnecessarily limited to a short, vertically scrolling panel. Its native color control also remains aligned with the hex input.
- Restored the text-to-diagram chat history menu, allowing saved chats to be restored and deleted.
- Stencil libraries are now persisted with tab-indented JSON to support Git diffs. [#2883](#2883)
- Custom color-picker top picks are now saved with the drawing instead of being forgotten on reload.
- Fixed the color-picker popover theme becoming out of sync after changing the canvas background color.
New from Excalidraw.com
- Improved bucket tool and eyedropper support. [#11849](excalidraw/excalidraw#11849)
- Lasso selection now respects box selection mode (contain vs. overlap). [#11862](excalidraw/excalidraw#11862)
- Color-picker top picks can now be customized by dragging a color from the palette onto the strip; right-click the strip to reset. [#11872](excalidraw/excalidraw#11872)
New in Excalidraw Automate
- Scripts can now register custom buttons in the selected-element context menu (the small toolbar shown above a selected element):
registerElementActionProvider(
getActions: (element: ExcalidrawElement) =>
readonly {
id: string;
title: string;
icon: string;
action: () => void;
}[]
): (() => void) | null;- Scripts can now request automatic re-running whenever a new Excalidraw view is opened, with a user-confirmed Allow / Deny / Ask me later prompt. A fresh Allow also attaches the script to all other currently open views. Manage autostart permissions from the Autostart scripts command or Compatibility settings:
registerAutostart(): Promise<"allow" | "deny" | "pending">;What's Changed
- stencil library formatted with 2 spaces by @dimateos in #2884
- Feat: Custom elements menu by @zsviczian in #2890
- Fix @excalidraw/common type resolution, eliminating a huge any-collapse by @zsviczian in #2892
New Contributors
Full Changelog: 2.27.0-beta.1...2.27.0-beta.2