Files
markitect-main/capabilities/testdrive-jsui/static/css/editor.css
tegwick ab3f0db86f feat: consolidate testdrive-jsui to capabilities and implement plugin self-declaration
## Major Changes
- Moved all testdrive-jsui assets from root to capabilities/testdrive-jsui/
- Consolidated directory structure: js/, static/css/, static/images/, static/templates/
- Implemented plugin self-declaration (get_plugin_source_dir, get_asset_paths)
- Removed hardcoded plugin discovery from rendering.py
- Updated all asset paths to be relative to capability root

## Architecture Improvements
- Single source of truth for all testdrive-jsui assets
- Plugin declares its own location (no hardcoded paths)
- Generic plugin discovery using hasattr check
- Clean separation: all JS in .js files, no code mixing
- Standalone capability ready for independent use

## Files Changed
- markitect/plugins/testdrive_jsui.py: Added self-declaration methods
- markitect/plugins/rendering.py: Removed hardcoded discovery
- capabilities/testdrive-jsui/README.md: Added standalone usage documentation
- Moved 17 asset files to consolidated structure
- Deleted obsolete /testdrive-jsui/ root directory

## Testing
- All 17 assets verified and working
- Tested via CLI: markitect md-render --engine testdrive-jsui
- Full document rendering successful

Prepares testdrive-jsui to become a git submodule with proper dependency management.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-15 23:42:54 +01:00

101 lines
2.3 KiB
CSS

/**
* TestDrive JSUI Editor Styles
*
* Base styles for the markdown editor interface
*/
.markitect-edit-mode {
position: relative;
}
/* Section editing styles */
.markitect-section {
position: relative;
padding: 0.5rem;
margin: 0.5rem 0;
border: 1px solid transparent;
border-radius: 4px;
cursor: pointer;
transition: all 0.2s ease;
}
.markitect-section:hover {
background-color: #f8f9fa;
border-color: #e9ecef;
}
.markitect-section.editing {
background-color: #fff;
border-color: #007bff;
box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}
/* Editor styles */
.markitect-editor {
width: 100%;
min-height: 100px;
padding: 0.75rem;
border: none;
background: transparent;
font-family: inherit;
font-size: inherit;
line-height: inherit;
resize: vertical;
}
.markitect-editor:focus {
outline: none;
}
/* Control panel positioning */
.markitect-control-panel {
position: fixed;
z-index: 1000;
background: #fff;
border: 1px solid #dee2e6;
border-radius: 6px;
padding: 0.75rem;
min-width: 200px;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
/* Compass positioning */
.markitect-control-nw { top: 20px; left: 20px; }
.markitect-control-ne { top: 20px; right: 20px; }
.markitect-control-e { top: 50%; right: 20px; transform: translateY(-50%); }
.markitect-control-se { bottom: 20px; right: 20px; }
.markitect-control-s { bottom: 20px; left: 50%; transform: translateX(-50%); }
.markitect-control-sw { bottom: 20px; left: 20px; }
.markitect-control-w { top: 50%; left: 20px; transform: translateY(-50%); }
/* Control panel states */
.markitect-control-collapsed {
width: 40px;
height: 40px;
overflow: hidden;
}
.markitect-control-expanded {
max-width: 300px;
max-height: 400px;
}
/* Debug styles */
.markitect-debug-panel {
font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
font-size: 12px;
background: #2d3748;
color: #e2e8f0;
max-height: 300px;
overflow-y: auto;
}
.markitect-debug-message {
padding: 0.25rem 0.5rem;
border-bottom: 1px solid #4a5568;
}
.markitect-debug-error { color: #fed7d7; }
.markitect-debug-warning { color: #faf089; }
.markitect-debug-success { color: #9ae6b4; }
.markitect-debug-info { color: #bee3f8; }