feat(web): group plugin pages by plugin in sidebar with collapsible sections

- Group pages by plugin when a plugin has multiple pages, collapse under
  the plugin label; single-page plugins render directly without nesting
- Rename "Extension Pages" to "Plugin Pages" with tooltip explaining
  these are visual pages provided by installed plugins
- Add pluginLabel to PluginPageItem for display

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Junyan Qin
2026-04-25 20:06:03 +08:00
parent 12df9d6ee9
commit 5f3cecfbe2
4 changed files with 89 additions and 24 deletions
+4 -3
View File
@@ -5,7 +5,8 @@ const enUS = {
installedPlugins: 'Installed Plugins',
pluginMarket: 'Marketplace',
mcpServers: 'MCP Servers',
pluginPages: 'Extension Pages',
pluginPages: 'Plugin Pages',
pluginPagesTooltip: 'Visual pages provided by installed plugins',
quickStart: 'Quick Start',
},
common: {
@@ -1294,8 +1295,8 @@ const enUS = {
},
},
pluginPages: {
selectFromSidebar: 'Select an extension page from the sidebar',
invalidPage: 'Invalid extension page',
selectFromSidebar: 'Select a plugin page from the sidebar',
invalidPage: 'Invalid plugin page',
},
};
+4 -3
View File
@@ -5,7 +5,8 @@ const zhHans = {
installedPlugins: '已安装插件',
pluginMarket: '插件市场',
mcpServers: 'MCP 服务器',
pluginPages: '扩展页',
pluginPages: '插件页面',
pluginPagesTooltip: '由已安装的插件提供的可视化页面',
quickStart: '快速开始向导',
},
common: {
@@ -1236,8 +1237,8 @@ const zhHans = {
},
},
pluginPages: {
selectFromSidebar: '从侧边栏选择一个扩展页',
invalidPage: '无效的扩展页',
selectFromSidebar: '从侧边栏选择一个插件页面',
invalidPage: '无效的插件页面',
},
};