Introducing independent change detection for appState and elements
Generalizing object change, cleanup, refactoring, comments, solving typing issues
Shaping increment, change, delta hierarchy
Structural clone of elements
Introducing store and incremental API
Disabling buttons for canvas actions, smaller store and changes improvements
Update history entry based on latest changes, iterate through the stack for visible changes to limit empty commands
Solving concurrency issues, solving (partly) linear element issues, introducing commitToStore breaking change
Fixing existing tests, updating snapshots
Trying to be smarter on the appstate change detection
Extending collab test, refactoring action / updateScene params, bugfixes
Resetting snapshots
Resetting snapshots
UI / API tests for history - WIP
Changing actions related to the observed appstate to at least update the store snapshot - WIP
Adding skipping of snapshot update flag for most no-breaking changes compatible solution
Ignoring uncomitted elements from local async actions, updating store directly in updateScene
Bound element issues - WIP
* feat: add hand/panning tool
* move hand tool right of tool lock separator
* tweak i18n
* rename `panning` -> `hand`
* toggle between last tool and hand on `H` shortcut
* hide properties sidebar when `hand` active
* revert to rendering HandButton manually due to mobile toolbar
* save penMode and penDetected to browser cache
* added on pointer down
* added onPointerDown
* factor out and merge handlers
Co-authored-by: dwelle <luzar.david@gmail.com>
* feat: Allow publishing libraries from UI
* Add status for each library item and show publish only for unpublished libs
* Add publish library dialog
* Pass the data to publish the library
* pass lib blob
* Handle old and new libraries when importing
* Better error handling
* Show publish success when library submitted for review
* don't close library when publish success dialog open
* Support multiple libs deletion and publish
* Set status to published once library submitted for review
* Save to LS after library published
* unique key for publish and delete
* fix layout shift when hover and also highlight selected library items
* design improvements
* migrate old library to the new one
* fix
* fix tests
* use i18n
* Support submit type in toolbutton
* Use html5 form validation, add asteriks for required fields, add twitter handle, mark github handle optional
* Add twitter handle in form state
* revert html5 validation as fetch is giving some issues :/
* clarify types around LibraryItems
* Add website optional field
* event.preventDefault to make htm5 form validationw work
* improve png generation by drawing a bounding box rect and aligining pngs to support multiple libs png
* remove ts-ignore
* add placeholders for fields
* decrease clickable area for checkbox by 0.5em
* add checkbox background color
* rename `items` to `elements`
* improve checkbox hit area
* show selected library items in publish dialog
* decrease dimensions by 3px to improve jerky experience when opening/closing library menu
* Don't close publish dialog when clicked outside
* Show selected library actions only when any library item selected and use icons instead of button
* rename library to libraryItems in excalidrawLib and added migration
* change icon and swap bg/color
* use blue brand color for hover/selected states
* prompt for confirmation when deleting library items
* separate unpublished items from published
* factor `LibraryMenu` into own file
* i18n and minor fixes for unpublished items
* fix not rendering empty cells when library empty
* don't render published section if empty and unpublished is not
* Add edit name functionality for library items
* fix
* edit lib name with onchange/blur
* bump library version
* prefer response error message
* add library urls to ENV vars
* mark lib item name as required
* Use input only for lib item name
* better error validation for lib items
* fix label styling for lib items
* design and i18n fixes
* Save publish dialog data to local storage and clear once published
* Add a note about MIT License
* Add note for guidelines
* Add tooltip for publish button
* Show spinner in submit button when submission is in progress
* assign id for older lib items when installed and set status as published for all lib when installed
* update export icon and support export library for selected items
* move LibraryMenuItems into its own component as its best to keep one comp per file
* fix spec
* Refactoring the library actions for reusablility
* show only load when items not present
* close on click outside in publish dialog
* ad dialog description and tweak copy
* vertically center input labels
* align input styles
* move author name input to other usernames
* rename param
* inline to simplify
* fix to not inline `undefined` class names
* fix version & include only latest lib schema in library export type
* await response callback
* refactor types
* refactor
* i18n
* align casing & tweaks
* move ls logic to publishLibrary
* support removal of item inside publish dialog
* fix labels for trash icon when items selected
* replace window.confirm for removal libs with confirm dialog
* fix input/textarea styling
* move library item menu scss to its own file
* use blue for load and cyan for publish
* reduce margin for submit and make submit => Submit
* Make library items header sticky
* move publish icon to left so there is no jerkiness when unpublish items selected
* update url
* fix grid gap between lib items
* Mark older items imported from initial data as unpublished
* add text to publish button on non-mobile
* add items counter
* fix test
* show personal and excal libs sections and personal goes first
* show toast on adding to library via contextMenu
* Animate plus icon and not the pending item
* fix snap
* use i18n when no item in publish dialog
* tweak style of new lib item
* show empty cells for both sections and set status as published for installed libs
* fix
* push selected item first in unpublished section
* set status as published for imported from webiste but unpublished for json
* Add items to the begining of library
* add `created` library item attr
* fix test
* use `defaultValue` instead of `value`
* fix dark theme styles
* fix toggle button not closing library
* close library menu on Escape
* tweak publish dialog item remove style
* fix remove icon in publish dialog
Co-authored-by: dwelle <luzar.david@gmail.com>
* Allow updating name on updateScene
* Revert "Allow updating name on updateScene"
This reverts commit 4e07a608d3.
* 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>
* Implement Save without re-prompt and Save as
Fixes#1668
* Add save-as icon
* Make .excalidraw the default extension
* Only show save as button on supporting browsers
* support ToolIcon className and fix label padding
* factor some ExportDialog classes out to Modal
* initial RoomDialog prototype
* change label for another-session button
* remove unused css
* add color comments
* Move the collaboration button to the main menu, add support for mobile
* remove button for creating another session
* add locks
* Fix alignment issue
* Reorder button
* reuse current scene for collab session
* keep collaboration state on restore
Co-authored-by: Jed Fox <git@twopointzero.us>
* Make Undo & Redo and the menu buttons into actions; add undo/redo buttons
* Create variables for the ToolIcon colors
* Darken the menu buttons when they’re active
* Put the more intensive test in `perform`
* Fix & restyle hint viewer
* Add pinch zoom for macOS Safari
* Chrome/Firefox trackpad pinch zoom
* openedMenu → openMenu
* needsShapeEditor.ts → showSelectedShapeActions.ts
* Call showSelectedShapeActions
* Disable text selection
* Set content-editable=plaintext-only to disable Touch Bar formatting buttons
* Enlarge resize handle tap targets for pen/touch
* Make the lock button a button in mobile mode
* Use icons instead of Unicode characters; add an alternate toolbar for creating multipoint lines
* Allow buttons to hide themselves
* Fix heuristic for showing shape actions
* Refactor icons
* Fix label for edit button
* Switch edit button icon
* Remove lock button on mobile
* Add language selector on mobile
* Fix showing edit button on mobile
* Fix showing edit button on mobile, part 2
* Fix handle touch regions
* Fix scroll-back button position
* Allow using the text tool on a text object to start editing it
* Fix deletion of last point in line
* Initial support for mobile devices
No editing yet, but UI looks nice and you can open the canvas menu
* Add support for editing shape color, etc
* Allow the mobile menus to cover the shape selector
* Hopefully fix test error
* Fix touch on canvas
* Fix safe area handling & remove unused Island
* Add keybindings for shapes
I'm not 100% sure about this one. I feel like it's going to help people be a lot more productive to display the key bindings at all time. But it also clutters the UI...
* increase font-size
* fix shape keybindings for non-qwerty keyboards
* tweak position and color
Co-authored-by: David Luzar <luzar.david@gmail.com>
Improve the accessibility of our modals (the color picker and the export dialog)
Implement a focus trap so that tapping through the controls inside them don't escape to outer elements, it also allows to close the modals with the "Escape" key.
* Rename ToolIcon to ToolButton
It makes more semantic sense
* Label and keyboard shortcuts announcement
* Refactor common props for ToolButton
* Better doc outline and form controls
* Adjust color picker
* Styling fixes
Co-authored-by: Christopher Chedeau <vjeuxx@gmail.com>