76 Commits
Author SHA1 Message Date
Dariusz L fa514a97d1 frontend: improve fullscreen workflow controls, viewport interaction caching, and notification layering
- Add run-workflow button to the LayerForge fullscreen editor and route it
  through ComfyUI's native queue action when available.
- Switch fullscreen toolbar tooltips to the centralized tooltip manager.
- Generalize zoom-snapshot caching to viewport-snapshot caching so panning
  can reuse the composited scene bitmap; schedule pan viewport updates
  per display frame and clean up pending animations on teardown/blur.
- Preserve a stale processed-image fallback during transform/crop/wheel
  transitions and always show the blend-area effect when enabled.
- Raise toast notifications to z-index 2147483647 so they stay above the
  fullscreen editor and other application overlays.
2026-08-20 18:33:04 +02:00
Dariusz L 0e636ed99b feat: improve tooltip behavior with persistent and interactive modes
- Convert keyboard shortcuts help button to persistent click-toggle tooltip
- Add interactive, persistent, and onDismiss options to TooltipManager
- Dismiss persistent tooltips on outside pointerdown or Escape key
- Add delayed hide for interactive tooltips when leaving the target
- Update tooltip CSS for scrolling, interactive pointer-events, and text mode
2026-08-14 21:09:13 +02:00
Dariusz L 05c977f342 refactor: centralize tooltip handling into TooltipManager
Replace scattered inline tooltip implementations across canvas_view,
custom_shape_menu, layers_panel, batch_preview_manager, and notifications
with a single shared TooltipManager class.

- New src/utils/tooltip_manager.ts (and compiled js/utils/tooltip_manager.js)
  provides observeRoot/bindTooltips/setTooltip/showTooltip/hideTooltip API
- Migrate title attributes to data-tooltip and normalize via MutationObserver
- Rename tooltip CSS from .lf-painter-tooltip/.lf-layerforge-tooltip to
  .lf-global-tooltip and raise z-index to 1000001
- Remove duplicate matting-specific tooltip styles from canvas_view.css
- Update generated js/ outputs to match src/ changes
2026-08-14 20:16:26 +02:00
Dariusz L 5ea337fb51 refactor: standardize frontend file naming 2026-08-14 16:56:46 +02:00
Dariusz L 84dd15aff5 refactor: remove legacy logger re-exports 2026-08-14 16:23:27 +02:00
Dariusz L 248810ae87 test: harden async and persistence resilience 2026-08-14 15:51:39 +02:00
Dariusz L 3e44835d94 chore: clean frontend lint warnings 2026-08-14 12:04:27 +02:00
Dariusz L 12692a2564 refactor: organize frontend source modules 2026-08-14 11:06:38 +02:00
Dariusz L c8b9e3ccc4 Add ordered multi-image input support via virtual transport links 2026-08-14 04:25:08 +02:00
Dariusz L a942228ef3 Use workflow-scoped canvas state keys and stabilize preview widget sizing 2026-08-13 22:45:27 +02:00
Dariusz L a830da7593 Store Matting settings server-side and support optional Hugging Face token 2026-08-13 18:20:52 +02:00
Dariusz L c80a1244f7 refactor: share mirror and canvas cloning logic 2026-08-13 15:59:40 +02:00
Dariusz L 03187ce8ed refactor: centralize fit-on-add policy 2026-08-13 15:52:47 +02:00
Dariusz L bb93970aec refactor: centralize preview blob loading 2026-08-13 15:46:02 +02:00
Dariusz L f7304b1a0b refactor: reuse shared image loader 2026-08-13 09:39:58 +02:00
Dariusz L e4ef21a9b8 refactor: centralize canvas blob resolution 2026-08-13 09:34:02 +02:00
Dariusz L 962a4a6400 refactor: centralize layer removal lifecycle 2026-08-13 09:26:34 +02:00
Dariusz L c1ec26644d refactor: share mask result application 2026-08-13 08:20:35 +02:00
Dariusz L 38886f346d refactor: share image upload request construction 2026-08-13 08:12:08 +02:00
Dariusz L d68ee89f35 refactor: share preview blob loading 2026-08-13 08:09:04 +02:00
Dariusz L 459df09a70 refactor: unify canvas blob upload preparation 2026-08-13 08:06:43 +02:00
Dariusz L 64240a678e refactor: centralize Blob image loading 2026-08-13 07:33:29 +02:00
Dariusz L c461da1481 refactor: share distance-field mask rasterization 2026-08-13 05:43:15 +02:00
Dariusz L f60b7c0d8d refactor: centralize mask pixel primitives 2026-08-13 05:33:47 +02:00
Dariusz L 58ae68b8e1 refactor: centralize canvas blob variant dispatch 2026-08-13 05:24:43 +02:00
Dariusz L 76222a805b refactor: centralize strict canvas context creation 2026-08-13 04:44:59 +02:00
Dariusz L 082e8b74f1 refactor: share matting model status checks 2026-08-13 04:41:24 +02:00
Dariusz L b7785b6bc3 refactor: share mask result conversion 2026-08-13 04:32:30 +02:00
Dariusz L 4bed57afcd refactor: share mask pixel processing pipeline 2026-08-13 04:29:47 +02:00
Dariusz L 66faa3135a refactor: centralize image loading and serialization 2026-08-13 04:26:51 +02:00
Dariusz L 5f660629ec refactor: centralize layer geometry calculations 2026-08-13 04:18:43 +02:00
Dariusz L 2ab249efde refactor: share mask distance transform 2026-08-13 03:42:49 +02:00
Dariusz L 73d8e696cb refactor: share tensor to rgba conversion 2026-08-13 03:39:03 +02:00
Dariusz L 834476c259 refactor: unify canvas export actions 2026-08-13 03:29:52 +02:00
Dariusz L dc1bde6231 refactor: use canonical logging imports 2026-08-13 01:16:42 +02:00
Dariusz L 2cec014d4c feat: migrate Model Resolver logging system 2026-08-13 00:57:52 +02:00
Dariusz L f8137a57a7 refactor: add CONFIG and context menu support to notification toast system
- Add centralized CONFIG object with PROJECT_NAME, PROJECT_ICON, CSS_PREFIX,
  LOGGER_NAME, and SHARED_CONTAINER_ID to prevent hardcoded values
