@namespace Components
<div class="@BT.FormFloating @CssClass">

    <input id="nametxt" placeholder="@PlaceHolder" type="@Type" @bind="@BindingValue" class="@BT.Input @BT.MarginTop(TopMargin)" @bind:event="oninput" />
    <label for="nametxt">@PlaceHolder</label>
</div>

@code {
    [Parameter]
    public string PlaceHolder { set; get; }

    private string _value;

    [Parameter]
    public string BindingValue
    {
        get => _value;
        set
        {
            if (_value == value) return;
            _value = value;
            BindingValueChanged.InvokeAsync(value);            
            ChangeMethod.InvokeAsync();
        }
    }

    [Parameter]
    public EventCallback<string> BindingValueChanged { get; set; }
    [Parameter]
    public string Type { set; get; } = "text";
    [Parameter]
    public string CssClass{ set; get; }
    [Parameter]
    public int TopMargin { set; get; } = 3;
    [Parameter] public EventCallback ChangeMethod { get; set; } = new();

}
