/** * CLI Branding - ASCII Art & Colors */ import chalk from "chalk"; import figlet from "figlet"; import gradient from "gradient-string"; /** * OpenCodeHub ASCII Art Logo */ export function showLogo(): void { const logo = figlet.textSync("OpenCodeHub", { font: "Standard", horizontalLayout: "default", verticalLayout: "default", }); console.log(gradient.pastel.multiline(logo)); console.log(chalk.hex("#6272a4")(" Stack-first PR workflows from your terminal\n")); } /** * Compact logo for operations */ export function showCompactLogo(): void { const logo = figlet.textSync("OCH", { font: "Small", horizontalLayout: "fitted", }); console.log(gradient.cristal.multiline(logo)); } /** * Success celebration ASCII art */ export function showSuccess(message: string): void { const art = ` ✨ ${chalk.hex("#50fa7b").bold("SUCCESS!")} ✨ ${chalk.hex("#50fa7b")(message)} `; console.log(art); } /** * Color scheme */ export const colors = { success: chalk.hex("#50fa7b"), error: chalk.hex("#ff5555"), warning: chalk.hex("#f1fa8c"), info: chalk.hex("#8be9fd"), highlight: chalk.hex("#ff79c6"), dim: chalk.hex("#6272a4"), bold: chalk.bold, }; /** * Styled console methods */ export const log = { success: (msg: string) => console.log(colors.success("✓"), msg), error: (msg: string) => console.log(colors.error("✗"), msg), warning: (msg: string) => console.log(colors.warning("⚠"), msg), info: (msg: string) => console.log(colors.info("ℹ"), msg), step: (msg: string) => console.log(colors.highlight("→"), msg), dim: (msg: string) => console.log(colors.dim(msg)), };