30 Commits
Author SHA1 Message Date
Dariusz L 74bb8d7806 Add workflow progress indicator to LayerForge canvas 2026-08-20 21:39:16 +02:00
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 cfe2a92f12 feat: add workflow overview toggle to canvas editor modal 2026-08-14 21:58:11 +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 7804f6e3de feat: add Unlink button to disconnect image inputs from LayerForge 2026-08-14 04:56:48 +02:00
Dariusz L 1468065210 feat: add Show Inputs menu for connected canvas input images 2026-08-14 04:45:21 +02:00
Dariusz L 37179fd29d Make LayerForge canvas and controls blend with ComfyUI dark theme
Use transparent canvas backgrounds, rgba styling, and CSS custom properties
(--lf-canvas-fill, --lf-surface-border, --lf-controls-surface,
--lf-layers-surface, --lf-surface-shadow) so the editor's native color tints
the node underneath. CanvasRenderer now clears the canvas each frame and
reads the fill from CSS, avoiding alpha buildup and keeping the UI readable.
2026-08-13 21:44:31 +02:00
Dariusz L 11d448cdc8 Add matting download progress, interrupt handling, and inverted mask mode 2026-08-13 20:47:10 +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 391923d77d refactor: split canvas_node into python modules and enhance matting UI 2026-08-13 03:10:25 +02:00
Dariusz L 6284ed2b98 Fix layer-aligned generated masks 2026-08-13 02:34:37 +02:00
Dariusz L e82c837af3 Add 'lf-' prefix to all LayerForge CSS classes (js)
Refactors all custom CSS class names to include an 'lf-' prefix
(e.g. .painter-button -> .lf-painter-button, .clipboard-switch -> .lf-clipboard-switch).

This isolates LayerForge styles within the ComfyUI DOM and prevents
CSS namespace collisions with other custom nodes or host page styles.
Changes span src/ TypeScript source files and src/css/ stylesheets.
2026-06-30 00:50:15 +02:00
Dariusz L c9860cac9e Add Master Visibility Toggle to Layers Panel
Introduce a three-state checkbox in CanvasLayersPanel header to control visibility of all layers at once. Supports automatic state updates and integrates with renderLayers() for seamless layer management.
2025-08-09 16:15:11 +02:00
Dariusz L 00a39d756d fix: increase z-index for LayerForge fullscreen mode
Fixed LayerForge fullscreen mode displaying behind ComfyUI interface elements by increasing z-index from 111 to 999999. Fullscreen mode now properly overlays all UI components as intended.
2025-08-09 15:06:16 +02:00
Dariusz L 1bd261bee0 Adjust Style disabled buttons 2025-08-04 01:00:35 +02:00
Dariusz L ed9fdf5d60 disable delete button when no layers selected
Added updateButtonStates() to enable/disable delete button based on selection
Updated control setup and selection handlers to call this method
Added CSS for disabled button state and tooltip
Delete button now disables when no layers are selected; all other panel features unchanged
2025-08-03 14:33:20 +02:00
Dariusz L d84b9385ad Refactor: Move CanvasLayersPanel inline styles to external CSS
Moved all inline styles from CanvasLayersPanel.ts to layers_panel.css
Updated TypeScript to load external CSS and removed injectStyles()
Replaced inline styles with CSS classes in UI methods
Ensured all panel features and interactions work as before
Improved code maintainability and consistency with project structure
2025-08-03 14:27:31 +02:00
Dariusz L c4318d4923 Refactor: Move blend mode menu styles to CSS file
Moved all blend mode menu styles from CanvasLayers.ts to a dedicated CSS file. Replaced inline styles with CSS classes and preserved all functionality.
2025-08-03 14:18:21 +02:00
Dariusz L e42e08e35d Crop mode button to switch 2025-08-02 19:43:03 +02:00
Dariusz L 7ed6f7ee93 Implement crop mode for cropping selected layer 2025-08-02 19:05:11 +02:00
Dariusz L fb5bbdd187 Unify styling for "Run GC" and "Clear Cache" buttons
Updated the "Run GC" and "Clear Cache" buttons to match the styling of standard UI buttons
2025-07-30 11:10:13 +02:00
Dariusz L fc4c343418 Improve minimized "Custom Output Area Active" styling
Unified the appearance of the minimized "Custom Output Area Active" bar with the full menu styling:
2025-07-30 11:05:04 +02:00
Dariusz L 3941104bd5 Tooltip Menu change to modern layout 2025-07-28 19:42:10 +02:00
Dariusz L 6b04e3891b Changed to switch button mask on/off 2025-07-28 19:02:29 +02:00
Dariusz L 7f39cfc8ed modernized the "Custom Shape Menu"
I updated src/css/custom_shape_menu.css with new styles for a modern look and feel, and I refactored src/CustomShapeMenu.ts to use a new HTML structure for the checkboxes that works with the updated CSS. The menu should now be fully functional with the new design.
2025-07-28 17:05:57 +02:00
Dariusz L d2b7b396aa moved all CSS from src/CustomShapeMenu.ts to a new file
moved all CSS from src/CustomShapeMenu.ts to a new file src/css/custom_shape_menu.css and updated the TypeScript file to use the external stylesheet. This improves code organization and maintainability.
2025-07-28 16:43:59 +02:00
Dariusz L f57b9f6b58 Layout change 2025-07-28 15:57:28 +02:00
Dariusz L 5adc77471f project migration to typescript
Project migration to typescript
2025-07-04 04:22:51 +02:00
Dariusz L 3e4cdf10bc Refactor CanvasView: externalize styles and tooltips
Moved inline CSS from CanvasView.js to a dedicated canvas_view.css file and added dynamic stylesheet loading. Extracted tooltip and shortcut HTML into separate template files and implemented a ResourceManager utility for loading stylesheets and templates. Updated CanvasInteractions.js and CanvasView.js to use the new resource management and template loading approach, improving maintainability and modularity.
2025-07-03 17:27:00 +02:00