Commit Graph

5 Commits

Author SHA1 Message Date
bymyself
290906e7cc [refactor] Improve type safety across Vue node widget system
- Create WidgetValue union type for all valid widget values
- Replace 'any' types with proper generic constraints in SimplifiedWidget
- Add runtime validation for widget values in useGraphNodeManager
- Update WidgetSelect to use constrained generics instead of any
- Fix type assertions with proper validation functions
- Ensure SafeWidgetData uses WidgetValue type consistently

This eliminates most 'any' usage while maintaining runtime safety through validation.
2025-07-05 03:08:18 -07:00
bymyself
71c3c727cf [feat] Implement LOD (Level of Detail) system for Vue nodes
- Add useLOD composable with 3 zoom-based detail levels (minimal, reduced, full)
- Implement conditional rendering in LGraphNode based on zoom level
- Filter non-essential widgets at reduced LOD (keep interactive controls only)
- Add LOD-specific CSS classes for visual optimizations
- Update performance test thresholds for CI environment compatibility
- Fix lint warnings in QuadTreeDebugSection component

Performance impact: ~80% DOM element reduction at low zoom levels
Zoom thresholds: 0.4 (minimal), 0.8 (full) for optimal quality/performance balance
2025-07-05 03:08:18 -07:00
bymyself
122170fc0d [fix] Fix widget value synchronization between Vue and LiteGraph
- Widget callbacks now explicitly set widget.value (fixes empty LiteGraph callbacks)
- Created useWidgetValue composable for consistent widget patterns
- Updated all widget components to use proper props/emit pattern
- Callbacks are set up before data extraction to ensure proper state sync
2025-07-05 03:08:18 -07:00
bymyself
95c291d174 [fix] Fix WidgetSelect component for combo widgets
- Add options prop to PrimeVue Select component
- Extract options from widget.options.values array
- Remove unnecessary debug comments

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 03:08:18 -07:00
bymyself
346cac0889 [feat] Add Vue selection widgets
- WidgetSelect: Dropdown selection with Select component
- WidgetMultiSelect: Multiple selection with MultiSelect component
- WidgetSelectButton: Button group selection with SelectButton component
- WidgetTreeSelect: Hierarchical selection with TreeSelect component
2025-06-24 12:33:11 -07:00