* Add unit tests for restore.ts file
* Improving describe blocks in restore tests
* Move restore.tests.ts folder and remove depedency of UI in the tests
* Adding snapshots to restore.ts tests
* Using snapshot in freedraw test
* Updating description of test for line and draw elements
* Updating description of test for arrow element
* Improving restoreAppState tests
* specs cleanup
* fix
* fix
Co-authored-by: Aakansha Doshi <aakansha1216@gmail.com>
* feat: Add shortcuts for opening stroke and background color picker
* Use App.tsx keydown handler
* only get selectedElements if applicable (perf)
* fix tests and snaps
* reuse `appState.openMenu`
Co-authored-by: dwelle <luzar.david@gmail.com>
* feat: allow inner-drag-selecting with cmd/ctrl
* don't use cursor when pressing cmd/ctrl
* ensure we reset deselected groups
* add tests
* add docs
* couple fixes around group selection
* 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 2c8ec6be8eff7d308591467fe2c33cfbca16138f.
* 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>
* feat: Support hiding save, save as, clear & export
* Remove canvasActions from state & minor changes
* Rename prop to UIOptions & pass default value
* Make requested changes
* better type checking so that optional check not needed at every point
* remove optional checks
* Add few tests
* Add describe block for canvasActions & use snapshot tests
* Add support for hiding canvas background picker
* Take snapshot of canvasActions instead of the whole app
* Add support for hiding dark mode toggle
* Update README.md
* Rename table heading
* Update changelog
* Make requested changes
* Update test name
* tweaks
Co-authored-by: Aakansha Doshi <aakansha1216@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
* Update return type to reflect actual signature
* add tests
* Set getDimensions as optional
* add newlines between specs
* remove redundant assertion
* move fixtures to separate files
* Add spacing
* Move tests, add cases
* Add unit tests for package/utils exportToSvg
* extract default object in test
* Move test suite to new file
* 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>
* Allow updating name on updateScene
* Revert "Allow updating name on updateScene"
This reverts commit 4e07a608d38a585e0f3c04e26b9f5e0e404824b1.
* Make requested changes
* Make requested changes
* Remove customName from state
* Remove redundant if statement
* Add tests, update changelog and minor fixes
* remove eempty lines
* minor fixes
* no border and on hover no background change
* Give preference to name prop when initialData.appState.name is present and update specs
* minor fix
* Fix name input style in dark mode
Co-authored-by: Aakansha Doshi <aakansha1216@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
* support appearance when updating scene data
* works!
* whoops, missed a prop
* hide appearance button when prop is not set
* cleanup
* fix export + rename prop to theme
* rename to showThemeBtn, hide via react instead of css
* adapt to new state name
* add tests and css selector to target the dark mode toggle
* updated changelog and readme
* fix markdown rendering in readme
* pr feedback
* 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
* Remove copy & paste from context menu on desktop
* fix build
* Make requested changes
* More changes
* make into function
* update changelog
* fix tests
Co-authored-by: dwelle <luzar.david@gmail.com>