@typeparam TValue @inherits DInputBase @* daisyUI Textarea: https://daisyui.com/components/textarea/ . Blazor sets the textarea's value property, so the bound value is the content; rows, placeholder and the like pass through. *@ @code { [Parameter] public DColor Color { get; set; } [Parameter] public DSize Size { get; set; } [Parameter] public bool Ghost { get; set; } /// Update the bound value on every keystroke instead of on change. [Parameter] public bool Immediate { get; set; } /// Adds daisyUI's validator class: error/success colors and a following DValidatorHint. [Parameter] public bool Validator { get; set; } string CssClassFull => Cx("textarea", IsInvalid ? "textarea-error" : ColorClass, SizeClass, Ghost ? "textarea-ghost" : null, Validator ? "validator" : null, CssClass); string ColorClass => Color switch { DColor.Neutral => "textarea-neutral", DColor.Primary => "textarea-primary", DColor.Secondary => "textarea-secondary", DColor.Accent => "textarea-accent", DColor.Info => "textarea-info", DColor.Success => "textarea-success", DColor.Warning => "textarea-warning", DColor.Error => "textarea-error", _ => null }; string SizeClass => Size switch { DSize.Xs => "textarea-xs", DSize.Sm => "textarea-sm", DSize.Lg => "textarea-lg", DSize.Xl => "textarea-xl", _ => null }; void OnInput(ChangeEventArgs e) { if (Immediate) CurrentValueAsString = e.Value?.ToString(); } void OnChange(ChangeEventArgs e) => CurrentValueAsString = e.Value?.ToString(); }