- Refactor showNotification to accept both legacy (backgroundColor, duration, type)
  and new (options object) signatures for backward compatibility
- Replace hardcoded CSS IDs and keyframe names with CONFIG-prefixed variants
- Change notification container layout from row-reverse to column for proper stacking
- Add context menu binding support via contextMenuModel and contextMenuTooltip options
- Extract SVG icons into dedicated iconSVGs record/object
- Fix wrapper functions (showSuccessNotification, showErrorNotification etc.) to
  pass type as first argument instead of undefined
- Increase container z-index to 100005 to appear above modal overlays
- Remove unused lf-progress and lf-progress-rewind keyframes
2026-06-30 01:39:23 +02:00
Dariusz L d0b7261671 Refactor notification progress to use requestAnimationFrame and fix db imports
- Replace CSS animation-based notification progress bar with requestAnimationFrame-driven animation
- Centralize getCanvasState/setCanvasState imports at top-level in CanvasView (remove dynamic import())
- Clean up animation frame lifecycle tracking to prevent orphaned rAF callbacks
- Set local debug log level in python/config.py for development diagnostics
2026-06-30 00:27:52 +02:00
Dariusz L 88c2249ded Rebuild JS artifacts (no functional changes)
Changes are auto-generated by TypeScript build (formatting/newlines only). No logic changes.
2026-05-01 20:46:28 +02:00
VladiCz 65f3dcc5d5 replace hardcoded ws protocol with wss protocol based on SSL 2026-04-25 10:41:28 +02:00
Dariusz L 5ea2562b32 added // @ts-ignore to compile to ts 2025-08-22 19:11:15 +02:00
Dariusz L d1ceb6291b feat: add base64 image paste
Implemented data URI (base64) support for paste operations.
2025-08-14 14:39:01 +02:00
Dariusz L 868221b285 feat: add notification system with deduplication
Implemented a comprehensive notification system with smart deduplication for LayerForge's "Paste Image" operations. The system prevents duplicate error/warning notifications while providing clear feedback for all clipboard operations including success, failure, and edge cases.
2025-08-14 14:30:51 +02:00
Dariusz L da37900b33 Refactor: unify image handling in CanvasIO via helpers
Removed duplicate code from CanvasIO.ts and replaced it with unified helpers from ImageUtils.ts. All tensor-to-image conversions and image creation now use centralized utility functions for consistency and maintainability.
2025-08-09 03:07:18 +02:00
Dariusz L 9f21ff13ae Add clipspace utils with full backward support
Refactored clipspace handling into ClipspaceUtils with validateAndFixClipspace() and safeClipspacePaste() for consistent, defensive logic. Ensures full backward compatibility with all ComfyUI versions and eliminates duplicated code.
2025-08-06 23:08:02 +02:00
Dariusz L 3d6e3901d0 Fix button crop icon display and update functionality 2025-08-03 02:19:52 +02:00
Dariusz L e42e08e35d Crop mode button to switch 2025-08-02 19:43:03 +02:00
Dariusz L 257bada28d Nice Icon Comfy Clipspace
Nice Icon Comfy Clipspace
2025-07-28 17:54:50 +02:00
Dariusz L f57b9f6b58 Layout change 2025-07-28 15:57:28 +02:00
Dariusz L 5e9869f827 Refactor notifications and improve matting UX
Refactored notification utilities for a more modern, reusable notification system and added info/success/error notifications to the background removal (matting) workflow. Removed the custom error dialog in favor of notifications, and exposed all notification types for debugging. Updated imports and cleaned up notification-related code.
2025-07-28 00:58:04 +02:00