1.9 KiB
1.9 KiB
Collection Window Feature
Purpose: Provide an overview list or tree of objects within a namespace or category (e.g., "All Pods", "ns/payments").
Size: Default 540 × 480 px.
Header:
- Title (e.g., "pods · ns/payments") with status summary badges (✓ N / ⚠ N / ✗ N).
- Filter input (auto‑focused on open) using
IBM Plex Monoat 12 px. - Keyboard hint (
↑↓ ⌥L/S/D/Y). - Buttons to toggle List vs Tree view.
List Mode:
- Row shows shape glyph, name, relation tag (muted), health metric, type badge, view shortcuts (⌥L/S/D/Y), status dot.
- Selected row:
background: accentDim; border-left: 2px solid accent. - Hover row:
background: rgba(255,255,255,.04). - Sorting: degraded/failed first, then pending, then ready; alphabetical within groups.
Tree Mode:
- Hierarchical view similar to k9s "xray".
- Workloads expand to show their pods; pods expand to show ConfigMaps, Secrets, PVCs.
- Services/Ingresses expand to show targets.
- Relation tags:
pod,configMap,secret,volume,selects,routes,used by. - Indentation
20 px × depthwith L‑shaped connector border. - Filtering retains matching nodes and all ancestors so hierarchy stays readable.
Interaction:
- Typing filters instantly (no mode switch).
↑/↓moves selection highlight.⌥L/S/D/Yopens the respective view for the selected row (same shortcuts as Spotlight).Enteropens the default view for the selected row.Escapeblurs the filter input.- Mouse‑over the collection window and start typing focuses the filter input.
- Resizing follows the same rules as other Detail Windows (sibling windows resize proportionally).
State (CollectionState interface in design docs):
interface CollectionState {
[wid: string]: {
search: string;
view: 'list' | 'tree';
sel: number; // selected row index
}
}