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; } }