Commit Graph
148 Commits
Author SHA1 Message Date
AEmotionStudio 8954d2d44d perf: disable sourcemaps, remove build artifacts, and adjust default glass Y offset 2026-01-18 18:24:00 -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 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 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
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
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 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 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
AEmotionStudio 1a4b6b8a23 fix(widget-editors): update DragValueController logic and build 2026-01-17 17:59:00 -08:00
AEmotionStudio a424abf045 style: update info-panel styles 2026-01-17 17:56:29 -08:00
AEmotionStudio 61a0b9aca6 chore(build): update production build artifacts 2026-01-17 17:51:20 -08:00
AEmotionStudio 09ce2fb78a WIP: My local changes 2026-01-17 17:38:06 -08:00
AEmotionStudio 6ff4f2712c feat(ui): Implement custom dropdown system and High Contrast mode
- Replaced native select elements with a viewport-aware 'CustomDropdown' for better reliability and positioning.
- Added 'High Contrast Text' mode for improved legibility in inputs and values.
- Implemented parameter value deduplication in 'NodeDataExtractor' to reduce panel clutter.
- Expanded Google Font selection with 10+ new styles.
- Switched UI dimensions to relative units (em) for consistent scaling.
- Fixed layout 'bouncing' in sticky mode by removing hover transforms.
2026-01-16 16:13:35 -08:00
AEmotionStudio 1a5d7eab43 feat(ui): Add copy-to-clipboard functionality and improve dropdown stability
- Added a copy-to-clipboard button for 'Category' and 'Path' node details in the Inspector panel.
- Enhanced dropdown interaction stability by using 'mousedown' capture phase and broad event propagation prevention in 'InlineControlFactory'.
- Updated 'build' script to ensure CSS files are correctly synchronized from 'css/' to 'web/'.
- Standardized copy icon and styling, including a subtle checkmark feedback on success.
- Fixed an issue where the Inspector panel would 'bounce' due to hover transforms while in sticky mode.
- Improved dropdown closure logic to handle clicks both outside and within the panel content area.
2026-01-16 15:01:36 -08:00
AEmotionStudio dd6b787ad6 style(ui): Refine sticky mode layout and inline control interactions
- Optimized 'persist-active' mode to use viewport-based height limits and proper flex scrolling.
- Enhanced event propagation handling in 'InlineControlFactory' for better dropdown stability.
- Standardized panel font sizes and updated inline dropdowns to match the green theme.
- Added theme-specific CSS overrides for Light and GitHub themes in widget editors.
- Simplified copy-to-clipboard UI feedback.
2026-01-16 12:41:33 -08:00
AEmotionStudio 9a039f8549 style(ui): Update widget editor select styling to match green theme
- Changed accent color to #a0d468 for select inputs.
- Updated background colors, borders, and box-shadows to align with the green-themed info panel.
- Refined the custom dropdown arrow color to match the new accent.
- Standardized font-family and spacing for a more consistent look.
2026-01-16 11:36:15 -08:00
AEmotionStudio d2ea6d965f feat(ui): Implement inline widget controls and drag value adjustments
- Added 'InlineControlFactory' to create inline toggle switches and combo boxes for supported widget types, replacing the click-to-edit modal for these types.
- Added 'DragValueController' to enable adjusting numeric values by dragging on the value display.
- Updated 'UIManager' to integrate these new controls, manage their lifecycle, and properly clean them up.
- Enhanced 'WidgetEditorFactory' to handle Enter key for confirming edits.
- Removed the copy button from string values to reduce clutter.
- Updated 'index.ts' to export the new components.
2026-01-16 04:19:29 -08:00
AEmotionStudio fc8b685bef style(ui): Refine focus button interactions and fix input appearance
- Removed 'popout' scaling and transform animations from '.focus-node-btn' hover/active states for a more stable, subtle UI feel.
- Reduced box-shadow intensity on focus buttons to align with the flatter design.
- Removed icon scaling on hover for focus buttons.
- Added 'appearance: textfield' to number inputs to standardize rendering across browsers.
- Minor whitespace cleanup in toggle slider CSS.
2026-01-16 02:22:06 -08:00
AEmotionStudio 51ad38bfb6 feat: Add video playback support and settings validation
- Implemented a continuous animation loop in 'MagnifyGlass' that activates automatically when video widgets are detected, ensuring smooth playback for standard videos and VHS previews.
- Added robust validation to 'StateManager' for loading settings, including bounds checking for dimensions/opacity and format verification for colors and enums.
- Updated widget detection logic to correctly identify and handle 'videopreview' and 'audiopreview' widgets.
- Ensured animation loops are properly stopped when the glass is hidden or destroyed to preserve resources.
2026-01-16 02:05:42 -08:00
google-labs-jules[bot] d7f6b99051 feat(a11y): associate labels with form controls in sidebar
- Export form creation helpers for testing
- Add unique ID generation for sliders, selects, and color pickers
- Associate labels with inputs using `htmlFor`
- Add unit tests to verify accessibility attributes
2026-01-16 04:37:17 +00:00
AEmotionStudio 0cf992d528 fix: address final PR review issues 2026-01-15 17:38:38 -08:00
AEmotionStudio 837fe7da87 fix: address additional PR review issues 2026-01-15 17:24:05 -08:00
AEmotionStudio 3c17fc34ff fix: address PR review - add constraints to data attrs and fix boolean coercion 2026-01-15 17:12:48 -08:00
AEmotionStudio 1434e703e0 feat: add Inspector Value Editing - inline widget editing from Inspector Panel 2026-01-15 17:01:58 -08:00
AEmotionStudio 3f2abfdc42 fix: ensure updatePreviews is restored in finally blocks (PR review) 2026-01-14 13:28:14 -08:00
AEmotionStudio 978b3d0521 fix: resolve cloned video play abort errors and other console noise 2026-01-14 13:19:48 -08:00
AEmotionStudio 83a2b3f7ea Fix Reset All Settings and console deprecation warnings 2026-01-13 23:54:15 -08:00
AEmotionStudio 65aa46a862 Fix Reset All Settings to include accessibility options and refresh UI 2026-01-13 23:43:27 -08:00
AEmotionStudio df89ecace2 Fix Position tooltip and Reset All Settings behavior for hover controls 2026-01-13 23:30:44 -08:00
AEmotionStudio 83de031400 build: update artifacts after pr/11 merge 2026-01-13 22:14:46 -08:00
AEmotionStudio 02fe7540e2 chore: bump version to 1.10.1, update docs and build artifacts 2026-01-13 22:08:14 -08:00
AEmotionStudio 9f16a72420 Merge PR #9: Accessibility improvements and rebuild artifacts 2026-01-13 21:32:37 -08:00
AEmotionStudio 608904d1a7 refactor: improve component visibility management and styling 2026-01-13 21:23:10 -08:00
google-labs-jules[bot] 11062e4748 fix: ensure aria-expanded is correct on init
- Updated `UIManager.createPanel` to call `updateMinimizedState()` if the panel is initialized in a minimized state.
- This ensures the `aria-expanded` attribute on the minimize button correctly reflects the initial state (false) instead of defaulting to true.
2026-01-14 04:47:35 +00:00
google-labs-jules[bot] fe8df50f48 feat: add aria labels and state attributes to icon buttons
- Added `aria-label` to all icon-only buttons in the Info Panel and Magnify Glass toggle.
- Implemented dynamic `aria-pressed` state updates for toggle buttons (pin, lock, persist, etc.).
- Added `aria-expanded` state for the minimize/maximize button.
- Added `aria-label` to the copy-to-clipboard button.
- Ensures better screen reader compatibility and accessibility compliance.
2026-01-14 04:37:02 +00:00
AEmotionStudio 4de67e52a9 fix: Clear blue node highlight when magnifying glass is disabled 2026-01-13 20:33:52 -08:00
AEmotionStudio 2a10f9392f Remove CSS transition from node highlight for better responsiveness 2026-01-10 20:43:40 -08:00
AEmotionStudio c8b0290193 Refactor node highlighter to use DOM-based element for better precision and performance 2026-01-10 20:33:30 -08:00
AEmotionStudio 1cd6bf9f29 Fix node highlighter to include title bar height 2026-01-10 16:47:18 -08:00
google-labs-jules[bot] 6587753d7d refactor: remove info panel force-hide workaround
Removes the `forceHideInfoPanel` method and its related helper methods (`removeForceHide`, `ensureForceHideCssRule`) from `MagnifyGlass.ts`. This workaround manually manipulated the DOM to hide the info panel, bypassing the intended state management via the `InfoPanel` class which hooks into `MagnifyGlass` visibility changes.

