Commit Graph

79 Commits

Author SHA1 Message Date
syntaxbullet
04a7275143 refactor(App): streamline generate tool state management 2026-07-05 09:38:59 +02:00
syntaxbullet
f5c610dac5 feat: implement inpainting functionality with mask handling
- Added `createMaskedPixelReplacementSource` function to handle pixel replacement using inpainting.
- Introduced `buildInpaintBundle` to prepare inpainting data including mask generation and validation.
- Created utility functions for mask operations such as `applyMaskedContentModeToRgba`, `expandRectWithinBounds`, and others for mask manipulation.
- Developed tests for inpainting preparation and mask raster utilities to ensure functionality and correctness.
- Implemented mask raster operations including inversion, feathering, blurring, and more.
2026-07-05 09:35:16 +02:00
syntaxbullet
6e5d58a638 perf(brush): reuse stroke session canvas 2026-07-04 16:09:44 +02:00
syntaxbullet
1a43d1f0e5 fix(commands): narrow deferred history policy 2026-07-04 15:59:30 +02:00
syntaxbullet
88208ea1ad perf(document): index layer read paths 2026-07-04 15:58:38 +02:00
syntaxbullet
1acfcbe4a5 perf(history): batch transform drag undo 2026-07-04 15:49:13 +02:00
syntaxbullet
a030f2065a perf(renderer): draw checkerboard with shader 2026-07-04 15:43:50 +02:00
syntaxbullet
ef0ce15bb5 perf(view): reduce shell rerenders 2026-07-04 15:37:54 +02:00
syntaxbullet
dfa2bffeda perf(canvas): coalesce renderer redraws 2026-07-04 15:27:20 +02:00
syntaxbullet
d9e5e05183 perf(commands): skip no-op dispatch emissions 2026-07-04 15:21:41 +02:00
syntaxbullet
7188569672 feat: add ComfyUI integration for image generation
- Implemented ComfyUI API for generating images with various modes (text-to-image, image-to-image, inpaint, outpaint).
- Created GenerateSheet and associated controls for user input on generation settings.
- Added subtle scrollbar styles for improved UI experience.
- Enhanced canvas input handling to ignore key events when focused on editable elements.
- Optimized canvas resizing logic to prevent unnecessary dispatches.
- Introduced error handling for generation failures and loading models.
- Added functionality to upload images and masks for inpainting.
2026-07-04 15:10:30 +02:00
syntaxbullet
af50a165da feat: add magic wand tool with settings and controls, including UI integration and functionality 2026-07-04 11:49:35 +02:00
syntaxbullet
6b6c2ebb80 feat: add chroma key tool and settings, including UI components and controls 2026-07-04 11:13:47 +02:00
syntaxbullet
e5c7f09cea feat: add shortcuts display 2026-07-03 23:44:24 +02:00
syntaxbullet
cbd4eb5e9b feat: implement brush availability hints and enhance layer rendering order 2026-07-03 23:18:48 +02:00
syntaxbullet
e8073e6146 feat: enhance bottom controls and UI components
- Updated BottomControlsIsland for improved layout and styling.
- Refactored LayersSheet to enhance usability and visual consistency.
- Modified ToolOverlay for better tool selection experience.
- Improved BrushControls with new ColorPicker and Slider components.
- Enhanced PanControls and TransformControls for better user interaction.
- Updated ZoomControls for consistent button sizes and styles.
- Introduced new styles for bottom controls in styles.ts and index.css.
- Added BottomControlColorPicker, BottomControlSelectMenu, and BottomControlSlider components for better modularity and reusability.
2026-07-03 22:28:34 +02:00
syntaxbullet
4590b47e19 Remove crop tool 2026-07-03 21:15:31 +02:00
syntaxbullet
4ad0bb8b2c feat: enhance layer masking functionality and brush controls
- Refactor LayersSheet component to support mask editing state and improve layer visibility handling.
- Introduce functions to collect mask layer IDs and count display layers excluding masks.
- Update BrushControls to include mask view mode options and a Done button for exiting mask editing.
- Modify brush session handling to support brush previews when editing masks.
- Implement a new BrushPreviewRenderer for rendering brush strokes with visual feedback.
- Add document geometry utilities for transforming points and resolving layer bounds.
- Ensure proper cleanup of brush preview on pointer leave and other interactions.
2026-07-03 20:49:29 +02:00
syntaxbullet
daaa2a6667 fix(masks): show tinted mask edit overlay 2026-07-03 18:12:30 +02:00
syntaxbullet
15f3a934e0 feat(masks): add mask editing mode 2026-07-03 18:07:04 +02:00
syntaxbullet
4a21b28ed0 fix(masks): render layer masks 2026-07-03 18:00:28 +02:00
syntaxbullet
29c0d1eafd fix(tools): respect pan while painting 2026-07-03 17:56:41 +02:00
syntaxbullet
64aebbe23a feat(tools): add brush controls 2026-07-03 17:49:00 +02:00
syntaxbullet
e75f8bc0a7 fix(brush): stop painting after pointer release 2026-07-03 17:43:13 +02:00
syntaxbullet
c13a6f5917 feat(tools): add eraser tool 2026-07-03 17:39:00 +02:00
syntaxbullet
9fc0c18114 feat(tools): add brush raster painting 2026-07-03 17:37:43 +02:00
syntaxbullet
665f4a5340 feat(core): add raster layer type 2026-07-03 17:34:02 +02:00
syntaxbullet
c946fb4c93 feat(tools): add crop tool 2026-07-03 17:32:46 +02:00
syntaxbullet
5e4cde4df9 fix(export): apply layer masks in png export 2026-07-03 17:31:24 +02:00
syntaxbullet
0ffbc4f68b feat(history): add undo redo stack 2026-07-03 17:30:31 +02:00
syntaxbullet
fedeaffa57 feat(layers): add layer management panel 2026-07-03 17:26:50 +02:00
syntaxbullet
ba3f253ee5 feat(renderer): enhance image rendering with asset synchronization and clipping 2026-07-03 16:34:31 +02:00
syntaxbullet
bc0fbea029 feat(renderer): render image textures 2026-07-03 16:23:38 +02:00
syntaxbullet
71e97388da feat(input): select image layers on canvas 2026-07-03 16:20:15 +02:00
syntaxbullet
ed4d419c4d feat(view): import images from file or clipboard 2026-07-03 16:19:44 +02:00
syntaxbullet
44295b1b2d feat(renderer): render image layer placeholders 2026-07-03 16:19:05 +02:00
syntaxbullet
75466d2aa6 feat(commands): add image asset layer commands 2026-07-03 16:18:40 +02:00
syntaxbullet
97c3d3b7ae feat(core): add intrinsic asset dimensions 2026-07-03 16:14:00 +02:00
syntaxbullet
a3b4a4a1b0 refactor(transform): resolve target bounds 2026-07-03 16:12:26 +02:00
syntaxbullet
ff5bb43382 feat(view): show transform measurements 2026-07-03 16:08:45 +02:00
syntaxbullet
166310ace0 feat(input): drag artboard transform controls 2026-07-03 16:08:08 +02:00
syntaxbullet
bf5d9f5371 feat(transform): add transform session commands 2026-07-03 16:06:58 +02:00
syntaxbullet
03d4d4a3b9 feat(renderer): draw transform handles 2026-07-03 16:05:42 +02:00
syntaxbullet
e90b829e62 feat(commands): add artboard bounds command 2026-07-03 16:05:15 +02:00
syntaxbullet
4d77288450 feat(renderer): draw selection overlay 2026-07-03 16:04:43 +02:00
syntaxbullet
28fcbdceda feat(input): support artboard selection 2026-07-03 16:04:43 +02:00
syntaxbullet
46aa1b8595 feat(view): add contextual layer controls 2026-07-03 16:04:43 +02:00
syntaxbullet
b0732c8af1 feat(view): add viewport activity island 2026-07-03 11:43:00 +02:00
syntaxbullet
8965532c3a feat(viewport): add fit artboard command 2026-07-03 11:31:55 +02:00
syntaxbullet
84a610f019 refactor(commands): centralize command ids 2026-07-03 11:31:02 +02:00