Skip to content

3.1 Implement quick pick and input box #27

Description

@goofmint

Part of Phase 3 — Directory workflow (tasks.md Task 3.1).

Summary

Implement the core modal overlay layer with showQuickPick, showInputBox, and showMessage.

Details

  • Modal overlay layer owned by core (centered overlay component) — the palette and pickers must exist before any extension UI (design.md §12).
  • showQuickPick(items, opts): list rendering, filter-as-you-type, keyboard navigation (up/down/enter/escape), returns the selected item or undefined on cancel.
  • showInputBox(opts): single-line input with placeholder/validation hook, returns the value or undefined.
  • showMessage routed to the status bar (MVP: no modal message dialogs).
  • Focus management: opening a modal moves focus and sets a context key; closing restores prior focus.

Completion requirements

  • Interaction tests: filter narrows the list, enter resolves, escape resolves undefined
  • Focus restore verified after close (context keys and OpenTUI focus)
  • Snapshot tests of quick pick (with filter active) and input box
  • API contract tests extended to cover tecode.window fully
  • bun test and lint pass

References

  • requirements.md: Req 10.1 (tecode.window)
  • design.md: §12

Dependencies

Blocked by: 1.14 (#15). Blocks 3.2 and parts of 3.3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions