use gilt::console::Console;
use gilt::rule::Rule;
use gilt::style::Style;
use gilt::table::Table;
use gilt::text::Text;
fn main() {
let mut console = Console::builder()
.record(true)
.force_terminal(true)
.width(60)
.no_color(false)
.build();
let rule = Rule::with_title("Gilt Export Demo");
console.print(&rule);
let mut text = Text::new("Hello from ", Style::null());
text.append_str("gilt", Some(Style::parse("bold green").unwrap()));
text.append_str("! This text is ", None);
text.append_str("recorded", Some(Style::parse("italic cyan").unwrap()));
text.append_str(" for export.", None);
console.print(&text);
let mut table = Table::new(&["Language", "Typing", "Speed"]);
table.add_row(&["Rust", "Static", "Fast"]);
table.add_row(&["Python", "Dynamic", "Moderate"]);
table.add_row(&["Go", "Static", "Fast"]);
console.print(&table);
let rule = Rule::new();
console.print(&rule);
println!("=== Exported Plain Text ===\n");
let plain = console.export_text(false, false);
print!("{}", plain);
let html = console.export_html(None, false, true);
std::fs::write("/tmp/gilt_demo.html", &html).expect("Failed to write HTML");
let svg = console.export_svg("gilt demo", None, false, None, 0.61);
std::fs::write("/tmp/gilt_demo.svg", &svg).expect("Failed to write SVG");
println!("\n=== Export Complete ===");
println!("HTML saved to: /tmp/gilt_demo.html");
println!("SVG saved to: /tmp/gilt_demo.svg");
}