pib-components-dx-base 0.0.0-upstream-snapshot.2026-09-19.1

temporary fork for Politik im Blick - Dioxus components
Documentation
use super::super::component::*;
use dioxus::prelude::*;
use dioxus_icons::lucide::ArrowUpRight;

#[component]
pub fn Demo() -> Element {
    rsx! {
        style { {SIZE_DEMO_STYLE} }
        div { class: "dx-button-size-demo",

            div {
                display: "flex",
                align_items: "flex-start",
                gap: "0.5rem",
                Button { size: ButtonSize::Xs, variant: ButtonVariant::Outline, "Extra Small" }
                Button {
                    size: ButtonSize::IconXs,
                    variant: ButtonVariant::Outline,
                    aria_label: "Submit",
                    ArrowUpRightIcon {}
                }
            }

            div {
                display: "flex",
                align_items: "flex-start",
                gap: "0.5rem",
                Button { size: ButtonSize::Sm, variant: ButtonVariant::Outline, "Small" }
                Button {
                    size: ButtonSize::IconSm,
                    variant: ButtonVariant::Outline,
                    aria_label: "Submit",
                    ArrowUpRightIcon {}
                }
            }

            div {
                display: "flex",
                align_items: "flex-start",
                gap: "0.5rem",
                Button { variant: ButtonVariant::Outline, "Default" }
                Button {
                    size: ButtonSize::Icon,
                    variant: ButtonVariant::Outline,
                    aria_label: "Submit",
                    ArrowUpRightIcon {}
                }
            }

            div {
                display: "flex",
                align_items: "flex-start",
                gap: "0.5rem",
                Button { size: ButtonSize::Lg, variant: ButtonVariant::Outline, "Large" }
                Button {
                    size: ButtonSize::IconLg,
                    variant: ButtonVariant::Outline,
                    aria_label: "Submit",
                    ArrowUpRightIcon {}
                }
            }
        }
    }
}

const SIZE_DEMO_STYLE: &str = r#"
.dx-button-size-demo {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2rem;
}

@media (width >= 40rem) {
  .dx-button-size-demo {
    flex-direction: row;
  }
}
"#;

#[component]
fn ArrowUpRightIcon() -> Element {
    rsx! {
        ArrowUpRight {}
    }
}