CUB-26: Quick-jump drawer and modal components
All checks were successful
Dev Build / build-test (pull_request) Successful in 2m5s

This commit is contained in:
2026-04-28 09:14:30 -04:00
parent 8331468b44
commit e84a479e33
14 changed files with 1248 additions and 11 deletions

View File

@@ -1,7 +1,9 @@
import {
ChangeDetectionStrategy,
Component,
EventEmitter,
Input,
Output,
computed,
} from '@angular/core';
import { CommonModule } from '@angular/common';
@@ -11,11 +13,13 @@ import { MatButtonModule } from '@angular/material/button';
import { MatProgressBarModule } from '@angular/material/progress-bar';
import { MatTooltipModule } from '@angular/material/tooltip';
import { AgentStatus } from '../../../models/agent.model';
import { LongPressDirective } from '../../../directives/long-press.directive';
// ============================================================================
// AgentCard Component
// Per spec Section 7.3: Composes Agent Status Badge, Task Progress Bar,
// and QuickJump Button into a card with leftborder status accent.
// CUB-26: Emits cardClick and cardLongPress for drawer/modal integration.
// ============================================================================
@Component({
@@ -28,6 +32,7 @@ import { AgentStatus } from '../../../models/agent.model';
MatButtonModule,
MatProgressBarModule,
MatTooltipModule,
LongPressDirective,
],
templateUrl: './agent-card.component.html',
styleUrl: './agent-card.component.scss',
@@ -68,6 +73,14 @@ export class AgentCardComponent {
/** Error message (shown only when status is 'error') */
@Input() errorMessage = '';
// --- CUB-26: Outputs for drawer/modal integration ---
/** Emitted when the card is clicked — opens the session drawer. */
@Output() readonly cardClick = new EventEmitter<string>();
/** Emitted when the card is long-pressed — bypasses drawer, opens session log directly. */
@Output() readonly cardLongPress = new EventEmitter<string>();
// --- Computed values ---
/** Map status → CSS custom property for the leftborder accent */