psychedelicious
0a65a01db8
feat(ui): use icons for layer menu common actions
2024-10-09 23:13:08 +11:00
psychedelicious
1c3d06dc83
fix(ui): remove straggling onPointerUp handlers
2024-10-09 13:43:22 +11:00
psychedelicious
eee4175e4d
Revert "fix(ui): Apple Pencil requires onPointerUp instead of onClick"
...
This reverts commit 2a90f4f59e .
2024-10-07 10:05:20 +11:00
psychedelicious
2a90f4f59e
fix(ui): Apple Pencil requires onPointerUp instead of onClick
...
With `onClick`, elements w/ a tooltip require a double-tap.
2024-10-04 07:44:40 -04:00
psychedelicious
6dd53b6a32
fix(ui): viewport cut off on iPad
...
Need to use dynamic viewport units.
2024-10-04 07:44:40 -04:00
psychedelicious
150d3239e3
feat(ui): add crop layer to bbox
2024-10-03 08:33:54 -04:00
psychedelicious
bd028acdae
feat(ui): support embedding metadata when rasterizing composite layer
...
- Allow `uploadImage` util to accept `metadata` to embed in the image
- Update compositor to support `metadata` field when uploading rasterized composite layer
2024-09-19 23:36:22 +10:00
psychedelicious
2962f44ade
feat(ui): differentiate add layer menu buttons and add individual layer buttons
2024-09-19 23:36:22 +10:00
Mary Hipp
0303ebad50
remove copy/save from layer UX and add it to layer context menu and action bar where appropriate; remove copy/save from IP adapter layers
2024-09-18 10:35:00 +10:00
Mary Hipp
55e4fb5a0e
feat(ui): save layer to assets
2024-09-18 10:35:00 +10:00
Mary Hipp
8cd78f7f34
feat(ui): copy layer to clipboard
2024-09-18 10:35:00 +10:00
psychedelicious
0e0076d819
tidy(ui): rename canvas state "regions" -> "regionalGuidance"
2024-09-16 15:10:17 +03:00
psychedelicious
4cf9933487
feat(ui): tighten up ip adapter settings layout
2024-09-16 15:10:17 +03:00
psychedelicious
e8c218672f
tidy(ui): clean up addLayerHooks
2024-09-16 15:10:17 +03:00
psychedelicious
f76c998791
feat(ui): more translation updates
...
- Migrate some translations to `controlLayers` namespace
- Remove the `controlnet` namespace entirely
- Remove other unused translations
2024-09-16 15:10:17 +03:00
psychedelicious
c2fb821574
feat(ui): update translations for reference image
2024-09-16 15:10:17 +03:00
psychedelicious
26e23a43dc
tidy(ui): create/move store utils to separate file
2024-09-16 15:10:17 +03:00
psychedelicious
52a19ceac3
feat(ui): ip adapter -> reference image (internal state)
...
We are renaming "IP Adapter" to "Reference Image".
- Update all internal state
- Update all components
2024-09-16 15:10:17 +03:00
psychedelicious
eee3b7acf3
feat(ui): on-theme checkboard pattern colors
...
They were pure grayscale before. Now are tinted according to our base color.
2024-09-13 22:33:34 +10:00
psychedelicious
3898e09b8c
feat(ui): revised Result implementation
...
Use classes with `isOk` and `isErr` methods instead of separate type guard functions. Update tests and usage.
2024-09-13 22:33:34 +10:00
psychedelicious
3aaaae4d1c
feat(ui): more interaction restrictions
2024-09-13 22:33:34 +10:00
psychedelicious
e5792278b9
feat(ui): revised canvas "busyness" state tracking
...
Track various canvas states:
- Filtering an entity
- Transforming an entity
- Rasterizing an entity
- Compositing
- Busy (derived from all of the above)
Also track individual entity states:
- Locked
- Disabled
- All of type are hidden
- Has objects
- Interactable (derived from all of the above)
These states then gate various actions. For example:
- Cannot invoke while the canvas is busy.
- Cannot transform, filter, duplicate, or delete when the canvas is busy.
Tool interaction restrictions are not yet implemented.
2024-09-13 22:33:34 +10:00
psychedelicious
5a89bf841f
feat(ui): drop image on layer to replace it
2024-09-11 08:12:48 -04:00
psychedelicious
5275782533
feat(ui): move add layer menu to selected entity action bar
2024-09-09 23:17:41 +10:00
psychedelicious
9210970130
fix(ui): preview not updating after reset
2024-09-09 23:17:41 +10:00
psychedelicious
71e0abe653
fix(ui): preview image squished when editing layer title
2024-09-09 23:17:41 +10:00
psychedelicious
5ab4818eb6
tidy(ui): rename canvas session slice to staging area slice
2024-09-08 21:55:26 +10:00
psychedelicious
6f4d3d0395
fix(ui): do not merge disabled layers when merging visible
2024-09-08 06:16:53 +10:00
psychedelicious
2a1bc3e044
fix(ui): do not allow transform when entity is "empty"
2024-09-08 06:16:53 +10:00
psychedelicious
464603e0ea
feat(ui): rework control adapter/ip adapter creation handling
...
- Add selectors to get the default control adapter and ip adapter with model, preferring controlnet over t2i adapter for model
- Add hooks to add each entity type, using the defaults
- Add hooks to add prompts/ip adapters to a regional guidance layer
- Use the defaults in other places where we add control layers or ip adapters (e.g. dnd-triggered entity creation)
2024-09-08 06:16:53 +10:00
psychedelicious
670e054fe0
feat(ui): refactor filter module
...
- Each entity gets its own `CanvasEntityFilterer`
- Add auto-preview feature to filter, debounced by 1000ms leading + trailing
- Fix flash when preview updates
2024-09-08 06:16:53 +10:00
psychedelicious
bf484bc90e
feat(ui): tweak padding on entity group header
2024-09-06 22:56:24 +10:00
psychedelicious
fc58d34d25
feat(ui): use plurals for entity group header hidden tooltip
2024-09-06 22:56:24 +10:00
psychedelicious
c15793b794
feat(ui): move delete entity button down to entity list item
2024-09-06 22:56:24 +10:00
psychedelicious
eab1f50a6f
feat(ui): do not allow transform, filter or merge while staging
2024-09-06 22:56:24 +10:00
psychedelicious
12e6f1be89
feat(ui): revised entity list action bars
...
- Global action bar on top
- Selected Entity action bar below
2024-09-06 22:56:24 +10:00
psychedelicious
aa418f0aba
feat(ui): iterate on state flow and rendering 2
...
- Rely on redux + reselect more
- Remove all nanostores that simply "mirrored" redux state in favor of direct subscriptions to redux store
- Add abstractions for creating redux subs and running selectors
- Add `initialize` method to CanvasModuleBase, for post-instantiation tasks
- Reduce local caching of state in modules to a minimum
2024-09-06 22:56:24 +10:00
psychedelicious
f92730080c
feat(ui): prevent layer interactions when transforming or filtering
2024-09-06 22:56:24 +10:00
psychedelicious
d81cd050ef
feat(ui): streamline manager -> react transform interface
2024-09-06 22:56:24 +10:00
psychedelicious
437ea1109b
feat(ui): tweak bookmark verbiage
2024-09-06 22:56:24 +10:00
psychedelicious
95177a7389
feat(ui): move transformer state to nanostores
...
This provides some free reactivity for this canvas-manager-managed state.
2024-09-06 22:56:24 +10:00
psychedelicious
d50ee14d0b
feat(ui): add fit to bbox as transform helper
2024-09-06 22:56:24 +10:00
psychedelicious
e3b6ad7076
fix(ui): disable merge visible when 1 or fewer layers of type
2024-09-06 22:56:24 +10:00
psychedelicious
db99b773bc
fix(ui): edge cases in quick switch, simpler logic
2024-09-06 22:56:24 +10:00
psychedelicious
ea062ab01a
feat(ui): add bookmark for quick switch
2024-09-06 22:56:24 +10:00
psychedelicious
d001a36e14
feat(ui): split canvas tool previews into modules
2024-09-06 22:56:24 +10:00
psychedelicious
81bfd4cc08
feat(ui): remove entity list context menu (again)
...
stupid events
2024-09-06 22:56:24 +10:00
psychedelicious
f3aad7a494
feat(ui): add merge visible for raster and inpaint mask layers
...
I don't think it makes sense to merge control layers or regional guidance layers because they have additional state.
2024-09-06 22:56:24 +10:00
psychedelicious
ff88536b4a
chore(ui): lint
2024-09-06 22:56:24 +10:00
psychedelicious
e0ea8b72a6
feat(ui): add delete button to each layer
2024-09-06 22:56:24 +10:00