using Microsoft.AspNetCore.Components;
namespace AIStudio.Components;
///
/// A stepper that leaves the step navigation to the application instead of the user.
///
///
/// MudBlazor renders Previous, Next, Skip, and Complete buttons by default. AI Studio drives its
/// steppers from application state — a running build, or an install flow that advances when each
/// step succeeds — so those buttons have nothing to do and would only look broken when clicked.
/// This component removes them once instead of once per assistant, and carries the shared step
/// colors so the steppers stay visually consistent.
///
public partial class MudStepperWithoutActions : ComponentBase
{
///
/// Gets or sets the step the stepper points at.
///
[Parameter]
public int ActiveIndex { get; set; }
///
/// Gets or sets the callback raised when the active step changed.
///
[Parameter]
public EventCallback ActiveIndexChanged { get; set; }
///
/// Gets or sets whether the user must not change the active step.
///
///
/// Set this when the displayed process runs on its own. The step headers stay visible, but
/// clicking them no longer moves the stepper away from the step the application selected.
///
[Parameter]
public bool ReadOnly { get; set; }
///
/// Gets or sets additional CSS classes for the stepper.
///
[Parameter]
public string Class { get; set; } = string.Empty;
///
/// Gets or sets the steps to render.
///
[Parameter]
public RenderFragment? ChildContent { get; set; }
///
/// The marker class that lets app.css hide the action bar MudBlazor renders around the actions.
///
private const string MARKER_CLASS = "mud-stepper-without-actions";
private string Classname => string.IsNullOrWhiteSpace(this.Class) ? MARKER_CLASS : $"{MARKER_CLASS} {this.Class}";
///
/// Blocks step changes that the user triggered while the stepper is read-only.
///
/// The interaction to inspect.
/// A completed task.
private Task PreviewInteractionAsync(StepperInteractionEventArgs args)
{
if (this.ReadOnly)
args.Cancel = true;
return Task.CompletedTask;
}
}