Commit Graph

5 Commits

Author SHA1 Message Date
f788ccdfd3 feat: refactor control panel architecture and fix layout issues
Base class architecture improvements:
- Centralize all panel layout, styling, and behavior in ControlBase
- Implement consistent generateContent() pattern for subclasses
- Add proper flexbox layout with fixed header and scrollable content
- Standardize title styling, positioning, and scroll behavior

Panel layout fixes:
- Fix content positioning to appear inside panels instead of floating above
- Implement proper height management (expands with content up to browser height)
- Add correct scroll boundaries with only content area scrolling
- Position resize handle outside scroll area to avoid scrollbar interference

Visual improvements:
- Fix rounded border appearance with proper overflow handling
- Ensure header respects panel corner radius
- Add proper content margins and padding
- Improve resize handle positioning and visibility

Architecture standardization:
- All panels now follow same base class pattern
- Individual panels only provide configuration and content generation
- Eliminate duplicate styling and layout code across controls
- Consistent behavior across all panel types

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 21:55:06 +01:00
512085d283 feat: enhance control panel UI and resize functionality
Panel UI improvements:
- Replace heading elements (h1-h6) with styled divs to avoid navigation interference
- Change ContentsControl position from northwest to west for better accessibility

Panel collapse/expand enhancements:
- Fix panel dragging to prevent unexpected positioning jumps
- Keep panel width and upper-left position when collapsing to header-only mode
- Complete height reduction when collapsed (no minimal size maintained)
- Toggle resize handle visibility based on panel state

Resize handle improvements:
- Change resize symbol from arrow to clean dot (●) in bottom-right corner
- Remove background circle, show transparent dot only
- Fix resize direction to properly follow mouse movement from bottom-right
- Set dynamic minimum size constraints (header height + padding)
- Allow arbitrary panel sizing with proper bounds checking
- Reset panel size to defaults when closed/collapsed

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 16:40:23 +01:00
09e7f07c23 fix: update deployment source with enhanced ControlBase files
Copy enhanced ControlBase and control files to deployment source directory.
This resolves the deployment cache issue where md-render --edit was using
old control files instead of the new enhanced ControlBase architecture.

Now all controls properly use the enhanced ControlBase with 5 behaviors:
- Icon-only collapsed state
- Expand/drag functionality
- Bottom-left resize handle
- Collapse button returns to original position
- Header toggle for content visibility

The enhanced control system is now fully deployed and functional.
2025-11-14 13:52:13 +01:00
76b5bb1106 fix: resolve JavaScript const redeclaration and MarkitectMain issues
**JavaScript Fixes:**
- Fixed const redeclaration error: removed duplicate MARKITECT_STRICT_MODE declaration from control-base.js
- Fixed MarkitectMain not available: updated plugin to load main-updated.js instead of main.js
- Added MARKITECT_STRICT_MODE declaration to main-updated.js for consistency
- Ensured only one main file is loaded to prevent conflicts

**Plugin Asset Updates:**
- Changed testdrive-jsui plugin asset list from main.js to main-updated.js
- Verified proper loading order and dependency resolution
- All JavaScript constants now declared exactly once

**Testing Infrastructure:**
- Comprehensive JavaScript fix verification test
- Browser-ready test file generation for manual verification
- Automated const declaration conflict detection
- Asset loading order validation

**Key Fixes:**
-  "Uncaught SyntaxError: redeclaration of const MARKITECT_STRICT_MODE" →  Resolved
-  "⚠️ MarkitectMain not available, edit functionality may be limited" →  Resolved
-  Multiple main.js files causing conflicts →  Single main-updated.js loaded

**Verification Results:**
```
 No const declaration conflicts
 MarkitectMain properly declared once
 Correct main-updated.js file loaded
 HTML references correct scripts
```

Browser console should now show:
- 🎯 "TestDrive JSUI loading complete, initializing..."
- 🚀 "Starting MarkitectMain initialization..."
-  No redeclaration errors

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 09:25:00 +01:00
8ef356af57 feat: implement plugin infrastructure for rendering engines
Added comprehensive plugin system for independent JavaScript UI development:

**Plugin Infrastructure:**
- Extended existing MarkiTect plugin system with RenderingEnginePlugin base class
- Added RENDERING plugin type to PluginType enum
- Created RenderingConfig for asset management and deployment
- Implemented RenderingEngineManager for plugin discovery and lifecycle

**TestDrive JSUI Plugin:**
- Extracted JavaScript UI components to independent testdrive-jsui plugin
- Created standalone development environment (no Python required)
- Implemented compass-positioned control panels (NW, NE, E, SE)
- Added clean JSON configuration interface for Python↔JavaScript data transfer

**Asset Management:**
- Development mode: serve assets directly from plugin source directory
- Production mode: deploy to _markitect/plugins/[plugin-name]/ structure
- Configurable asset URLs and deployment strategies
- Support for external dependencies (CDN resources)

**Standalone Development:**
- testdrive-jsui/test.html for browser-based development
- Package.json with npm scripts for development server
- Complete separation of JavaScript development from Python environment
- Hot reload and standard web development workflow

**Integration Demo:**
- demo_plugin_integration.py showcasing all plugin capabilities
- Standalone, plugin discovery, production deployment examples
- Asset URL generation for different deployment modes

This enables JavaScript-first development while maintaining clean integration
with the MarkiTect Python ecosystem. Developers can now work on UI components
independently using standard web development tools and workflows.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-14 06:49:41 +01:00