33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
// ASCII art banner for Flynn TUI startup
|
|
|
|
/**
|
|
* Flynn ASCII art banner using block characters.
|
|
* Raw art lines without any color codes — callers apply their own styling.
|
|
*/
|
|
export const FLYNN_BANNER = `
|
|
███████╗██╗ ██╗ ██╗███╗ ██╗███╗ ██╗
|
|
██╔════╝██║ ╚██╗ ██╔╝████╗ ██║████╗ ██║
|
|
█████╗ ██║ ╚████╔╝ ██╔██╗ ██║██╔██╗ ██║
|
|
██╔══╝ ██║ ╚██╔╝ ██║╚██╗██║██║╚██╗██║
|
|
██║ ███████╗ ██║ ██║ ╚████║██║ ╚████║
|
|
╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═══╝╚═╝ ╚═══╝`;
|
|
|
|
/**
|
|
* Returns the banner with ANSI color codes for terminal output.
|
|
* Uses orange (208) for the art and dim for the box frame.
|
|
*/
|
|
export function getColoredBanner(): string {
|
|
const orange = '\x1b[38;5;208m';
|
|
const reset = '\x1b[0m';
|
|
|
|
return `${orange}${FLYNN_BANNER}${reset}`;
|
|
}
|
|
|
|
/**
|
|
* Returns plain banner lines for use in Ink/React components.
|
|
* Each line is returned individually for flexible rendering.
|
|
*/
|
|
export function getBannerLines(): string[] {
|
|
return FLYNN_BANNER.split('\n').filter((line) => line.length > 0);
|
|
}
|