wcl_wdoc 0.11.2-alpha

WCL documentation format — build structured docs with WCL, render to HTML
    export let widget_button = (b) => {
        let w = attr_or(b, "width", 120)
        let h = attr_or(b, "height", 38)
        let label = attr_or(b, "label", "Button")
        let variant = attr_or(b, "variant", "primary")
        let default_fill = variant == "secondary" ? "var(--color-nav-bg)" : (variant == "outline" ? "none" : "var(--color-link)")
        let default_stroke = variant == "secondary" ? "var(--color-nav-border)" : "var(--color-link)"
        let default_text_fill = variant == "primary" ? "#fff" : (variant == "outline" ? "var(--color-link)" : "currentColor")
        let fill = attr_or(b, "background_fill", default_fill)
        let stroke = attr_or(b, "border_stroke", default_stroke)
        let text_fill = attr_or(b, "label_fill", default_text_fill)
        let radius = attr_or(b, "radius", 6)
        let border_width = attr_or(b, "border_width", 1.5)
        [
            { kind = "rect", x = 0, y = 0, width = w, height = h, rx = radius,
              fill = fill, stroke = stroke, stroke_width = border_width },
            { kind = "text", x = 0, y = 0, width = w, height = h,
              content = label, font_size = 13, fill = text_fill }
        ]
    }