Files
esengine/packages/editor-app/src/styles/PluginUpdateDialog.css
YHH 107439d70c Feature/runtime cdn and plugin loader (#240)
* feat(ui): 完善 UI 布局系统和编辑器可视化工具

* refactor: 移除 ModuleRegistry,统一使用 PluginManager 插件系统

* fix: 修复 CodeQL 警告并提升测试覆盖率

* refactor: 分离运行时入口点,解决 runtime bundle 包含 React 的问题

* fix(ci): 添加 editor-core 和 editor-runtime 到 CI 依赖构建步骤

* docs: 完善 ServiceContainer 文档,新增 Symbol.for 模式和 @InjectProperty 说明

* fix(ci): 修复 type-check 失败问题

* fix(ci): 修复类型检查失败问题

* fix(ci): 修复类型检查失败问题

* fix(ci): behavior-tree 构建添加 @tauri-apps 外部依赖

* fix(ci): behavior-tree 添加 @tauri-apps/plugin-fs 类型依赖

* fix(ci): platform-web 添加缺失的 behavior-tree 依赖

* fix(lint): 移除正则表达式中不必要的转义字符
2025-11-27 20:42:46 +08:00

288 lines
5.3 KiB
CSS

.plugin-update-dialog-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
z-index: var(--z-index-modal);
}
.plugin-update-dialog {
background: var(--color-bg-primary, #1e1e1e);
border: 1px solid var(--color-border, #333);
border-radius: 8px;
width: 90%;
max-width: 600px;
max-height: 80vh;
display: flex;
flex-direction: column;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}
.update-dialog-header {
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 20px;
border-bottom: 1px solid var(--color-border, #333);
}
.update-dialog-header h2 {
margin: 0;
font-size: 18px;
font-weight: 600;
}
.update-dialog-close {
background: none;
border: none;
padding: 4px;
cursor: pointer;
color: var(--color-text-secondary, #888);
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
}
.update-dialog-close:hover {
background: var(--color-bg-hover, rgba(255, 255, 255, 0.1));
color: var(--color-text-primary, #fff);
}
.update-dialog-content {
flex: 1;
overflow-y: auto;
padding: 20px;
}
.update-dialog-step {
display: flex;
flex-direction: column;
gap: 16px;
}
.update-dialog-step h3 {
margin: 0;
font-size: 16px;
font-weight: 600;
}
.step-description {
color: var(--color-text-secondary, #888);
margin: 0;
}
.current-plugin-info {
padding: 12px;
background: rgba(14, 99, 156, 0.1);
border: 1px solid rgba(14, 99, 156, 0.3);
border-radius: 6px;
}
.current-plugin-info h4 {
margin: 0 0 8px 0;
font-size: 14px;
}
.current-plugin-info p {
margin: 0;
color: var(--color-text-secondary, #888);
}
.selected-folder-info {
display: flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
background: var(--color-bg-secondary, #252525);
border: 1px solid var(--color-border, #333);
border-radius: 4px;
font-size: 13px;
color: var(--color-text-secondary, #888);
}
.form-group {
display: flex;
flex-direction: column;
gap: 8px;
}
.form-group label {
font-size: 13px;
font-weight: 500;
}
.form-group input,
.form-group textarea {
padding: 8px 12px;
background: var(--color-bg-secondary, #252525);
border: 1px solid var(--color-border, #333);
border-radius: 4px;
color: var(--color-text-primary, #fff);
font-size: 13px;
font-family: inherit;
}
.form-group textarea {
resize: vertical;
}
.version-input-group {
display: flex;
gap: 8px;
}
.version-input-group input {
flex: 1;
}
.btn-browse,
.btn-suggest,
.btn-view-pr,
.btn-close,
.btn-back,
.btn-primary {
padding: 8px 16px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 13px;
font-weight: 500;
display: inline-flex;
align-items: center;
gap: 6px;
transition: all 0.2s;
}
.btn-browse {
background: var(--color-accent, #0e639c);
color: white;
}
.btn-browse:hover {
background: var(--color-accent-hover, #0d5a8c);
}
.btn-suggest {
background: rgba(14, 99, 156, 0.15);
color: var(--color-accent, #0e639c);
border: 1px solid rgba(14, 99, 156, 0.3);
white-space: nowrap;
}
.btn-suggest:hover {
background: rgba(14, 99, 156, 0.25);
}
.update-dialog-actions {
display: flex;
gap: 8px;
justify-content: flex-end;
margin-top: 8px;
}
.btn-back {
background: var(--color-bg-secondary, #252525);
color: var(--color-text-primary, #fff);
border: 1px solid var(--color-border, #333);
}
.btn-back:hover {
background: var(--color-bg-hover, rgba(255, 255, 255, 0.1));
}
.btn-primary {
background: var(--color-accent, #0e639c);
color: white;
}
.btn-primary:hover:not(:disabled) {
background: var(--color-accent-hover, #0d5a8c);
}
.btn-primary:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.progress-container {
display: flex;
flex-direction: column;
gap: 8px;
}
.progress-bar {
width: 100%;
height: 8px;
background: var(--color-bg-secondary, #252525);
border-radius: 4px;
overflow: hidden;
}
.progress-fill {
height: 100%;
background: var(--color-accent, #0e639c);
transition: width 0.3s ease;
}
.progress-message {
margin: 0;
font-size: 13px;
color: var(--color-text-secondary, #888);
}
.build-log {
margin-top: 12px;
padding: 12px;
background: var(--color-bg-secondary, #252525);
border: 1px solid var(--color-border, #333);
border-radius: 4px;
max-height: 300px;
overflow-y: auto;
font-family: 'Courier New', monospace;
font-size: 12px;
}
.log-line {
margin-bottom: 4px;
color: var(--color-text-secondary, #888);
}
.success-step,
.error-step {
align-items: center;
text-align: center;
padding: 20px;
}
.success-icon {
color: var(--color-success, #52c41a);
}
.error-icon {
color: var(--color-error, #ff4d4f);
}
.success-message,
.error-message {
margin: 16px 0;
color: var(--color-text-secondary, #888);
}
.btn-view-pr,
.btn-close {
background: var(--color-accent, #0e639c);
color: white;
margin-top: 8px;
}
.btn-view-pr:hover,
.btn-close:hover {
background: var(--color-accent-hover, #0d5a8c);
}