using Connected.Annotations;
using Connected.Utilities;
using Microsoft.AspNetCore.Components;

namespace Connected.Components;

public partial class Card : UIComponent
{
	protected string Classname =>
	new CssBuilder("card")
	  .AddClass(AdditionalClassList)
	.Build();

	/// <summary>
	/// The higher the number, the heavier the drop-shadow. 0 for no shadow.
	/// </summary>
	[Parameter]
	[Category(CategoryTypes.Card.Appearance)]
	public int Elevation { set; get; } = 1;

	/// <summary>
	/// If true, border-radius is set to 0.
	/// </summary>
	[Parameter]
	[Category(CategoryTypes.Card.Appearance)]
	public bool Square { get; set; }

	/// <summary>
	/// If true, card will be outlined.
	/// </summary>
	[Parameter]
	[Category(CategoryTypes.Card.Appearance)]
	public bool Outlined { get; set; }

	/// <summary>
	/// Child content of the component.
	/// </summary>
	[Parameter]
	[Category(CategoryTypes.Card.Behavior)]
	public RenderFragment ChildContent { get; set; }
}