Testing:
- Verified that `MagnifyGlass.ts` compiles without errors.
- Verified that unit tests pass.
- Verified that `InfoPanel` logic correctly handles hiding via `hookIntoMagnifyGlass`.
2026-01-09 14:02:20 +00:00
AEmotionStudio 6a59d1cffb fix: magnify glass icon placement from sidebar to the bottom toolbar 2026-01-07 19:02:47 -08:00
AEmotionStudio fe48d7ec05 feat: add keyboard shortcut indicators to info panel persist and hold button tooltips 2026-01-06 01:24:25 -08:00
AEmotionStudio c21d1c731b refactor: Group glass settings, add new appearance and behavior options 2026-01-06 01:09:47 -08:00
AEmotionStudio 2ee502dcce feat: Enable PopOutManager script in popout viewer and update cache version. 2026-01-06 00:29:03 -08:00
AEmotionStudio ee45d627f1 feat: replace hover clipboard icon with interactive copy button and clipboard functionality for info panel values 2026-01-06 00:09:42 -08:00
AEmotionStudio dcab6a749b feat: Add copy-to-clipboard button to pop-out viewer values, improve UI responsiveness, and update cache version. 2026-01-05 23:57:31 -08:00
AEmotionStudio b533136469 style: Improve popout viewer node property layout and readability, and update cache version. 2026-01-05 23:51:49 -08:00