Igor Zinken
1c39d482a6
Slight optimization to export window
2026-04-04 09:11:52 +02:00
Igor Zinken
b347321c89
Create new pixel brush, fill and draw operations on pixel art now no longer have aliased edges
2026-04-04 09:08:50 +02:00
Igor Zinken
c42cd0e662
Round selections in pixel art mode for consistency and more clear draw operations
2026-04-03 21:23:07 +02:00
Igor Zinken
aef7e7ad0b
Keep selection outline animation speed more consistent across zoom levels
2026-04-03 21:01:01 +02:00
Igor Zinken
ace84b2e5b
Adjust menu outline on large screens with single button width toolbox
2026-04-03 20:24:18 +02:00
Igor Zinken
111046f05f
Remove rudimentary, conflicting escape listener in keyboard service
2026-03-30 22:59:41 +02:00
dependabot[bot]
b98bb1ab70
Bump the npm_and_yarn group across 1 directory with 2 updates ( #85 )
...
Bumps the npm_and_yarn group with 2 updates in the / directory: [picomatch](https://github.com/micromatch/picomatch ) and [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser ).
Updates `picomatch` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/micromatch/picomatch/releases )
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md )
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4 )
Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases )
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md )
- [Commits](https://github.com/micromatch/picomatch/compare/4.0.3...4.0.4 )
Updates `fast-xml-parser` from 5.4.1 to 5.5.8
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases )
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md )
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.4.1...v5.5.8 )
---
updated-dependencies:
- dependency-name: picomatch
dependency-version: 4.0.4
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: picomatch
dependency-version: 2.3.2
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: fast-xml-parser
dependency-version: 5.5.8
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-30 21:32:53 +02:00
dependabot[bot]
f8fdb6a8cd
Bump flatted in the npm_and_yarn group across 1 directory ( #82 )
...
Bumps the npm_and_yarn group with 1 update in the / directory: [flatted](https://github.com/WebReflection/flatted ).
Updates `flatted` from 3.3.3 to 3.4.2
- [Commits](https://github.com/WebReflection/flatted/compare/v3.3.3...v3.4.2 )
---
updated-dependencies:
- dependency-name: flatted
dependency-version: 3.4.2
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-30 21:28:51 +02:00
Igor Zinken
b5e62020fb
Fixed broken Dropbox integration
2026-03-28 18:46:12 +01:00
Igor Zinken
35e7fa195f
Declutter global styles
2026-03-28 18:11:23 +01:00
Igor Zinken
e787663e51
Small quality of life improvements with regards to styling
2026-03-28 15:38:19 +01:00
Igor Zinken
a75ba07556
Catch NPE on selection update
2026-03-28 15:07:33 +01:00
Igor Zinken
40b66bb21f
Rebuild all thumbnails when toggling the thumbnail display on
2026-03-28 15:07:14 +01:00
Igor Zinken
075c9f7a0d
Rename action to be in line with format
2026-03-28 07:52:33 +01:00
Igor Zinken
e6ea6ea23f
Sync tile cache when performing tile add/clone/delete operations
2026-03-28 07:46:44 +01:00
Igor Zinken
b311434156
Small images are now shown scaled up in export window
2026-03-27 22:18:39 +01:00
Igor Zinken
8acf7f4730
Add Document properties edit window
2026-03-27 21:34:59 +01:00
Igor Zinken
1712ba2068
Shuffling layer order now triggers a tile re-render
2026-03-27 19:21:04 +01:00
Igor Zinken
f37cf84ea4
Fix issue where moving between documents would not have a selected tile for a timeline document
2026-03-27 19:08:49 +01:00
Igor Zinken
b605317578
Optimised carbon copy rendering. Omit rendering Document background for carbon copy
2026-03-27 18:50:49 +01:00
Igor Zinken
3999c018e9
Unified crisp pixel rendering across rendering pipelines
2026-03-27 18:12:28 +01:00
Igor Zinken
baa00dc644
Add timeline mode for animation support ( #83 )
...
### Motivation
In order to be more useful as a spritesheet editor, BitMappery now contains a timeline view, a mode where content can be sub grouped into tiles, where each subsequent tile can be traced over the previous one. Each tile can have multiple layers of content for ease of editing.
### Changes
* Introduced Document types `default` and `timeline`
* Introduced LayerRef types (allow grouping Layers)
* Introduced Timeline view for tile based drawing and tracing
* Introduced Document background color (omits need to create background layer for each tile in a timeline)
* Cleaned up some legacy overrides made superfluous by newer dependencies
* Added document presets to document creation flow
### Commits
* Add rel to Layer structure
* Add Document type
* Initial scaffold for timeline view.
* Added initial utility to manage timelines
* Added action to clone all Layers in a tile group
* Moved Layer cloning to layer-util
* Converted zoom tool option panel to TypeScript
* Added action to add a new tile and layer to the Document
* Added action to remove a tile and its layers from the Document
* Added Layer grouping property to Document structure
* Update type check for test
* Initial timeline panel outline
* Created tiles now match Document dimensions
* Added tile cache
* Allow showing a semi transparent carbon copy trace of the previous tile
* Add animation preview window
* Add fps control to animation preview
* Store metadata property inside Documents (allows storing timeline framerate)
* Optimise mobile view for timeline
* Keep thumbnail ratios when previewing tiles and animations
* Button and animation preview window styling
* use RAF-based animation timing in animation preview
* Changes made to layer content now trigger a re-render of the Group tile
* Update Layer reordering logic to also work with subsets
* Optimised animated GIF export, updated pixel art definitions to be more sensible
* Code cleanups
* Added background color to Documents, omitting the need for a background layer on each animation tile
* Removing temp code, updating renderer factory test
* Update layer styling, added tooltip on drag behaviour
* Added document DPI and size unit to meta data
* Refactored deprecated event property from modal key handler
* Remove unused properties from animation preview window
* Update unit test for renderer factory
* Fix bug where closing modals would trigger click on canvas
* Add presets for all Document types
* Added setting to automatically choose appropriate anti-alias setting
* Invalidate tile and thumbnail caches on resize and crop functions. Adjust spritesheet export behaviour
2026-03-26 18:47:05 +01:00
Igor Zinken
4e8631d758
Prevent bounce when scrolling in export window preview using touch pad
2026-03-25 17:45:33 +01:00
Igor Zinken
5fd0502f08
Use ZoomableCanvas subclass instead of zCanvas class when creating temporary draw canvas
2026-03-21 15:07:34 +01:00
Igor Zinken
712c7abd71
Add layer preview thumbnails to layers panel ( #84 )
...
### Motivation
It'd be great if we could see a small thumbnail preview in the layers panel to more easily distinguish between layers visually.
In this changeset we introduce the thumbnail cache. When enabled, each layer is represented by a thumbnail which can be requested from multiple subscribed consumers (currently only the layer panel).
Thumbnail updates are deferred to keep CPU usage low and performance high.
2026-03-21 14:57:28 +01:00
Igor Zinken
9ae83c6402
Update Google Fonts consent message
2026-03-21 14:34:21 +01:00
dependabot[bot]
004b6afb68
Bump the npm_and_yarn group across 1 directory with 2 updates ( #80 )
...
Bumps the npm_and_yarn group with 2 updates in the / directory: [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser ) and [immutable](https://github.com/immutable-js/immutable-js ).
Updates `fast-xml-parser` from 5.3.6 to 5.4.1
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases )
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md )
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.3.6...v5.4.1 )
Updates `immutable` from 5.1.4 to 5.1.5
- [Release notes](https://github.com/immutable-js/immutable-js/releases )
- [Changelog](https://github.com/immutable-js/immutable-js/blob/main/CHANGELOG.md )
- [Commits](https://github.com/immutable-js/immutable-js/compare/v5.1.4...v5.1.5 )
---
updated-dependencies:
- dependency-name: fast-xml-parser
dependency-version: 5.4.1
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: immutable
dependency-version: 5.1.5
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 11:08:39 +01:00
Igor Zinken
c321d04374
Fix issue where history state factory would not store reference to pending timeouts
2026-03-03 21:25:09 +01:00
Igor Zinken
6a43e04db3
Improved scrollbar control
2026-03-01 18:22:49 +01:00
dependabot[bot]
b9daa84f9a
Bump the npm_and_yarn group across 1 directory with 2 updates ( #79 )
...
Bumps the npm_and_yarn group with 2 updates in the / directory: [minimatch](https://github.com/isaacs/minimatch ) and [rollup](https://github.com/rollup/rollup ).
Updates `minimatch` from 3.1.2 to 3.1.5
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md )
- [Commits](https://github.com/isaacs/minimatch/compare/v3.1.2...v3.1.5 )
Updates `rollup` from 4.57.1 to 4.59.0
- [Release notes](https://github.com/rollup/rollup/releases )
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rollup/rollup/compare/v4.57.1...v4.59.0 )
---
updated-dependencies:
- dependency-name: minimatch
dependency-version: 3.1.5
dependency-type: indirect
dependency-group: npm_and_yarn
- dependency-name: rollup
dependency-version: 4.59.0
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 07:05:18 +01:00
dependabot[bot]
8778453730
Bump fast-xml-parser in the npm_and_yarn group across 1 directory ( #78 )
...
Bumps the npm_and_yarn group with 1 update in the / directory: [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser ).
Updates `fast-xml-parser` from 5.2.5 to 5.3.6
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases )
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md )
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.2.5...v5.3.6 )
---
updated-dependencies:
- dependency-name: fast-xml-parser
dependency-version: 5.3.6
dependency-type: indirect
dependency-group: npm_and_yarn
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 22:41:09 +01:00
Igor Zinken
649ada2f89
Allow using alt when clone stamp is selected to re-select source coordinate
2026-02-16 21:04:01 +01:00
Igor Zinken
b0e68c3fd1
When there is an active selection when a mask is created, fill the mask with the selection
2026-02-15 20:23:53 +01:00
Igor Zinken
58da943179
Prevent creating holes from subtracted selections
2026-02-15 19:29:58 +01:00
Igor Zinken
06b39f8dc1
Update TypeScript compiler target
2026-02-03 21:42:37 +01:00
Igor Zinken
b385e61949
Support text parsing from PSD documents ( #76 )
2026-02-03 21:27:46 +01:00
Igor Zinken
a1ee891168
Optimizing selections: allowing merging and subtracting of overlapping shapes ( #77 )
...
* Allow merging and subtracting of selections
* Support selections with more than one other shape
* Allow subtraction using alt key
* Fix issue where stepping through selection state history would not restore merges and subtractions
* Preserve selection when switching between selection type tools
* Cleaner control of subtraction operation
2026-02-01 15:06:38 +01:00
Igor Zinken
c64f749189
Package updates
2026-01-31 09:33:45 +01:00
dependabot[bot]
f7aa153cdf
Bump form-data from 4.0.1 to 4.0.4 ( #71 )
...
Bumps [form-data](https://github.com/form-data/form-data ) from 4.0.1 to 4.0.4.
- [Release notes](https://github.com/form-data/form-data/releases )
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md )
- [Commits](https://github.com/form-data/form-data/compare/v4.0.1...v4.0.4 )
---
updated-dependencies:
- dependency-name: form-data
dependency-version: 4.0.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-24 21:18:24 +02:00
dependabot[bot]
c546b85d81
Bump vite from 6.2.5 to 6.3.4 ( #68 )
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 6.2.5 to 6.3.4.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 6.3.4
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-21 20:03:16 +02:00
Igor Zinken
0bd2ea4682
Address issue where export window would not display correct height on certain laptop screen sizes
2025-05-20 22:26:29 +02:00
Igor Zinken
dbcf9b92ce
Refactored export window to show original and preview side by side. Improved performance of preview rendering
2025-05-19 16:31:50 +02:00
Igor Zinken
4d1e1a8fd6
Implement color inversion adjustment filter
2025-05-14 19:45:45 +02:00
Igor Zinken
c9ae39049c
Mobile layout fixes and CSS cleanups
2025-04-12 14:25:53 +02:00
Igor Zinken
2a29dd6546
Split menu into separate reusable sections, introduced context menu actions to layer panel. Renamed tool-module to editor-module
2025-04-12 11:52:52 +02:00
Igor Zinken
bca9aa9145
When erasing content from a drawable layer, underlying layers are now preserved correctly during draw
1.1.0
2025-04-06 09:26:34 +02:00
dependabot[bot]
c06156165f
Bump vite from 6.2.3 to 6.2.5 ( #65 )
...
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite ) from 6.2.3 to 6.2.5.
- [Release notes](https://github.com/vitejs/vite/releases )
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md )
- [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite )
---
updated-dependencies:
- dependency-name: vite
dependency-version: 6.2.5
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-06 06:42:32 +02:00
Igor Zinken
0285fc53bf
Fix bug where scrollable windows would not respond to mousewheel event
2025-04-05 11:53:53 +02:00
Igor Zinken
f930d43078
Restructure UI, maximize layers panel when filters & effects view is opened ( #66 )
...
* Some sizing shenanigans
* Cleanups in ZoomableSprite and inheritance chain
* Ongoing
* Done
2025-04-05 11:50:08 +02:00
Igor Zinken
304e08d9d0
Touchpads on laptops now zoom the canvas, not the page
2025-04-05 11:10:28 +02:00