/
1.1k
Sponsor

Popover

Positioned popover with arbitrary content

Terminal

Installation

$ pnpm dlx shadcn@latest add @termcn/ink/popover

Usage

import { Popover } from "@/components/ui/popover";
<Popover
  isOpen={true}
  title="Info"
  trigger={<Text bold>[?] Help</Text>}
  onClose={() => close()}
>
  <Text>Press Enter to confirm, Esc to cancel.</Text>
</Popover>

API Reference

Popover

PropTypeDefault
triggerReactNoderequired
childrenReactNoderequired
isOpenbooleanfalse
onClose() => void-
titlestring-

Notes

Accessibility

termcn exposes the following behavior through Ink's terminal accessibility APIs. This is not a browser ARIA or general WCAG-conformance claim.

  • Keyboard: Tab / Shift+Tab move through enabled controls inside the active scope; Enter / Space activate the focused control; Escape closes only the topmost active surface and restores focus.
  • Focus and composition: While open, the active focus scope contains traversal, gives input ownership to the topmost scope, and restores focus when it closes.
  • Screen reader: Ink labels and semantic state expose the component without relying on visual styling alone.