Commit Graph
300 Commits
Author SHA1 Message Date
google-labs-jules[bot]andAEmotionStudio 07374a8306 feat(sidebar): add editable hex code input to color picker
- Replaced read-only hex code span with an editable text input in `createColorPicker`
- Implemented bidirectional sync between text input and color picker
- Added validation for hex codes and auto-correction on change/blur
- Ensured keydown propagation is stopped to prevent triggering global shortcuts
- Added aria-label for accessibility
- Updated unit tests to verify sync logic and event handling
- Added CSS styles for `magnify-color-preview` input to match UI design

Co-authored-by: AEmotionStudio <163354043+AEmotionStudio@users.noreply.github.com>
2026-02-09 23:27:45 +00:00
google-labs-jules[bot]andAEmotionStudio 6bd509bdf7 feat(sidebar): add editable hex code input to color picker
- Replaced read-only hex code span with an editable text input in `createColorPicker`
- Implemented bidirectional sync between text input and color picker
- Added validation for hex codes and auto-correction on blur
- Ensured keydown propagation is stopped to prevent triggering global shortcuts
- Added aria-label for accessibility
- Updated unit tests to verify sync logic and event handling
- Added CSS styles for `magnify-color-preview` input to match UI design

Co-authored-by: AEmotionStudio <163354043+AEmotionStudio@users.noreply.github.com>
2026-02-09 16:09:24 +00:00
Æmotion Studio 7ac655da1c chore: bump version to 1.13.1, update changelog and readme 2026-02-07 19:54:19 -08:00
Æmotion Studio 274e562f16 fix: use pointer events for glass drag to fix Firefox/Brave canvas corruption 2026-02-07 19:48:09 -08:00
Æmotion Studio 9359a42f3b fix: prevent LiteGraph canvas state corruption after glass drag 2026-02-07 19:38:35 -08:00
Æmotion Studio 9e0da38f75 fix: rewrite glass drag to use pointer capture for reliable cursor reset 2026-02-07 19:13:09 -08:00
Æmotion Studio 79cb020c85 fix: glass drag cursor stuck in grab mode after release 2026-02-07 19:04:09 -08:00
Æmotion Studio e08a0b257b fix: ghost cursor interactions persisting after hiding info panel 2026-02-07 18:55:42 -08:00
AEmotionStudio d259091bd4 Verison bump and project toml update 2026-01-19 14:16:44 -08:00
AEmotionStudio ddaf08a797 docs: update accessibility feature image in README 2026-01-19 01:31:32 -08:00
AEmotionStudio 2d7d679213 docs: update multi-monitor pop-out feature image in README 2026-01-19 01:21:23 -08:00
AEmotionStudio dbea0b1d73 docs: update sidebar integration feature image in README 2026-01-19 01:13:48 -08:00
AEmotionStudio a64d6f60f2 docs: update inspector panel feature image in README 2026-01-19 01:03:10 -08:00
AEmotionStudio 4f0c470d05 docs: update magnifying glass feature image in README 2026-01-19 00:11:19 -08:00
AEmotionStudio a7ed8f5920 updated image placement in readme 2026-01-18 23:17:41 -08:00
AEmotionStudio 591cfa7135 docs: add intro image to README 2026-01-18 23:15:55 -08:00
AEmotionStudio bbac28dd88 fix(popout): broaden action button detection in popout viewer 2026-01-18 21:53:27 -08:00
AEmotionStudio ea2f96b015 perf: optimize magnified view update by caching canvas rect to avoid layout thrashing 2026-01-18 21:37:06 -08:00
Æmotion Studio 6db4b2a576 Merge pull request #29 from AEmotionStudio/bolt/layout-thrashing-fix-5688373778482661560
⚡ Bolt: Prevent layout thrashing in magnifier update loop
2026-01-18 21:20:05 -08:00
Æmotion Studio 089098df90 Merge pull request #30 from AEmotionStudio/sentinel/fix-xss-bypass-uimanager-7199572335326487852
🛡️ Sentinel: [HIGH] Fix XSS vulnerability in UIManager by removing isHtml bypass
2026-01-18 21:19:54 -08:00
Æmotion Studio ad0cc473bb Merge pull request #28 from AEmotionStudio/palette-accessibility-focus-2231388305888170951
🎨 Palette: Improve keyboard accessibility for sidebar settings
2026-01-18 21:13:06 -08:00
google-labs-jules[bot] f6a9e5faa7 security(ui): eliminate XSS vector by replacing isHtml bypass with strict specialType
Removed the `isHtml` flag support in `UIManager`, which allowed bypassing HTML escaping.
Replaced it with a `specialType` mechanism (specifically 'focus-node') to render trusted
HTML structures internally while ensuring dynamic values are always escaped.
Updated `Security.test.ts` to verify the fix and prevent regression.

