* feat: Use dialog component for clear canvas instead of window confirm
* reduce font weight
* fix specs
* update button name and use action
* export clearCanvas from actions
* Use Theme type everywhere
* Rename Appearance type to Theme for consistency
* Reorder headers in readme
The host don't need to pass hardcoded strings any more and instead can use the exported constant
* docs: tweak changelog and readme
* moving to discussions :)
* Apply suggestions from code review
Co-authored-by: David Luzar <luzar.david@gmail.com>
* Add about attributes passed to updateScene
Co-authored-by: David Luzar <luzar.david@gmail.com>
* feat: support updating appState in updateScene API
* make `updateScene.data.appState` more type-safe
* restore `appState` when passing to `updateScene`
* fix
Co-authored-by: dwelle <luzar.david@gmail.com>
* fix: only hand cut/paste events inside excalidraw
* changelog
* check if excalidraw is active for copy event
* check if active element is part of excalidraw
* feat: dnt share library & attach to the excalidraw instance
* fix
* Add addToLibrary, resetLibrary and libraryItems in initialData
* remove comment
* handle errors & improve types
* remove resetLibrary and addToLibrary and add onLibraryChange prop
* set library cache to empty arrary on reset
* Add i18n for remove/add library
* Update src/locales/en.json
Co-authored-by: David Luzar <luzar.david@gmail.com>
* update docs
* Assign unique ID to
each excalidraw component and remove csrfToken from library as its not needed
* tweaks
Co-authored-by: David Luzar <luzar.david@gmail.com>
* update
* tweak
Co-authored-by: dwelle <luzar.david@gmail.com>
* fix: Bind keyboard events to excalidraw container
* fix cases around blurring
* fix modal rendering so keyboard shortcuts work on modal as well
* Revert "fix modal rendering so keyboard shortcuts work on modal as well"
This reverts commit 2c8ec6be8e.
* Attach keyboard event in react way so we need not handle portals separately (modals)
* dnt propagate esc event when modal shown
* focus the container when help dialog closed with shift+?
* focus the help icon when help dialog on close triggered
* move focusNearestTabbableParent to util
* rename util to focusNearestParent and remove outline from excal and modal
* Add prop bindKeyGlobally to decide if keyboard events should be binded to document and allow it in excal app, revert tests
* fix
* focus container after installing library, reset library and closing error dialog
* fix tests and create util to focus container
* Add excalidraw-container class to focus on the container
* pass focus container to library to focus current instance of excal
* update docs
* remove util as it wont be used anywhere
* fix propagation not being stopped for React keyboard handling
* tweak reamde
Co-authored-by: David Luzar <luzar.david@gmail.com>
* tweak changelog
* rename prop to handleKeyboardGlobally
Co-authored-by: dwelle <luzar.david@gmail.com>
* Remove width/height from the ".excalidraw" container so it will sized automatically.
* updated all ref calculation to ".excalidraw" instead of parent since now ".excalidraw" will get resized
* Remove props width/height as its not needed anymore.
* Resize handler is also not needed anymore.
* Position absolute canvas due to #3379 (comment)
* move css to style and remove one extra rerendering
* factor out mock logic for test
* set height, width so as to avoid unnecessary updates of regression snap
* better mock
* better type checking and omit width,height from getDefaultAppState and also restore
* revert
* default to window dimensions in constructor
* update docs
* update
* update
* tweaks
* feat: export types for package @excalidraw/excalidraw
* update
* remove
* Add lib in tsconfig-types and Add global.d.ts, and errors down to 39 :)
* Add declaration for scss so typescript allows scss imports, errors down to 37 :)
* Add css.d.ts, errors down to 32 yay
* set target to es6, all errors resolved yay
* move types outside dist
* update docs
* fix
* feat: Add renderCustomStats prop to render extra stats & move storage and version to renderCustomStats
* expose Api to update toast message so single instance of toast is used
* rename to setToastMessage
* update docs
* feat: set window.name in excalidraw app so library installation always opens on same tab & also support target for excalidraw libraries
* update changelog and readme
* Update public/index.html
Co-authored-by: David Luzar <luzar.david@gmail.com>
* use level 4 heading
* Update src/packages/excalidraw/README.md
Co-authored-by: David Luzar <luzar.david@gmail.com>
Co-authored-by: David Luzar <luzar.david@gmail.com>
* feat: Add label for name field and use input when editable in export dialog
* fix
* review fix
* dnt allow to edit file name when view mode
* Update src/components/ProjectName.tsx
Co-authored-by: David Luzar <luzar.david@gmail.com>
Co-authored-by: David Luzar <luzar.david@gmail.com>
* feat: Expose the API to calculate offsets and remove offsetTop and offsetLeft props
* update
* fix tests
* fix
* update readme and changelog
* fix
* better
* fix: Position text editor absolute and fix the offsets so it doesn't remain fixed when container is scrolled
* update changelog
* Update src/packages/excalidraw/CHANGELOG.md
* fix: wrap excalidraw in position relative so that host need not add it explicitly to fix positioning when non zero offsets
* patch version
* Hide scrollbars on excalidraw container
* remove overflow hidden from index.html since its handled in excalidraw container
* review fix
* update changelog
* fix: Reduce the scroll debounce timeout to 100ms so offsets get updated faster when the container scrolled
fixes https://github.com/excalidraw/excalidraw/issues/3175
* update changelog
* update offsets only when if it changes
* up
* Update src/components/App.tsx
Co-authored-by: David Luzar <luzar.david@gmail.com>
* fix: Use Array.from when spreading over set so that typescript transpiles correctly in the umd build
* patch version
* fix
* update changelog
* tweak
* feat: expose variable window.EXCALIDRAW_ASSET_PATH to allow host define the path for excalidraw assets
No more __webpack_public_path__ needed explicitly in host and it will default to unpkg cdn if window.EXCALIDRAW_ASSET_PATH is not defined
* fix
* add public path
* add public path
* assign only when env not test
* read from package.json
* Append content hash to excalidraw-assets so cache bursting happens when version update
* update changelog and readme
* update
* feat: Add support for scrollToCenter in initialData so host can control whether to scroll to center on mount
* fix
* update changelog and readme
* fix
* Scroll to center only for collab and shareable links in excalidraw app
* fix test
* update readme
* Update src/packages/excalidraw/README.md
* refactor: remove position fixed from excalidraw container, modal and stats
* remove unused css
* remove position fixed from toast and scroll to content
* Make excal interactable by fixing offsets and set popover as fixed since position needs to be calculate from viewport top
* Assign 200px less than height of Excalidraw to the selected shapes actions o UI doesn't overflow
* update changelog, readme and package.json
* build(webpack): remove publicPath so __webpack_public_path__ can be use to host assets
* update readme and changelog
* fix
* revert version so its released in v3
* fix: pass default value for grid mode / zen mode so it sets the value from initialData appState
fixes#2870
* change checked from boolean to be a function which recieves appState and returns boolean
* fix
* use clsx
Co-authored-by: dwelle <luzar.david@gmail.com>