component LoginForm:
    state:
        email: str = ""
        password: str = ""
        is_loading: bool = False
    
    Card:
        padding: "lg"
        shadow: "md"
        content:
            VStack(spacing="md"):
                Text("Sign In", style="h2")
                
                Input(value := state.email, placeholder="Email")
                Input(value := state.password, placeholder="Password", type="password")
                
                Button("Login", intent="primary"):
                    on_click:
                        state.is_loading = True
                        Fetch(url="/api/login", method="POST")
                
                HStack(justify="center"):
                    Text("Don't have an account?", style="caption")
                    Button("Sign Up", intent="secondary"):
                        on_click: Navigate(to="/signup")

