@ideascol/cli-maker
Version:
A simple library to help create CLIs
55 lines (54 loc) • 1.73 kB
TypeScript
export interface BoxOptions {
borderColor?: string;
borderStyle?: 'single' | 'double' | 'dashed' | 'rounded';
padding?: number;
title?: string;
titleColor?: string;
maxWidth?: number;
}
/**
* Draw a box around content lines with optional title.
*/
export declare function drawBox(contentLines: string[], opts?: BoxOptions): string;
/**
* Draw a two-column box panel (like Claude Code's welcome screen).
* Spans the full terminal width with a ~45%/55% column split.
*/
export declare function drawTwoColumnBox(leftLines: string[], rightLines: string[], opts?: BoxOptions & {
dividerChar?: string;
leftRatio?: number;
}): string;
/**
* Render an info bar (single line with dim background).
*/
export declare function infoBar(text: string): string;
/**
* Render a separator line.
*/
export declare function separator(char?: string, width?: number): string;
/**
* Render a tool call header (Claude-style ⏺ indicator with left accent).
*/
export declare function toolCallHeader(toolName: string, description: string): string;
/**
* Render a tool call argument list.
*/
export declare function toolCallArgs(args: Record<string, any>): string;
/**
* Render a tool result box (indented, with subtle border).
*/
export declare function toolResultBox(result: string): string;
/**
* Render a section header with aligned items (for /help, /tools).
*/
export declare function sectionHeader(title: string): string;
/**
* Render aligned key-value rows (for /help listing).
* Automatically calculates the widest key for alignment.
*/
export declare function alignedList(items: Array<{
key: string;
value: string;
keyColor?: string;
prefix?: string;
}>, indent?: number): string;