* Upgrade Node.js base image to version 24-alpine
Current dockerfile fails to build. Updating Node.js base image from version 20 to 24 brings it to the current LTS and builds successfully for me.
* removed unnecessary yarn install step
When zooming in and panning the Viewport while a Selection is active, if a bucket fill or stroke operation is used, only the visible area of the Selection is filled.
This should be updated to fill the full area, even the out of visual bounds area.
This changeset also fixes an issue where stroke width would be applied differently at different zoom levels.
Select boxes are fine to use in desktop / large screen modes, but on mobile the select boxes in the docked bottom panel will extend beyond the visible page range, obscuring their contents.
Fixed issue where shift clicking to select a Layer range was broken
Moved text tool position before transform tools
Fixed issue where corner handles would render in the wrong color
Working with selections on touch screen devices (especially phones) is very cumbersome to get right.
This changeset introduces corner handles for rectangular selections. Once a selection is created, each corner has a handle from which the selection can be resized.
This also addresses a state history bug when stepping through changes to selections.
When the pan or drag tools are selected (or a selection is active) the keyboard shortcuts in the layer panel would not allow navigating the layers list.
When the layer panel is focused no outside keyboard shortcuts should be captured.
When the DRAG tool is active while there is an active selection, when dragging starts, the contents of the selection should be cut from the currently active Layer and be pasted as a new Layer, which will continue the drag.
Split `definitions/document.ts` into unique files per actor type.
Create `model` folder to store the above types, their factories and the state changing actions.
When merging a layer down / flattening the layers in a Timeline Document, it is more logical if this is done for the currently active Tile group, instead of the whole Document.
Tiles in a timeline cannot be reordered after creation, which can be a little cumbersome.
Implement draggable tiles allowing the user to reorder tiles at any moment.
Long overdue.
State history would only work for the active Document. When opening a new Document (without closing the existing one), the state history would be flushed and initiated anew for every change made in the currently focused Document.
This changeset introduces a state history unique to the Document, meaning you can switch between open Documents and maintain the history associated with your changes.
Simple copy/cut/paste operations were not supported for selected Layers. Further more, only a single selected Layer at a time was supported.
We now support multi select using shift + click. Copy pasting content now also works across timeline tiles for easier editing.