Files
fusion/packages/dashboard/app/components/WorkflowStepManager.css
Fusion 5bf33e8f66 feat(FN-3096): update restart integration store mock for plugin templates
Updates the restart integration test mock to account for plugin template behavior, keeping the test in sync with recent plugin template changes.

Fusion-Task-Id: FN-3096
2026-05-05 06:32:34 -07:00

529 lines
9.2 KiB
CSS

/* === Workflow Step Manager Modal === */
.modal.workflow-step-manager-modal {
width: min(900px, 95vw);
max-width: 95vw;
min-width: 480px;
height: 80vh;
min-height: 480px;
max-height: calc(100dvh - var(--overlay-padding-top, 10vh) - 16px);
overflow: hidden;
resize: both;
}
.wfm-body {
padding: var(--space-md);
flex: 1;
min-height: 0;
overflow-y: auto;
}
/* Loading / empty states */
.wfm-empty {
text-align: center;
padding: var(--space-xl);
color: var(--text-muted);
font-size: 14px;
}
.wfm-loading {
text-align: center;
padding: var(--space-xl);
color: var(--text-muted);
}
/* Tab navigation row */
.wfm-tab-row {
display: flex;
gap: var(--space-sm);
margin-bottom: var(--space-md);
border-bottom: 1px solid var(--border);
padding-bottom: var(--space-sm);
}
.wfm-tab-btn {
display: flex;
align-items: center;
gap: 6px;
font-size: 13px;
padding: 6px 12px;
}
/* Step list */
.wfm-step-list {
display: flex;
flex-direction: column;
gap: var(--space-sm);
}
/* Step card */
.wfm-step-card {
padding: 12px 16px;
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: var(--bg-secondary);
}
.wfm-step-card-top {
display: flex;
justify-content: space-between;
align-items: flex-start;
}
.wfm-step-card-info {
flex: 1;
min-width: 0;
}
.wfm-step-card-title-row {
display: flex;
align-items: center;
gap: var(--space-sm);
margin-bottom: 4px;
}
.wfm-step-card-name {
font-weight: 600;
font-size: 14px;
}
.wfm-step-card-desc {
font-size: 12px;
color: var(--text-muted);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.wfm-step-card-actions {
display: flex;
gap: 4px;
margin-left: var(--space-sm);
flex-shrink: 0;
}
.wfm-delete-confirm {
display: flex;
gap: 4px;
align-items: center;
}
/* Badges */
.wfm-badge {
font-size: 11px;
padding: 2px 6px;
border-radius: var(--radius-sm);
}
.wfm-badge-enabled {
background: color-mix(in srgb, var(--ws-success) 15%, transparent);
color: var(--ws-success);
}
.wfm-badge-disabled {
background: var(--bg-tertiary);
color: var(--text-muted);
}
.wfm-badge-prompt {
background: color-mix(in srgb, var(--ws-pre-merge) 15%, transparent);
color: var(--ws-pre-merge);
}
.wfm-badge-script {
background: color-mix(in srgb, var(--ws-post-merge) 15%, transparent);
color: var(--ws-post-merge);
}
.wfm-badge-pre-merge {
background: color-mix(in srgb, var(--ws-pre-merge) 15%, transparent);
color: var(--ws-pre-merge);
}
.wfm-badge-post-merge {
background: color-mix(in srgb, var(--ws-info) 15%, transparent);
color: var(--ws-info);
}
.wfm-badge-default-on {
background: color-mix(in srgb, var(--ws-warning) 15%, transparent);
color: var(--ws-warning);
}
.wfm-badge-category {
font-size: 11px;
padding: 2px 6px;
border-radius: var(--radius-sm);
}
.wfm-badge-category-quality {
background: color-mix(in srgb, var(--ws-quality) 15%, transparent);
color: var(--ws-quality);
}
.wfm-badge-category-security {
background: color-mix(in srgb, var(--ws-security) 15%, transparent);
color: var(--ws-security);
}
.wfm-badge-category-plugin {
background: color-mix(in srgb, var(--color-info) 15%, transparent);
color: var(--color-info);
}
.wfm-delete-confirm-btn {
color: var(--ws-error);
}
/* Template cards */
.wfm-template-list {
display: flex;
flex-direction: column;
gap: 12px;
}
.wfm-template-card {
padding: var(--space-md);
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: var(--bg-secondary);
}
.wfm-template-inner {
display: flex;
gap: 12px;
align-items: flex-start;
}
.wfm-template-icon {
padding: var(--space-sm);
border-radius: var(--radius-sm);
background: var(--bg-tertiary);
color: var(--text);
flex-shrink: 0;
}
.wfm-template-content {
flex: 1;
min-width: 0;
}
.wfm-template-title-row {
display: flex;
align-items: center;
gap: var(--space-sm);
margin-bottom: 4px;
}
.wfm-template-name {
font-weight: 600;
font-size: 14px;
}
.wfm-template-desc {
font-size: 12px;
color: var(--text-muted);
margin-bottom: var(--space-sm);
}
.wfm-template-add-btn {
font-size: 12px;
padding: 4px 12px;
display: flex;
align-items: center;
gap: 4px;
}
/* Create chooser */
.wfm-create-chooser {
display: flex;
flex-direction: column;
gap: var(--space-md);
padding: var(--space-md);
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: var(--bg-secondary);
}
.wfm-create-chooser-hint {
margin: 0;
color: var(--text-muted);
}
.wfm-create-custom-btn {
display: flex;
align-items: center;
justify-content: center;
gap: var(--space-xs);
}
/* Edit/create form */
.wfm-form {
padding: var(--space-md);
border: 1px solid var(--border);
border-radius: var(--radius-md);
background: var(--bg-secondary);
}
.wfm-form-title {
margin: 0 0 12px;
font-size: 14px;
font-weight: 600;
}
.wfm-form-fields {
display: flex;
flex-direction: column;
gap: var(--space-md);
}
.wfm-field label,
.wfm-field-label {
display: block;
font-size: 12px;
color: var(--text-muted);
margin-bottom: 4px;
}
.wfm-field input[type="text"],
.wfm-field textarea,
.wfm-field select {
width: 100%;
padding: 8px 12px;
border-radius: var(--radius-md);
border: 1px solid var(--border);
background: var(--bg);
color: var(--text);
font-size: 13px;
font-family: inherit;
outline: none;
transition:
border-color var(--transition-fast),
box-shadow var(--transition-fast);
}
.wfm-field input[type="text"]:focus,
.wfm-field textarea:focus,
.wfm-field select:focus {
border-color: var(--todo);
box-shadow: var(--focus-ring);
}
.wfm-field textarea {
resize: vertical;
}
.wfm-field textarea.wfm-prompt-textarea {
font-family: var(--font-mono, monospace);
}
/* Mode selector */
.wfm-mode-selector {
display: flex;
gap: var(--space-sm);
}
.wfm-mode-btn {
display: flex;
align-items: center;
gap: 6px;
font-size: 12px;
padding: 6px 12px;
flex: 1;
justify-content: center;
}
/* Prompt header row (label + refine button) */
.wfm-prompt-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 4px;
}
.wfm-refine-btn {
font-size: 12px;
display: flex;
align-items: center;
gap: 4px;
}
.wfm-refine-btn span {
font-size: 11px;
}
/* No-scripts placeholder */
.wfm-no-scripts {
padding: 8px 12px;
border-radius: var(--radius-md);
border: 1px solid var(--border);
background: var(--bg-tertiary);
color: var(--text-muted);
font-size: 12px;
}
/* Checkbox toggle */
.wfm-checkbox-label {
display: flex;
align-items: center;
gap: var(--space-sm);
font-size: 13px;
cursor: pointer;
}
.wfm-checkbox-label input[type="checkbox"] {
accent-color: var(--todo);
}
/* Form actions */
.wfm-form-actions {
display: flex;
justify-content: flex-end;
gap: var(--space-sm);
margin-top: 4px;
}
/* Footer */
.wfm-footer {
padding: 12px 16px;
border-top: 1px solid var(--border);
}
.wfm-footer-add-btn {
display: flex;
align-items: center;
gap: 6px;
}
/* Spinner */
.wfm-spinner {
margin: 0 auto var(--space-sm);
}
.wfm-model-header {
display: flex;
align-items: center;
justify-content: space-between;
gap: 8px;
}
.wfm-model-header label {
margin-bottom: 0;
}
.wfm-model-clear-btn {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: 11px;
color: var(--text-tertiary);
background: none;
border: none;
cursor: pointer;
padding: 2px 6px;
border-radius: 4px;
}
.wfm-model-clear-btn:hover {
color: var(--text-secondary);
background: var(--bg-tertiary);
}
.wfm-model-hint {
display: block;
font-size: 11px;
color: var(--text-tertiary);
margin-bottom: 6px;
}
@media (max-width: 768px) {
/* Full-screen sheet on mobile — drop the overlay's top padding so the
modal fills the viewport instead of being pushed below it. */
.modal-overlay:has(.workflow-step-manager-modal) {
padding-top: 0;
align-items: stretch;
justify-content: stretch;
}
.modal.workflow-step-manager-modal {
width: 100vw;
min-width: 0;
max-width: 100vw;
height: 100dvh;
min-height: 0;
max-height: 100dvh;
margin: 0;
border: none;
border-radius: 0;
resize: none;
}
.wfm-body {
flex: 1;
min-height: 0;
max-height: none;
overflow-y: auto;
}
.wfm-tab-row {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
scrollbar-width: none;
}
.wfm-tab-row::-webkit-scrollbar {
display: none;
}
.wfm-tab-btn {
flex-shrink: 0;
white-space: nowrap;
}
.wfm-step-card-top {
flex-wrap: wrap;
gap: var(--space-sm);
}
.wfm-step-card-title-row {
flex-wrap: wrap;
}
.wfm-step-card-actions {
flex-wrap: wrap;
margin-left: 0;
width: 100%;
justify-content: flex-end;
}
.wfm-step-card-desc {
overflow: visible;
text-overflow: clip;
white-space: normal;
word-break: break-word;
}
.wfm-template-inner {
flex-direction: column;
}
.wfm-mode-selector {
flex-wrap: wrap;
}
.wfm-form-actions {
flex-direction: column;
}
.wfm-form-actions .btn {
width: 100%;
}
.wfm-create-custom-btn {
width: 100%;
}
.wfm-footer {
padding: 12px 14px;
}
}