UNPKG

@capgo/cli

Version:
67 lines (66 loc) 1.94 kB
import type { FC, ReactNode } from 'react'; import type { Platform } from '../types.js'; import type { PlatformPickerLayout } from './frame-fit.js'; export type PlatformKeyAction = { type: 'move'; delta: number; } | { type: 'jump'; platform: Platform; } | { type: 'confirm'; } | null; export declare function platformKeyAction(input: string, key: { leftArrow?: boolean; rightArrow?: boolean; return?: boolean; }): PlatformKeyAction; interface PlatformCardProps { emoji: string; name: string; hint: string; selected: boolean; } export declare const PlatformCard: FC<PlatformCardProps>; export interface PlatformPickerProps { layout: PlatformPickerLayout; onSelect: (platform: Platform) => void; /** Rendered directly below the legend (flush, no gap). */ footer?: ReactNode; } export declare const PlatformPicker: FC<PlatformPickerProps>; export interface CardChoice { value: string; emoji: string; name: string; hint: string; } export type CardKeyAction = { type: 'move'; delta: number; } | { type: 'jump'; index: number; } | { type: 'confirm'; } | null; export declare function cardKeyAction(input: string, key: { leftArrow?: boolean; rightArrow?: boolean; return?: boolean; }, count: number): CardKeyAction; export interface CardChooserProps { layout: PlatformPickerLayout; question: string; subtitle?: string; options: CardChoice[]; /** Index of the card highlighted on first render (default 0 = leftmost). */ defaultIndex?: number; /** Rendered directly below the legend (flush, no gap). */ footer?: ReactNode; onSelect: (value: string) => void; } /** A heading + bordered cards (←/→/Enter) — or a Select on narrow terminals — * for any small choice. Reuses PlatformCard so the boxes match the platform picker. */ export declare const CardChooser: FC<CardChooserProps>; export {};