Add getRegisteredPlugins, plugin manager panel in test app
This commit is contained in:
@@ -40,13 +40,19 @@
|
||||
main {
|
||||
flex: 1;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
/* left: plugin manager, center: commands+interceptor, right: settings+log */
|
||||
grid-template-columns: 280px 1fr 1fr;
|
||||
grid-template-rows: 1fr 1fr;
|
||||
gap: 1px;
|
||||
background: #0f3460;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Plugin manager spans both rows */
|
||||
#panel-manager {
|
||||
grid-row: 1 / 3;
|
||||
}
|
||||
|
||||
.panel {
|
||||
background: #1a1a2e;
|
||||
display: flex;
|
||||
@@ -155,6 +161,55 @@
|
||||
|
||||
/* Theme section */
|
||||
.theme-row { display: flex; gap: 8px; flex-wrap: wrap; }
|
||||
|
||||
/* Plugin manager cards */
|
||||
.plugin-card {
|
||||
background: #0f3460;
|
||||
border: 1px solid #1e3a6e;
|
||||
border-radius: 6px;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
}
|
||||
.plugin-card-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 6px;
|
||||
}
|
||||
.plugin-name { font-weight: 700; font-size: 13px; color: #e0e0e0; }
|
||||
.plugin-version { font-size: 10px; color: #7986cb; background: #162250; padding: 1px 6px; border-radius: 8px; }
|
||||
.plugin-badges { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 2px; }
|
||||
.badge {
|
||||
font-size: 10px;
|
||||
padding: 1px 6px;
|
||||
border-radius: 8px;
|
||||
background: #162250;
|
||||
color: #90caf9;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.badge.green { background: #1a4a2e; color: #4caf50; }
|
||||
.badge.red { background: #4a1a1a; color: #e94560; }
|
||||
.badge.amber { background: #4a3a00; color: #ffb300; }
|
||||
|
||||
.plugin-unload-btn {
|
||||
font-size: 10px;
|
||||
padding: 2px 8px;
|
||||
background: #3a0f20;
|
||||
color: #e94560;
|
||||
border-radius: 4px;
|
||||
margin-top: 2px;
|
||||
align-self: flex-start;
|
||||
}
|
||||
.plugin-unload-btn:hover { background: #5a1a30; }
|
||||
|
||||
/* Load-plugin section */
|
||||
#load-plugin-row { display: flex; gap: 6px; }
|
||||
#load-plugin-row input { flex: 1; font-size: 11px; }
|
||||
#load-plugin-row button { white-space: nowrap; font-size: 11px; padding: 4px 10px; }
|
||||
|
||||
#no-plugins-msg { color: #555; font-size: 12px; text-align: center; padding: 20px 0; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -164,7 +219,21 @@
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<!-- Top-left: Commands -->
|
||||
<!-- Left: Plugin Manager (spans both rows) -->
|
||||
<div class="panel" id="panel-manager">
|
||||
<div class="panel-header">Plugin Manager</div>
|
||||
<div class="panel-body">
|
||||
<div style="font-size:11px;color:#7986cb;margin-bottom:2px;">Load plugin from file:</div>
|
||||
<div id="load-plugin-row">
|
||||
<input type="text" id="load-plugin-path" placeholder="/path/to/plugin/index.js" />
|
||||
<button class="primary" id="load-plugin-btn">Load</button>
|
||||
</div>
|
||||
<div style="margin-top:10px;font-size:11px;color:#7986cb;margin-bottom:4px;">Registered plugins:</div>
|
||||
<div id="plugin-list"><div id="no-plugins-msg">No plugins loaded</div></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Top-center: Commands -->
|
||||
<div class="panel">
|
||||
<div class="panel-header">Commands</div>
|
||||
<div class="panel-body">
|
||||
@@ -195,7 +264,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Bottom-left: Settings + Theme -->
|
||||
<!-- Bottom-center: Settings + Theme -->
|
||||
<div class="panel">
|
||||
<div class="panel-header">Settings & Theme</div>
|
||||
<div class="panel-body">
|
||||
|
||||
Reference in New Issue
Block a user