Fixes: Potential XSS vulnerability via unchecked HTML injection.
2026-01-19 05:05:28 +00:00
google-labs-jules[bot] bb9c545eda perf: prevent layout thrashing in magnifier update loop
Refactors `MagnifyGlass.updateMagnifiedView` and `calculateSourceRegion` to accept an optional cached `DOMRect`. This allows `EventHandler` to pass the canvas dimensions it read before updating the glass position, preventing a forced synchronous reflow (Read-Write-Read cycle) that was previously occurring on every mouse move frame.

Optimizes the hot path for mouse movement and magnifier updates.
2026-01-19 05:00:41 +00:00
google-labs-jules[bot] ac4ba5e5de fix: correct css order for focus-visible on selects
Ensures that the focus-visible outline is not overridden by the generic focus rule.
2026-01-19 04:52:15 +00:00
google-labs-jules[bot] 1fe803d8fb feat: improve keyboard accessibility for sidebar settings
- Add visible focus indicators for interactive elements in the sidebar
- Add aria-valuetext to sliders to announce values with units
- Update journal with accessibility learnings
2026-01-19 04:41:54 +00:00
AEmotionStudio acc96254a6 fix: persist menu toggle button across Vue re-renders using MutationObserver 2026-01-18 20:40:38 -08:00
AEmotionStudio 0522d7e90b feat: add inline slider support to popout viewer 2026-01-18 20:29:04 -08:00
AEmotionStudio 8954d2d44d perf: disable sourcemaps, remove build artifacts, and adjust default glass Y offset 2026-01-18 18:24:00 -08:00
AEmotionStudio c57fe228e0 update known issues in readme 2026-01-18 16:29:59 -08:00
AEmotionStudio 8d50f6744f chore: release version 1.12.0 2026-01-18 13:42:29 -08:00
AEmotionStudio bdc9b31935 docs: update changelog with unreleased changes 2026-01-18 13:35:38 -08:00
AEmotionStudio 2927c140dc feat: sync popout widget edits and improve inspector parameter visibility
- Implemented 'onWidgetEdit' listener in 'InfoPanel' to force refresh when popout widgets change.
- Refactored 'NodeDataExtractor' to display all widgets in the inspector (matching popout behavior) and removed aggressive deduplication.
- Fixed theme update logic in 'UIManager' to correctly handle hyphenated theme names.
- Enhanced combo box editing in 'popout-viewer.html' with better selection and blur handling.
2026-01-18 11:51:41 -08:00
AEmotionStudio 8bdfbedf46 feat: add new themes and enhance popout viewer interaction
- Added 'Obsidian', 'Obsidian Dark', and 'Milk White' themes to Info Panel and PopOut viewer.
- Improved theme detection in 'StateManager' to support new themes.
- Implemented button widget support in PopOut viewer with 'button-click' event handling.
- Enhanced widget options handling in 'PopOutManager' for combo widgets.
- Updated dropdown accessibility tests.
2026-01-18 11:02:06 -08:00
AEmotionStudio cb589761c8 feat: add grid layout support for batch images in OffscreenRenderer
- Updated `drawNodeImages` to render multiple images from `node.imgs[]` in a grid.
- Implemented aspect-ratio-preserving centering for each image within its grid cell.
- Added configurable gap between images in the grid.
2026-01-18 01:24:21 -08:00
AEmotionStudio 6f99468ff7 docs: add click to watch on youtube statement to video links in README 2026-01-18 00:24:52 -08:00
AEmotionStudio 8213a086ab feat: add inline action buttons to inspector and improve widget handling
- Added support for inline action buttons in the inspector panel.
- Implemented `InlineControlFactory.createInlineButton` to execute widget callbacks.
- Enhanced `WidgetSyncManager` to detect 'button' widgets via type or heuristics.
- Updated `UIManager` and `NodeDataExtractor` to process actionable widgets.
- Added styles for inline action buttons.
- Added `Escape` key handler to slider widget editor.
- Refactored canvas coordinate calculations in `MagnifyGlass` for better accuracy.
2026-01-18 00:21:06 -08:00
Æmotion Studio 093bde19e0 Merge pull request #25 from AEmotionStudio/bolt/optimize-render-overlays-9313858051447850514
⚡ Bolt: Optimize renderHtmlOverlays loop
2026-01-17 22:15:16 -08:00
Æmotion Studio 75d6285678 Merge pull request #27 from AEmotionStudio/sentinel-fix-webgl-xss-17500734846144735282
🛡️ Sentinel: [MEDIUM] Fix potential XSS in WebGL error toast
2026-01-17 22:12:13 -08:00
Æmotion Studio 223ea86d45 Merge pull request #26 from AEmotionStudio/palette-sidebar-a11y-7261823567868187712
🎨 Palette: Sidebar A11y Improvements
2026-01-17 22:11:09 -08:00
google-labs-jules[bot] dd4e34df6f fix(security): prevent XSS in WebGL error toast by using DOM API
- Refactor `showWebGLError` to use `document.createElement` instead of `innerHTML`
- Replace inline `onclick` handler with `addEventListener` for CSP compliance
- Add unit test to verify XSS prevention and button functionality
2026-01-18 04:50:44 +00:00
google-labs-jules[bot] 5606a86256 feat(sidebar): improve accessibility of settings and inspector sections
- Add role="button", tabindex="0", and aria-expanded to section headers
- Implement keyboard navigation (Enter/Space) for expanding/collapsing sections
- Generate unique IDs for aria-controls to link headers and content bodies
- Ensure proper accessibility attributes for sidebar inspector panel

