slint-ui-templates 0.1.0

Composable Slint UI building blocks — mother-child pattern, token-driven
Documentation
import { Colors, Type } from "../tokens/theme.slint";
import { Sizes }        from "../tokens/sizes.slint";

// A single panel content area.
// Positioned absolutely by PanelContainer — fills its assigned rect.
/// P an el sl ot component.
export component PanelSlot inherits Rectangle {
    /// Input property "panel-id".
    in property <int>    panel-id;
    /// Input property "label".
    in property <string> label: "";       // debug / placeholder label

    /// Private property "empty-label" used internally.
    private property <string> empty-label: "";

    // Width and height are set by parent (PanelContainer sets explicit dimensions)
    background: Colors.bg-elevated;
    border-color: Colors.border;
    border-width: Sizes.border-w;
    clip: true;

    // Placeholder label — replaced by actual content in real use
    if root.label != root.empty-label: Text {
        x: Colors.space-sm;
        y: Colors.space-sm;
        text: root.label;
        color: Colors.text-secondary;
        font-size: Type.caption-size;
    }
}