windjammer-ui 0.3.6

Cross-platform UI framework for Windjammer (Web, Desktop, Mobile)
Documentation
// Breadcrumb - Navigation trail component

pub struct Breadcrumb {
    items: Vec<BreadcrumbItem>,
    separator: string,
    class: string,
}

pub struct BreadcrumbItem {
    label: string,
    href: string,
    active: bool,
}

impl Breadcrumb {
    pub fn new() -> Breadcrumb {
        Breadcrumb {
            items: Vec::new(),
            separator: "/".to_string(),
            class: String::new(),
        }
    }
    
    pub fn item(label: string, href: string, active: bool) -> Breadcrumb {
        self.items.push(BreadcrumbItem {
            label,
            href,
            active,
        })
        self
    }
    
    pub fn separator(separator: string) -> Breadcrumb {
        self.separator = separator
        self
    }
    
    pub fn class(class: string) -> Breadcrumb {
        self.class = class
        self
    }
    
    pub fn render() -> string {
        let mut html = String::new()
        html.push_str("<nav class=\"wj-breadcrumb ")
        html.push_str(self.class.as_str())
        html.push_str("\" style=\"display: flex; align-items: center; gap: 8px; font-size: 14px;\">")
        
        for (i, item) in self.items.iter().enumerate() {
            if i > 0 {
                html.push_str("<span style=\"color: #9ca3af;\">")
                html.push_str(self.separator.as_str())
                html.push_str("</span>")
            }
            
            if item.active {
                html.push_str("<span style=\"color: #3b82f6; font-weight: 500;\">")
                html.push_str(item.label.as_str())
                html.push_str("</span>")
            } else {
                html.push_str("<a href=\"")
                html.push_str(item.href.as_str())
                html.push_str("\" style=\"color: #6b7280; text-decoration: none; hover: color: #3b82f6;\">")
                html.push_str(item.label.as_str())
                html.push_str("</a>")
            }
        }
        
        html.push_str("</nav>")
        html
    }
}