This change improves keyboard navigation and screen reader support for the
sidebar settings and inspector panels.
2026-01-18 04:43:22 +00:00
google-labs-jules[bot] 9935ec5077 perf: optimize renderHtmlOverlays by hoisting invariants
- Moves invariant calculations (DPR, scaling, pivot points) out of the widget loop in `renderHtmlOverlays`.
- Reduces redundant property accesses and arithmetic operations per frame.
- Improves performance for workflows with many visible nodes.
2026-01-18 04:43:04 +00:00
AEmotionStudio 371f4b49b7 Moved palette.md folders 2026-01-17 19:56:40 -08:00
AEmotionStudio b069004e7c chore: remove PRD.md from repository and update gitignore 2026-01-17 19:54:30 -08:00
AEmotionStudio 45bc6a4d35 feat(ui): add node navigation hotkeys and update documentation
- Added '*' hotkey to focus the currently inspected node
- Added 'ArrowLeft' and 'ArrowRight' hotkeys to navigate nodes by execution order
- Updated README.md and CHANGELOG.md with the new hotkeys and navigation features
2026-01-17 19:43:07 -08:00
AEmotionStudio 1348b093db docs: move virtual zoom alignment issue from known issues to fixed in v1.11.0 2026-01-17 18:59:09 -08:00
AEmotionStudio 988e100b18 docs: move inflated FPS counter from known issues to fixed in v1.11.0 2026-01-17 18:52:09 -08:00
AEmotionStudio da7c8b17f9 feat(ui): enhance keyboard navigation and hotkeys
- Added full keyboard support (Arrows, Enter, Esc) for all dropdown types
- Implemented global '*' hotkey to center canvas on currently inspected node
- Improved event handling to reliably intercept keys before ComfyUI canvas
- Fixed memory leaks in dropdown event listeners
2026-01-17 18:46:55 -08:00
AEmotionStudio 67df7bb1ca chore: bump version to 1.11.0 and update changelogs 2026-01-17 18:23:47 -08:00
AEmotionStudio f8784432f5 Improve widget editing UX and dropdown behavior
- Allow precise value input by removing automatic step rounding in sync manager
- Standardize stepper button increment to 1 for finer control
- Ensure dropdowns close when clicking the canvas
2026-01-17 18:13:32 -08:00