Initial commit: COPILOT D6 Flutter keyboard controller
Flutter web app replacing legacy WPF CCTV surveillance keyboard controller. Includes wall overview, section view with monitor grid, camera input, PTZ control, alarm/lock/sequence BLoCs, and legacy-matching UI styling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
99
Docs/legacy-architecture/index.html
Normal file
99
Docs/legacy-architecture/index.html
Normal file
@@ -0,0 +1,99 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>COPILOT D6 Legacy Architecture</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple-dark.css">
|
||||
<style>
|
||||
:root {
|
||||
--base-font-size: 15px;
|
||||
--theme-color: #3b82f6;
|
||||
--sidebar-width: 260px;
|
||||
--sidebar-background: #1e1e2e;
|
||||
--sidebar-nav-link-color--active: #3b82f6;
|
||||
}
|
||||
.markdown-section pre {
|
||||
background-color: #1e1e2e;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.markdown-section table {
|
||||
display: table;
|
||||
width: 100%;
|
||||
}
|
||||
.markdown-section h1 {
|
||||
border-bottom: 2px solid #3b82f6;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
.mermaid svg {
|
||||
max-width: 100%;
|
||||
}
|
||||
.mermaid {
|
||||
text-align: center;
|
||||
margin: 1em 0;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app">Loading...</div>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
|
||||
<script>
|
||||
mermaid.initialize({
|
||||
startOnLoad: false,
|
||||
theme: 'dark',
|
||||
securityLevel: 'loose',
|
||||
flowchart: { useMaxWidth: true, htmlLabels: true },
|
||||
sequence: { useMaxWidth: true }
|
||||
});
|
||||
|
||||
window.$docsify = {
|
||||
name: 'COPILOT D6',
|
||||
repo: '',
|
||||
loadSidebar: '_sidebar.md',
|
||||
subMaxLevel: 3,
|
||||
auto2top: true,
|
||||
search: {
|
||||
placeholder: 'Search docs...',
|
||||
noData: 'No results.',
|
||||
depth: 3
|
||||
},
|
||||
// Intercept mermaid code blocks at the markdown parser level
|
||||
markdown: {
|
||||
renderer: {
|
||||
code: function(code, lang) {
|
||||
if (lang && lang.toLowerCase() === 'mermaid') {
|
||||
return '<div class="mermaid">' + code + '</div>';
|
||||
}
|
||||
return this.origin.code.apply(this, arguments);
|
||||
}
|
||||
}
|
||||
},
|
||||
plugins: [
|
||||
function(hook) {
|
||||
// Strip YAML frontmatter before markdown parsing
|
||||
hook.beforeEach(function(content) {
|
||||
return content.replace(/^---[\s\S]*?---\n*/m, '');
|
||||
});
|
||||
|
||||
// Render mermaid diagrams after DOM update
|
||||
hook.doneEach(function() {
|
||||
var els = document.querySelectorAll('.mermaid');
|
||||
if (els.length > 0) {
|
||||
// Reset any previously processed elements
|
||||
els.forEach(function(el) {
|
||||
el.removeAttribute('data-processed');
|
||||
});
|
||||
mermaid.run({ nodes: Array.from(els) }).catch(function(e) {
|
||||
console.error('Mermaid render error:', e);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/docsify.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user