diff --git a/CodeBeam.MudBlazor.Extensions.Docs.Wasm/wwwroot/CodeBeam.MudBlazor.Extensions.xml b/CodeBeam.MudBlazor.Extensions.Docs.Wasm/wwwroot/CodeBeam.MudBlazor.Extensions.xml index 1479627e..10143d1a 100644 --- a/CodeBeam.MudBlazor.Extensions.Docs.Wasm/wwwroot/CodeBeam.MudBlazor.Extensions.xml +++ b/CodeBeam.MudBlazor.Extensions.Docs.Wasm/wwwroot/CodeBeam.MudBlazor.Extensions.xml @@ -5380,7 +5380,7 @@ - + Gets a value indicating whether this step is currently active within the associated stepper control. @@ -5393,6 +5393,11 @@ If true the step is skippable. + + + Gets or sets a value indicating whether the current step is an introductory step in the workflow. + + If true, the step show when the stepper is completed. There should be only one result step. @@ -5408,11 +5413,6 @@ Fires when step status changed. - - - - - @@ -5444,6 +5444,14 @@ Stepper component with extended features. + + + Gets the CSS class string that represents the current visual state of the stepper component. + + The returned class string includes base and orientation-specific classes, as well as + any additional classes specified by the user. This property is typically used to apply styling to the + stepper element based on its configuration. + @@ -5459,50 +5467,46 @@ - + - + Gets the CSS class string that represents the current progress state of the stepper component, including + orientation, header size, mobile view, and step count. + The returned class string reflects the visual configuration of the stepper and can be + used to style the progress indicator appropriately. The value updates dynamically based on the component's + properties such as orientation and step count. - + - + Gets the CSS class string used to style the stepper avatar based on the current variant. - + The returned class name reflects the visual style of the avatar, including background + styling when the variant is set to outlined. This property is intended for use in rendering the component's + HTML and may change if the variant changes. - + - + Returns a formatted string representing the current step position in the mobile step sequence. - + The returned string is intended for display in mobile step navigation scenarios, + providing users with a clear indication of their progress through the steps. + A string in the format "currentStep / totalSteps" indicating the active step position. Returns "Intro / + totalSteps" if the intro step is active, "totalSteps / totalSteps" if the result step is active, or an empty + string if the position cannot be determined. - + - - - - - - - - - - - - - - + - - + - + Gets or sets the CSS class to apply to the header element. @@ -5540,6 +5544,11 @@ If true, disables the default animation on step changing. + + + Gets or sets a value indicating whether action controls are displayed in the component. + + If true, disables built-in "previous" step action button. @@ -5646,6 +5655,24 @@ Runs a task to prevent step change. Has change direction (backwards or forwards) and target index and returns a bool value. + + + Gets or sets a delegate that is invoked asynchronously before the finishing action occurs. The delegate + should return a task that resolves to to allow the action to proceed, or to cancel it. + + If the delegate is , the finishing action proceeds without + additional checks. The asynchronous operation can be used to perform validation, confirmation dialogs, or + other pre-finish logic. + + + + Gets or sets the callback that is invoked when the operation has finished. + + Use this property to specify an action to perform after the component completes its + process. The callback is triggered when the operation concludes, allowing you to execute custom logic such + as updating the UI or notifying other components. + @@ -5656,48 +5683,90 @@ - + - + Marks the specified step as completed and optionally advances to the next step in the sequence. - - - + If the specified step is the last remaining step, the method triggers any + finalization logic before marking the step as completed. If step change prevention or finalization callbacks + are configured, their results may prevent the completion or advancement. This method is typically used in + multi-step workflows to manage progression and completion logic. + The zero-based index of the step to complete. Must be within the valid range of steps. + Specifies whether to automatically move to the next step after completing the current one. The default value + is . + A task that represents the asynchronous operation. The task completes when the step has been marked as + completed and any subsequent actions have finished. - + - + Marks the step at the specified as skipped. + Optionally advances to the next step when is true. - - - - + + If the step at is the active step and a step-change prevention callback + () is provided, that callback is invoked before skipping. + If the step is the last remaining incomplete step, this method will invoke the + callback (if provided) and then trigger . + After finishing, if a result step exists the component will navigate to it. + + Zero-based index of the step to mark as skipped. + + When true (the default), and the skipped step is the currently active step, the component will + advance to the next appropriate step after skipping. + + A task that represents the asynchronous skip operation. - + - + Central navigation method for stepper transitions. + All public navigation APIs should call this method. - - - - - + + + Asynchronously navigates to the specified step in the workflow. + + The zero-based index of the step to navigate to. Must be within the valid range of steps. + If , bypasses any checks or conditions that would normally prevent navigation to the + specified step; otherwise, enforces all navigation rules. + A task that represents the asynchronous navigation operation. + + - - + + - + - - + + + + + Advances to the next step in the workflow asynchronously, or navigates to the first unfinished step if the + workflow is at its final step. + + If the workflow is already at the last step, this method navigates to the first step + that is not completed or skipped. If all steps are finished, goes to result step if set. + If set to , bypasses any checks that would normally prevent navigation to the next + step. The default is . + A task that represents the asynchronous operation. The task completes when navigation to the appropriate + step is finished. + + + + Navigates asynchronously to the previous step in the sequence, if the current step is not the first. + + If set to , bypasses any checks or conditions that would normally prevent navigation + to the previous step. + A task that represents the asynchronous navigation operation. + @@ -5705,11 +5774,14 @@ - + - + Determines whether the step at the specified index is the last remaining incomplete step. - + A step is considered incomplete if its status is neither Completed nor Skipped. If + there are no incomplete steps, the method returns false. + The zero-based index of the step to evaluate within the collection of steps. + true if the step at the specified index is the only incomplete step remaining; otherwise, false. @@ -5725,15 +5797,24 @@ - + Determines whether the collection contains result step. - + true if an result step exists in the collection; otherwise, false. + + + + Determines whether the collection contains introductory step. + + true if an introductory step exists in the collection; otherwise, false. - + Determines whether all steps in the collection have been completed or skipped. - + This method evaluates the status of each step in the Steps collection. It is useful + for checking whether a process or workflow has finished all required actions, including those that were + intentionally skipped. + true if every step has a status of Completed or Skipped; otherwise, false. @@ -5758,6 +5839,14 @@ Update all component and render again. + + + + + + + + Handles changes to the specified breakpoint and updates the mobile view state accordingly. diff --git a/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/Examples/StepperExtendedExample1.razor b/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/Examples/StepperExtendedExample1.razor index bc3d53c7..346a4897 100644 --- a/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/Examples/StepperExtendedExample1.razor +++ b/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/Examples/StepperExtendedExample1.razor @@ -4,7 +4,7 @@ @using MudExtensions.Utilities - + Cancel } - @* *@ - + @@ -136,9 +135,9 @@ @code { - MudStepperExtended? _stepper = new(); - MudForm? _form = new(); - MudForm? _form2 = new(); + MudStepperExtended _stepper = default!; + MudForm _form = default!; + MudForm _form2 = default!; bool _checkValidationBeforeComplete = false; bool _linear; bool _mobileView; diff --git a/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/Examples/StepperExtendedExample3.razor b/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/Examples/StepperExtendedExample3.razor new file mode 100644 index 00000000..38301538 --- /dev/null +++ b/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/Examples/StepperExtendedExample3.razor @@ -0,0 +1,179 @@ +@namespace MudExtensions.Docs.Examples +@inject ISnackbar Snackbar +@inject IDialogService DialogService + + + + + + + + +
+ + This is your reservation wizard. + Press start when you are ready. +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @if (_hasResultStep) + { + +
+ + Your reservation is completed successfully. +
+
+ } + +
+ +
+ +
+ + + + + + + + + + @foreach (StepperActionsJustify item in Enum.GetValues()) + { + @item.ToDescriptionString() + } + + + + + + + + Reset + + + + +
+ +@code { + MudStepperExtended? _stepper; + MudForm _form = new(); + MudForm _form2 = new(); + bool _linear; + bool _mobileView; + bool _vertical; + bool _loading; + bool _hasResultStep = true; + int _infoStepOrder; + int _optionsStepOrder; + int _paymentStepOrder; + StepperActionsJustify _stepperActionsJustify = StepperActionsJustify.SpaceBetween; + + private void OnStatusChanged(StepStatus status) + { + Snackbar.Add($"Customer Info step is now: {status}.", Severity.Info); + } + + private async Task CheckChange(StepChangeDirection direction, int targetIndex) + { + if (direction == StepChangeDirection.Backward) + return false; + + if (_stepper?.GetActiveIndex() == 0) + { + _loading = true; + StateHasChanged(); + await Task.Delay(500); + + await _form.Validate(); + _loading = false; + StateHasChanged(); + + return !_form.IsValid; + } + + if (_stepper?.GetActiveIndex() == 2) + { + _loading = true; + StateHasChanged(); + await Task.Delay(500); + + await _form2.Validate(); + _loading = false; + StateHasChanged(); + + return !_form2.IsValid; + } + + return false; + } + + private async Task BeforeFinishedAsync() + { + var result = await DialogService.ShowMessageBox( + "Confirm", + "All steps are completed. Do you want to finish?", + yesText: "Finish", + cancelText: "Cancel" + ); + + return result == true; + } + + private Task OnFinished() + { + Snackbar.Add("Reservation process finished successfully!", Severity.Success); + return Task.CompletedTask; + } +} diff --git a/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/StepperExtendedPage.razor b/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/StepperExtendedPage.razor index df3f0f16..d937dc56 100644 --- a/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/StepperExtendedPage.razor +++ b/CodeBeam.MudBlazor.Extensions.Docs/Pages/Components/StepperExtended/StepperExtendedPage.razor @@ -2,11 +2,29 @@ @namespace MudExtensions.Docs.Pages - + + + - + + + + + + + + diff --git a/CodeBeam.MudBlazor.Extensions.UnitTests/Components/StepperTests.cs b/CodeBeam.MudBlazor.Extensions.UnitTests/Components/StepperTests.cs index 7eb140e8..19e7052d 100644 --- a/CodeBeam.MudBlazor.Extensions.UnitTests/Components/StepperTests.cs +++ b/CodeBeam.MudBlazor.Extensions.UnitTests/Components/StepperTests.cs @@ -1,5 +1,6 @@ using Bunit; using FluentAssertions; +using Microsoft.AspNetCore.Components; using MudBlazor; using MudExtensions; using MudExtensions.UnitTests.TestComponents; @@ -75,159 +76,163 @@ public async Task StepperPreventStepChangeDirectionIsForwardWhenSkippingStepOneO [Test] public async Task StepperPreventStepChangeDirectionIsForwardWhenChangingFromStepOneToStepTwoTest() { - // Arrange var lastStepChangeDirection = StepChangeDirection.None; - int _targetIndex = 0; + int capturedTargetIndex = -1; + var stepper = Context.RenderComponent( ComponentParameterFactory.Parameter( nameof(MudStepperExtended.PreventStepChangeAsync), - new Func>((direction, targetIndex) => - { - lastStepChangeDirection = direction; - _targetIndex = targetIndex; - return Task.FromResult(false); - }) + new Func>( + (direction, targetIndex) => + { + lastStepChangeDirection = direction; + capturedTargetIndex = targetIndex; + return Task.FromResult(false); + }) ) ); + var step0 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); var step1 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); - await stepper.Instance.SetActiveIndex(step0.Instance); - // Act - await stepper.Instance.SetActiveIndex(1); // go to next step + await stepper.Instance.GoToStepByReferenceAsync(step0.Instance); + await stepper.Instance.GoToStepAsync(1); - // Assert lastStepChangeDirection.Should().Be(StepChangeDirection.Forward); + capturedTargetIndex.Should().Be(1); } [Test] public async Task StepperPreventStepChangeDirectionIsBackwardWhenChangingFromStepTwoToStepOneTest() { - // Arrange var lastStepChangeDirection = StepChangeDirection.None; - int _targetIndex = 0; + int capturedTargetIndex = -1; + var stepper = Context.RenderComponent( ComponentParameterFactory.Parameter( nameof(MudStepperExtended.PreventStepChangeAsync), - new Func>((direction, targetIndex) => - { - lastStepChangeDirection = direction; - _targetIndex = targetIndex; - return Task.FromResult(false); - }) + new Func>( + (direction, targetIndex) => + { + lastStepChangeDirection = direction; + capturedTargetIndex = targetIndex; + return Task.FromResult(false); + }) ) ); + var step0 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); + var step1 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); - await stepper.Instance.SetActiveIndex(step1.Instance); - // Act - await stepper.Instance.SetActiveIndex(-1); // go to previous step + await stepper.Instance.GoToStepByReferenceAsync(step1.Instance); + await stepper.Instance.GoPreviousStepAsync(); - // Assert lastStepChangeDirection.Should().Be(StepChangeDirection.Backward); + capturedTargetIndex.Should().Be(0); } [Test] public async Task StepperPreventStepChangeDirectionIsNoneWhenChangingToTheSameStepTest() { - // Arrange var lastStepChangeDirection = StepChangeDirection.None; + var stepper = Context.RenderComponent( ComponentParameterFactory.Parameter( nameof(MudStepperExtended.PreventStepChangeAsync), - new Func>((direction, targetIndex) => - { - lastStepChangeDirection = direction; - return Task.FromResult(false); - }) + new Func>( + (direction, targetIndex) => + { + lastStepChangeDirection = direction; + return Task.FromResult(false); + }) ) ); + var step0 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); - await stepper.Instance.SetActiveIndex(step0.Instance); - // Act - await stepper.Instance.SetActiveIndex(0); // go to same step + await stepper.Instance.GoToStepByReferenceAsync(step0.Instance); + await stepper.Instance.GoToStepAsync(0); - // Assert lastStepChangeDirection.Should().Be(StepChangeDirection.None); } [Test] public async Task StepperPreventStepChangeIsInvokedWhenCompletingActiveStepTest() { - // Arrange var preventStepChangeWasInvoked = false; + var stepper = Context.RenderComponent( ComponentParameterFactory.Parameter( nameof(MudStepperExtended.PreventStepChangeAsync), - new Func>((direction, targetIndex) => - { - preventStepChangeWasInvoked = true; - return Task.FromResult(false); - }) + new Func>( + (direction, targetIndex) => + { + preventStepChangeWasInvoked = true; + return Task.FromResult(false); + }) ) ); + var step0 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); + var step1 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); - await stepper.Instance.SetActiveIndex(step0.Instance); - // Act + await stepper.Instance.GoToStepByReferenceAsync(step0.Instance); await stepper.Instance.CompleteStep(stepper.Instance.Steps.IndexOf(step0.Instance)); - // Assert - preventStepChangeWasInvoked.Should().Be(true); + preventStepChangeWasInvoked.Should().BeTrue(); } [Test] public async Task StepperPreventStepChangeIsInvokedWhenSkippingActiveStepTest() { - // Arrange var preventStepChangeWasInvoked = false; + var stepper = Context.RenderComponent( ComponentParameterFactory.Parameter( nameof(MudStepperExtended.PreventStepChangeAsync), - new Func>((direction, targetIndex) => - { - preventStepChangeWasInvoked = true; - return Task.FromResult(false); - }) + new Func>( + (direction, targetIndex) => + { + preventStepChangeWasInvoked = true; + return Task.FromResult(false); + }) ) ); + var step0 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); var step1 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); - await stepper.Instance.SetActiveIndex(step0.Instance); - // Act + await stepper.Instance.GoToStepByReferenceAsync(step0.Instance); await stepper.Instance.SkipStep(stepper.Instance.Steps.IndexOf(step0.Instance)); - // Assert - preventStepChangeWasInvoked.Should().Be(true); + preventStepChangeWasInvoked.Should().BeTrue(); } [Test] public async Task StepperPreventStepChangeIsNotInvokedWhenCompletingNonActiveStepTest() { - // Arrange var preventStepChangeWasInvoked = false; + var stepper = Context.RenderComponent( ComponentParameterFactory.Parameter( nameof(MudStepperExtended.PreventStepChangeAsync), @@ -238,26 +243,28 @@ public async Task StepperPreventStepChangeIsNotInvokedWhenCompletingNonActiveSte }) ) ); + var step0 = Context.RenderComponent( - ComponentParameterFactory.CascadingValue(stepper.Instance) + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.Order), 0) ); + var step1 = Context.RenderComponent( - ComponentParameterFactory.CascadingValue(stepper.Instance) + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.Order), 1) ); - await stepper.Instance.SetActiveIndex(step0.Instance, skipPreventProcess: true); - // Act - await stepper.Instance.CompleteStep(stepper.Instance.Steps.IndexOf(step1.Instance)); + await stepper.Instance.GoToStepAsync(0, skipPrevent: true); + await stepper.Instance.CompleteStep(1); - // Assert - preventStepChangeWasInvoked.Should().Be(false); + preventStepChangeWasInvoked.Should().BeFalse(); } [Test] public async Task StepperPreventStepChangeIsNotInvokedWhenSkippingNonActiveStepTest() { - // Arrange var preventStepChangeWasInvoked = false; + var stepper = Context.RenderComponent( ComponentParameterFactory.Parameter( nameof(MudStepperExtended.PreventStepChangeAsync), @@ -268,74 +275,357 @@ public async Task StepperPreventStepChangeIsNotInvokedWhenSkippingNonActiveStepT }) ) ); + var step0 = Context.RenderComponent( - ComponentParameterFactory.CascadingValue(stepper.Instance) + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.Order), 0) ); + var step1 = Context.RenderComponent( - ComponentParameterFactory.CascadingValue(stepper.Instance) + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.Order), 1) ); - await stepper.Instance.SetActiveIndex(step0.Instance, true); - // Act - await stepper.Instance.SkipStep(stepper.Instance.Steps.IndexOf(step1.Instance)); + await stepper.Instance.GoToStepAsync(0, skipPrevent: true); - // Assert - preventStepChangeWasInvoked.Should().Be(false); + int indexOfStep1 = stepper.Instance.Steps.IndexOf(step1.Instance); + await stepper.Instance.SkipStep(indexOfStep1); + + preventStepChangeWasInvoked.Should().BeFalse(); } [Test] public async Task StepperActiveIndexIsNotChangedWhenCompletingNonActiveStepTest() { - // Arrange var stepper = Context.RenderComponent(); + var step0 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); + var step1 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); - await stepper.Instance.SetActiveIndex(stepper.Instance.Steps.IndexOf(step0.Instance)); - // Act - await stepper.Instance.CompleteStep(stepper.Instance.Steps.IndexOf(step1.Instance), moveToNextStep: true); + await stepper.Instance.GoToStepByReferenceAsync(step0.Instance, skipPrevent: true); - // Assert - stepper.Instance.ActiveIndex.Should().Be(stepper.Instance.Steps.IndexOf(step0.Instance)); + int activeBefore = stepper.Instance.ActiveIndex; + + int step1Index = stepper.Instance.Steps.IndexOf(step1.Instance); + await stepper.Instance.CompleteStep(step1Index, moveToNextStep: true); + + stepper.Instance.ActiveIndex.Should().Be(activeBefore); } [Test] public async Task StepperActiveIndexIsNotChangedWhenSkippingNonActiveStepTest() { - // Arrange var stepper = Context.RenderComponent(); + var step0 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); + var step1 = Context.RenderComponent( ComponentParameterFactory.CascadingValue(stepper.Instance) ); - await stepper.Instance.SetActiveIndex(stepper.Instance.Steps.IndexOf(step0.Instance)); - // Act - await stepper.Instance.SkipStep(stepper.Instance.Steps.IndexOf(step1.Instance), moveToNextStep: true); + await stepper.Instance.GoToStepByReferenceAsync(step0.Instance, skipPrevent: true); - // Assert - stepper.Instance.ActiveIndex.Should().Be(stepper.Instance.Steps.IndexOf(step0.Instance)); + int activeBefore = stepper.Instance.ActiveIndex; + int step1Index = stepper.Instance.Steps.IndexOf(step1.Instance); + await stepper.Instance.SkipStep(step1Index, moveToNextStep: true); + + stepper.Instance.ActiveIndex.Should().Be(activeBefore); } [Test] public async Task StepperCheckChangeCountTest() { - // Arrange var comp = Context.RenderComponent(); var stepper = comp.FindComponent(); + comp.Instance.CheckChangeCount.Should().Be(0); - await comp.InvokeAsync(() => stepper.Instance.SetActiveIndex(1)); + await comp.InvokeAsync(() => stepper.Instance.GoToStepAsync(1)); comp.WaitForAssertion(() => comp.Instance.CheckChangeCount.Should().Be(1)); - await comp.InvokeAsync(() => stepper.Instance.SetActiveStepByIndex(0)); + await comp.InvokeAsync(() => stepper.Instance.GoToStepAsync(0)); comp.WaitForAssertion(() => comp.Instance.CheckChangeCount.Should().Be(2)); } + + [Test] + public async Task StepperNavigationIsBlockedWhenPreventReturnsTrueTest() + { + // Arrange + var stepper = Context.RenderComponent( + ComponentParameterFactory.Parameter( + nameof(MudStepperExtended.PreventStepChangeAsync), + new Func>((_, __) => Task.FromResult(true)) + ) + ); + + var step0 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + var step1 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + + await stepper.Instance.GoToStepAsync(0); + await stepper.Instance.GoToStepAsync(1); + + stepper.Instance.ActiveIndex.Should().Be(stepper.Instance.Steps.IndexOf(step0.Instance)); + } + + [Test] + public async Task StepperGoNextIsBlockedWhenPreventReturnsTrueTest() + { + var stepper = Context.RenderComponent( + ComponentParameterFactory.Parameter( + nameof(MudStepperExtended.PreventStepChangeAsync), + new Func>((_, __) => Task.FromResult(true)) + ) + ); + + var step0 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + var step1 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + + await stepper.Instance.GoToStepAsync(0); + await stepper.Instance.GoNextStepAsync(); + + stepper.Instance.ActiveIndex.Should().Be(0); + } + + [Test] + public async Task StepperNavigatesToResultStepWhenAllStepsCompletedTest() + { + var stepper = Context.RenderComponent(); + + var step0 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + var step1 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + var resultStep = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter("IsResultStep", true) + ); + + await stepper.Instance.GoToStepAsync(0); + await stepper.Instance.CompleteStep(0); + await stepper.Instance.CompleteStep(1); + await stepper.Instance.GoNextStepAsync(); + + stepper.Instance.ActiveIndex.Should().Be(2); + } + + [Test] + public async Task StepperCallsBeforeFinishedWhenCompletingLastRemainingStepTest() + { + bool beforeCalled = false; + + var stepper = Context.RenderComponent( + ComponentParameterFactory.Parameter( + nameof(MudStepperExtended.BeforeFinishedAsync), + new Func>(() => + { + beforeCalled = true; + return Task.FromResult(true); + }) + ) + ); + + var step0 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + var step1 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + + await stepper.Instance.GoToStepAsync(0); + await stepper.Instance.CompleteStep(0); + await stepper.Instance.CompleteStep(1); + + beforeCalled.Should().BeTrue(); + } + + [Test] + public async Task StepperCallsOnFinishedWhenCompletingLastRemainingStepTest() + { + // Arrange + bool finishedCalled = false; + + var stepper = Context.RenderComponent( + ComponentParameterFactory.Parameter( + nameof(MudStepperExtended.OnFinished), + EventCallback.Factory.Create(this, () => finishedCalled = true) + ) + ); + + var step0 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + var step1 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + + await stepper.Instance.GoToStepAsync(0); + await stepper.Instance.CompleteStep(0); + await stepper.Instance.CompleteStep(1); + + finishedCalled.Should().BeTrue(); + } + + [Test] + public async Task StepperGoByIndexComputesDirectionCorrectlyTest() + { + StepChangeDirection? captured = null; + + var stepper = Context.RenderComponent( + ComponentParameterFactory.Parameter( + nameof(MudStepperExtended.PreventStepChangeAsync), + new Func>((dir, _) => + { + captured = dir; + return Task.FromResult(false); + }) + ) + ); + + var step0 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + var step1 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + + await stepper.Instance.GoToStepAsync(0); + await stepper.Instance.GoByIndexAsync(1); + + captured.Should().Be(StepChangeDirection.Forward); + } + + [Test] + public async Task StepperSetsStatusContinuedWhenNavigatingToUnstartedStepTest() + { + var stepper = Context.RenderComponent(); + var step0 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + var step1 = Context.RenderComponent(ComponentParameterFactory.CascadingValue(stepper.Instance)); + + await stepper.Instance.GoToStepAsync(0); + await stepper.Instance.GoToStepAsync(1); + + step1.Instance.Status.Should().Be(StepStatus.Continued); + } + + [Test] + public async Task StepperGoesToIntroStepWhenIntroExists() + { + var stepper = Context.RenderComponent(); + var intro = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.IsIntroStep), true) + ); + var step0 = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance) + ); + + await stepper.Instance.GoToStepAsync(-1); + + stepper.Instance.ActiveIndex.Should().Be(-1); + } + + [Test] + public async Task StepperNegativeIndexGoesToZeroWhenNoIntroStepExists() + { + var stepper = Context.RenderComponent(); + var step0 = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance) + ); + + await stepper.Instance.GoToStepAsync(-1); + + stepper.Instance.ActiveIndex.Should().Be(0); + } + + [Test] + public async Task StepperResetReturnsToIntroStep() + { + var stepper = Context.RenderComponent(); + var intro = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.IsIntroStep), true) + ); + var step0 = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance) + ); + + await stepper.Instance.GoToStepAsync(0); + stepper.Instance.Reset(); + + stepper.Instance.ActiveIndex.Should().Be(-1); + } + + [Test] + public async Task StepperNextFromIntroGoesToFirstStep() + { + var stepper = Context.RenderComponent(); + var intro = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.IsIntroStep), true) + ); + var step0 = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance) + ); + + await stepper.Instance.GoToStepAsync(-1); + + await stepper.Instance.GoNextStepAsync(true); + + stepper.Instance.ActiveIndex.Should().Be(0); + } + + [Test] + public async Task StepperPreviousFromFirstStepGoesToIntroWhenExists() + { + var stepper = Context.RenderComponent(); + var intro = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.IsIntroStep), true) + ); + var step0 = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance) + ); + + await stepper.Instance.GoToStepAsync(0); + await stepper.Instance.GoPreviousStepAsync(true); + + stepper.Instance.ActiveIndex.Should().Be(-1); + } + + [Test] + public async Task StepperCannotSkipIntroStep() + { + var stepper = Context.RenderComponent(); + var intro = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.IsIntroStep), true) + ); + var step0 = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance) + ); + + await stepper.Instance.GoToStepAsync(-1); + + await stepper.Instance.SkipStep(stepper.Instance.Steps.IndexOf(intro.Instance)); + + stepper.Instance.ActiveIndex.Should().Be(-1); + } + + [Test] + public async Task StepperIntroThenResultStepFlowIsCorrect() + { + var stepper = Context.RenderComponent(); + var intro = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.IsIntroStep), true) + ); + var step0 = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance) + ); + var result = Context.RenderComponent( + ComponentParameterFactory.CascadingValue(stepper.Instance), + ComponentParameterFactory.Parameter(nameof(MudStepExtended.IsResultStep), true) + ); + + await stepper.Instance.GoToStepAsync(-1); + await stepper.Instance.GoNextStepAsync(true); + await stepper.Instance.CompleteStep(stepper.Instance.Steps.IndexOf(step0.Instance), true); + + stepper.Instance.ActiveIndex.Should().Be(1); + } + } } diff --git a/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepExtended.razor.cs b/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepExtended.razor.cs index 890ec4aa..29b69bc1 100644 --- a/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepExtended.razor.cs +++ b/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepExtended.razor.cs @@ -13,7 +13,7 @@ public partial class MudStepExtended : MudComponentBase, IDisposable /// ///
protected string? Classname => new CssBuilder() - .AddClass("d-none", ((MudStepperExtended.ActiveIndex < MudStepperExtended.Steps.Count && MudStepperExtended.Steps[MudStepperExtended.ActiveIndex] != this) || (MudStepperExtended.ShowResultStep() && !IsResultStep)) || (IsResultStep && !MudStepperExtended.ShowResultStep())) + .AddClass("d-none", ShouldBeHidden()) .AddClass(Class) .Build(); @@ -21,7 +21,7 @@ public partial class MudStepExtended : MudComponentBase, IDisposable /// ///
[CascadingParameter] - public MudStepperExtended MudStepperExtended { get; set; } = new(); + public MudStepperExtended MudStepperExtended { get; set; } = default!; /// /// Step text to show on header. @@ -45,18 +45,11 @@ public int Order } /// - /// + /// Gets a value indicating whether this step is currently active within the associated stepper control. /// - public bool IsActive - { - get - { - return MudStepperExtended?.ActiveIndex == this.Number; - } - } - + public bool IsActive => MudStepperExtended?.Steps.IndexOf(this) == MudStepperExtended?.ActiveIndex; - StepStatus _status = StepStatus.Continued; + StepStatus _status = StepStatus.NotStarted; /// /// The step status flag to show step is continued, skipped or completed. Do not set it directly unless you know what you do exactly. /// @@ -71,7 +64,7 @@ public StepStatus Status return; } _status = value; - StatusChanged.InvokeAsync(_status).CatchAndLog(); + _ = StatusChanged.InvokeAsync(_status); } } @@ -81,6 +74,12 @@ public StepStatus Status [Parameter] public bool Optional { get; set; } + /// + /// Gets or sets a value indicating whether the current step is an introductory step in the workflow. + /// + [Parameter] + public bool IsIntroStep { get; set; } + /// /// If true, the step show when the stepper is completed. There should be only one result step. /// @@ -99,12 +98,6 @@ public StepStatus Status [Parameter] public EventCallback StatusChanged { get; set; } - /// - /// - /// - [Parameter] - public int Number { get; set; } - /// /// /// @@ -136,6 +129,26 @@ protected internal void SetStatus(StepStatus status) Status = status; } + private bool ShouldBeHidden() + { + bool showingResult = MudStepperExtended.ShowResultStep(); + bool showingIntro = MudStepperExtended.ActiveIndex == -1; + + if (IsResultStep) + return !showingResult; + + if (IsIntroStep) + return !showingIntro; + + if (showingResult || showingIntro) + return true; + + bool isActive = MudStepperExtended.ActiveIndex < MudStepperExtended.Steps.Count && + MudStepperExtended.Steps[MudStepperExtended.ActiveIndex] == this; + + return !isActive; + } + /// /// /// diff --git a/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepperExtended.razor b/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepperExtended.razor index b6d4f009..e460d374 100644 --- a/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepperExtended.razor +++ b/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepperExtended.razor @@ -2,100 +2,111 @@ @inherits MudComponentBase @inject IBrowserViewportService BrowserViewportService -@if(MobileBreakpoint != null) +@if (MobileBreakpoint != null) { } - -
-
- @{ - MudStepExtended? currentStep = null; - } - @foreach (MudStepExtended step in _steps) - { - if (IsStepActive(step)) - { - currentStep = step; + + +
+
+ @{ + MudStepExtended? currentStep = null; } - if (step.IsResultStep || (MobileView == true && IsStepActive(step) == false)) + @foreach (MudStepExtended step in _steps) { - continue; - } + if (IsStepActive(step)) + { + currentStep = step; + } + if (step.IsResultStep || step.IsIntroStep || (MobileView == true && IsStepActive(step) == false)) + { + continue; + } -
-
- @{ - bool active = IsStepActive(step); - } - @if (step.Template != null) - { - @step.Template(step) - } - else - { - @if (step.Status == StepStatus.Completed) - { - - - @if (!string.IsNullOrWhiteSpace(step.Icon)) - { - - } - - +
+
+ @{ + bool active = IsStepActive(step); } - else + @if (step.Template != null) { - Color incompleteColor = (HeaderBadgeView == HeaderBadgeView.GreyOutIncomplete) && !active ? Color.Transparent : @Color; - - - + @step.Template(step) } - @if (HeaderTextView == HeaderTextView.All || HeaderTextView == HeaderTextView.OnlyActiveText) + else { - - @if (step.MudStepperExtended.GetActiveIndex() == @step.MudStepperExtended.Steps.IndexOf(@step)) - { - @step.Title - } - else if (HeaderTextView != HeaderTextView.OnlyActiveText) - { - @step.Title - } - + @if (step.Status == StepStatus.Completed) + { + + + @if (!string.IsNullOrWhiteSpace(step.Icon)) + { + + } + + + } + else + { + Color incompleteColor = (HeaderBadgeView == HeaderBadgeView.GreyOutIncomplete) && !active ? Color.Transparent : @Color; + + + + } + @if (HeaderTextView == HeaderTextView.All || HeaderTextView == HeaderTextView.OnlyActiveText) + { + + @if (step.MudStepperExtended.GetActiveIndex() == @step.MudStepperExtended.Steps.IndexOf(@step)) + { + @step.Title + } + else if (HeaderTextView != HeaderTextView.OnlyActiveText) + { + @step.Title + } + + } } - } +
-
+ } +
+ @if (MobileView == true) + { + @GetMobileStepPositionText() } +
- @if (MobileView == true) + @if (Loading) { - @(_steps?.IndexOf(currentStep ?? new()) + 1) / @(_steps?.Count) + } - - -
- @if (Loading) - { - - } - @StaticContent - + @StaticContent
@ChildContent
- @if (ShowPreviousButton == true || ShowNextButton == true || ShowSkipButton == false) - { -
+ + @if (ShowActions && (ShowPreviousButton || ShowNextButton || ShowSkipButton)) + { +
+ @{ + bool showResultStep = ShowResultStep(); + bool hasIntroStep = HasIntroStep(); + } - @{ - bool showResultStep = ShowResultStep(); + @if (hasIntroStep && ActiveIndex == -1) + { + if (StepperActionsJustify == StepperActionsJustify.SpaceBetween) + { + } - + @LocalizedStrings.Start + } + else + { @if (StepperActionsJustify == StepperActionsJustify.End) { @if (ActionContent != null) @@ -110,12 +121,12 @@ if (IconActionButtons || MobileView) { - + } else { - @LocalizedStrings.Previous + @LocalizedStrings.Previous } } @@ -131,7 +142,7 @@ @if (showResultStep == false) { - if ((ActiveIndex < Steps.Count && Steps[ActiveIndex].Status != StepStatus.Continued) || (ActiveIndex == Steps.Count - 1 && HasResultStep() == false && IsAllStepsCompleted())) + if (Steps[ActiveIndex].Status == StepStatus.Completed || Steps[ActiveIndex].Status == StepStatus.Skipped) { if (ShowStepResultIndicator && MobileView == false) { @@ -159,17 +170,18 @@ @if (showResultStep == false && ShowNextButton && !(ActiveIndex == Steps.Count - 1 && HasResultStep() == false && IsAllStepsCompleted())) { - if (ActiveIndex < Steps.Count && Steps[ActiveIndex].Status != StepStatus.Continued) + if ((ActiveIndex < Steps.Count && + (Steps[ActiveIndex].Status == StepStatus.Completed || Steps[ActiveIndex].Status == StepStatus.Skipped))) { if (IconActionButtons || MobileView) { - + } else { - @GetNextButtonString() + @GetNextButtonString() } } else @@ -187,9 +199,9 @@ } } -
- } - + } +
+ }
diff --git a/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepperExtended.razor.cs b/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepperExtended.razor.cs index 9bd87ff8..ce9454dc 100644 --- a/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepperExtended.razor.cs +++ b/CodeBeam.MudBlazor.Extensions/Components/StepperExtended/MudStepperExtended.razor.cs @@ -1,8 +1,8 @@ using MudExtensions.Utilities; using Microsoft.AspNetCore.Components; using MudBlazor; -using MudBlazor.Extensions; using MudBlazor.Utilities; +using Microsoft.AspNetCore.Components.Web; namespace MudExtensions { @@ -11,160 +11,162 @@ namespace MudExtensions ///
public partial class MudStepperExtended : MudComponentBase { + #region Parameters and Properties + MudAnimate _animate = new(); Guid _animateGuid = Guid.NewGuid(); + /// + /// Gets the CSS class string that represents the current visual state of the stepper component. + /// + /// The returned class string includes base and orientation-specific classes, as well as + /// any additional classes specified by the user. This property is typically used to apply styling to the + /// stepper element based on its configuration. + protected string? Classname => new CssBuilder("mud-stepper-extended") + .AddClass("mud-stepper-horizontal-extended", !Vertical) + .AddClass("mud-stepper-vertical-extended", Vertical) + .AddClass(Class) + .Build(); + /// /// /// - protected string? HeaderClassname => new CssBuilder("d-flex align-center mud-stepper-header gap-4 pa-3") + protected string? HeaderClassname => new CssBuilder("d-flex align-center mud-stepper-header-extended gap-4 pa-3") .AddClass("mud-ripple", Ripple && !Linear) - .AddClass("cursor-pointer mud-stepper-header-non-linear", !Linear) + .AddClass("cursor-pointer mud-stepper-header-non-linear-extended", !Linear) .AddClass("flex-column", !Vertical) .AddClass("flex-row", Vertical) + .AddClass(HeaderClass) .Build(); /// /// /// - protected string? ContentClassname => new CssBuilder($"mud-stepper-ani-{_animateGuid.ToString()}") + protected string? ContentClassname => new CssBuilder($"mud-stepper-content-extended mud-width-full mud-stepper-ani-{_animateGuid.ToString()}") .AddClass(ContentClass) .Build(); /// /// /// - protected string? ActionClassname => new CssBuilder("d-flex gap-4") + protected string? ActionClassname => new CssBuilder("d-flex gap-4 mud-stepper-actions-extended") .AddClass("justify-center", StepperActionsJustify == StepperActionsJustify.Center) + .AddClass("justify-end", StepperActionsJustify == StepperActionsJustify.End) .AddClass(ActionClass) .Build(); /// - /// + /// Gets the CSS class string that represents the current progress state of the stepper component, including + /// orientation, header size, mobile view, and step count. /// - protected string? AvatarStylename => new StyleBuilder() - .AddStyle("z-index: 20") - .AddStyle("background-color", "var(--mud-palette-background)", Variant == Variant.Outlined) + /// The returned class string reflects the visual configuration of the stepper and can be + /// used to style the progress indicator appropriately. The value updates dynamically based on the component's + /// properties such as orientation and step count. + protected string ProgressClassname => new CssBuilder("mud-stepper-progress-extended") + .AddClass("vertical", Vertical) + .AddClass("horizontal", !Vertical) + .AddClass($"header-size-{HeaderSize.ToDescriptionString()}") + .AddClass("mobile", MobileView) + .AddClass($"steps-{Steps.Count}") .Build(); - /// - /// - /// - /// - protected string? GetMobileStyle() - { - if(Vertical) - { - return "grid-column:1;margin-inline-start:22px;"; - } - else - { - return "grid-row:1;margin-top:22px;"; - } - } /// - /// + /// Gets the CSS class string used to style the stepper avatar based on the current variant. /// - /// - protected string? GetStepperStyle() - { - var count = Steps.Count * 2; - if (Vertical) - { - return $"display:grid;grid-template-rows:repeat({count}, 1fr);"; - } - else - { - return $"display:grid;grid-template-columns:repeat({count}, 1fr);"; - } - } + /// The returned class name reflects the visual style of the avatar, including background + /// styling when the variant is set to outlined. This property is intended for use in rendering the component's + /// HTML and may change if the variant changes. + protected string AvatarClassname => new CssBuilder("mud-stepper-avatar-extended") + .AddClass("mud-stepper-avatar-bg-extended", Variant == Variant.Outlined) + .Build(); + /// - /// + /// Returns a formatted string representing the current step position in the mobile step sequence. /// - /// - protected string? GetStepperSubStyle() + /// The returned string is intended for display in mobile step navigation scenarios, + /// providing users with a clear indication of their progress through the steps. + /// A string in the format "currentStep / totalSteps" indicating the active step position. Returns "Intro / + /// totalSteps" if the intro step is active, "totalSteps / totalSteps" if the result step is active, or an empty + /// string if the position cannot be determined. + protected internal string GetMobileStepPositionText() { - if (Vertical) - { - return "grid-row-start:1;grid-row-end:-1;flex-direction:column;grid-column:1;list-style:none;display:flex;"; - } - else - { - return "grid-column-start:1;grid-column-end:-1;flex-direction:row;grid-row:1;list-style:none;display:flex;"; - } + int totalSteps = Steps.Count; + + if (HasIntroStep() && ActiveIndex == -1) + return $"0 / {totalSteps}"; + + if (HasResultStep() && ActiveIndex == Steps.Count) + return $"{totalSteps} / {totalSteps}"; + + if (ActiveIndex >= 0 && ActiveIndex < Steps.Count) + return $"{ActiveIndex + 1} / {totalSteps}"; + + return string.Empty; } - /// - /// - /// - /// - protected string? GetStepPercent() + private int _activeIndex; + internal int ActiveIndex { - var dPercent = (100.0 / Steps.Count).ToInvariantString(); - if (Vertical) - { - return $"height:{dPercent}%"; - } - else + get => _activeIndex; + set { - return $"width:{dPercent}%"; + _activeIndex = value; + UpdateProgressValue(); } } /// /// /// - /// - protected string? GetStepClass() + protected override async Task OnAfterRenderAsync(bool firstRender) { - if (Vertical) + await base.OnAfterRenderAsync(firstRender); + if (firstRender) { - return $"d-flex"; - } - else - { - return $""; + if (HasIntroStep()) + _activeIndex = -1; + StateHasChanged(); } } + + internal double ProgressValue; /// /// /// - /// - protected string? GetProgressLinearStyle() + protected void UpdateProgressValue() { - var end = Steps.Count * 2; - if (Vertical) + int total = Steps.Count; + + if (ActiveIndex == -1) { - return $"grid-row-start:2;grid-row-end:{end};grid-column:1/-1;display:inline-grid;left:{(HeaderSize == Size.Medium ? 30 : HeaderSize == Size.Large ? 38 : 22)}px;z-index:10;transform:rotateX(180deg);"; + ProgressValue = 0; + return; } - else + + if (ActiveIndex == total) { - return $"grid-column-start:2;grid-column-end:{end};grid-row:1/-1;display:inline-grid;top:{(HeaderSize == Size.Medium ? 30 : HeaderSize == Size.Large ? 38 : 22)}px;{(HeaderSize == Size.Small ? "height:2px;" : HeaderSize == Size.Medium ? "height:3px;" : null)}{(MobileView ? "margin-inline-start:40px;" : null)}z-index:10"; + ProgressValue = 100; + return; } - } - private int _activeIndex; - internal int ActiveIndex - { - get => _activeIndex; - set + if (total <= 1) { - _activeIndex = value; - UpdateProgressValue(); + ProgressValue = 0; + return; } + + ProgressValue = (ActiveIndex / (double)(total - 1)) * 100.0; } - internal double ProgressValue; + /// - /// + /// Gets or sets the CSS class to apply to the header element. /// - protected void UpdateProgressValue() - { - ProgressValue = _activeIndex * (100.0 / (Steps.Count - 1)); - } + [Parameter] + public string? HeaderClass { get; set; } /// /// Provides CSS classes for the step content. @@ -208,6 +210,12 @@ protected void UpdateProgressValue() [Parameter] public bool Animation { get; set; } = true; + /// + /// Gets or sets a value indicating whether action controls are displayed in the component. + /// + [Parameter] + public bool ShowActions { get; set; } = true; + /// /// If true, disables built-in "previous" step action button. /// @@ -275,7 +283,7 @@ protected void UpdateProgressValue() /// [Parameter] public Variant Variant { get; set; } - + /// /// Choose header badge view. Default is all. /// @@ -334,6 +342,28 @@ protected void UpdateProgressValue() [Parameter] public Func>? PreventStepChangeAsync { get; set; } + /// + /// Gets or sets a delegate that is invoked asynchronously before the finishing action occurs. The delegate + /// should return a task that resolves to to allow the action to proceed, or to cancel it. + /// + /// If the delegate is , the finishing action proceeds without + /// additional checks. The asynchronous operation can be used to perform validation, confirmation dialogs, or + /// other pre-finish logic. + [Parameter] + public Func>? BeforeFinishedAsync { get; set; } + + + /// + /// Gets or sets the callback that is invoked when the operation has finished. + /// + /// Use this property to specify an action to perform after the component completes its + /// process. The callback is triggered when the operation concludes, allowing you to execute custom logic such + /// as updating the UI or notifying other components. + [Parameter] + public EventCallback OnFinished { get; set; } + + List _steps = new(); List _allSteps = new(); /// @@ -356,10 +386,19 @@ protected set } } + #endregion + + #region Step Management Methods internal void AddStep(MudStepExtended step) { + if (step.IsResultStep) + { + step.SetStatus(StepStatus.Completed); + if (_allSteps.Any(x => x.IsResultStep && x != step)) + throw new InvalidOperationException("Only one ResultStep is allowed."); + } _allSteps.Add(step); - if (!step.IsResultStep) + if (!step.IsResultStep && !step.IsIntroStep) { Steps.Add(step); ReorderSteps(); @@ -369,6 +408,14 @@ internal void AddStep(MudStepExtended step) StateHasChanged(); } + internal void RemoveStep(MudStepExtended step) + { + Steps.Remove(step); + _allSteps.Remove(step); + UpdateProgressValue(); + StateHasChanged(); + } + /// /// /// @@ -377,32 +424,332 @@ public void ReorderSteps() Steps = Steps.OrderBy(x => x.Order).ToList(); } - internal void RemoveStep(MudStepExtended step) + /// + /// Marks the specified step as completed and optionally advances to the next step in the sequence. + /// + /// If the specified step is the last remaining step, the method triggers any + /// finalization logic before marking the step as completed. If step change prevention or finalization callbacks + /// are configured, their results may prevent the completion or advancement. This method is typically used in + /// multi-step workflows to manage progression and completion logic. + /// The zero-based index of the step to complete. Must be within the valid range of steps. + /// Specifies whether to automatically move to the next step after completing the current one. The default value + /// is . + /// A task that represents the asynchronous operation. The task completes when the step has been marked as + /// completed and any subsequent actions have finished. + public async Task CompleteStep(int index, bool moveToNextStep = true) { - Steps.Remove(step); - _allSteps.Remove(step); - UpdateProgressValue(); - StateHasChanged(); + if (ActiveIndex == -1) + return; + + if (ActiveIndex == Steps.Count) + return; + + bool isActiveStep = (index == ActiveIndex); + + if (isActiveStep) + { + var direction = moveToNextStep ? StepChangeDirection.Forward : StepChangeDirection.None; + if (PreventStepChangeAsync != null) + { + var prevent = await PreventStepChangeAsync.Invoke(direction, index + 1); + if (prevent) + return; + } + } + + bool isLastStep = IsLastRemainingStep(index); + + if (isLastStep) + { + if (BeforeFinishedAsync != null) + { + bool canContinue = await BeforeFinishedAsync.Invoke(); + if (!canContinue) + return; + } + + Steps[index].SetStatus(StepStatus.Completed); + + int backupIndex = ActiveIndex; + await OnFinished.InvokeAsync(); + + if (ActiveIndex != backupIndex) + return; + + if (HasResultStep()) + { + await GoToStepAsync(Steps.Count, skipPrevent: true); + } + + return; + } + + Steps[index].SetStatus(StepStatus.Completed); + + if (isActiveStep && moveToNextStep) + { + await GoNextStepAsync(skipPrevent: true); + } + } + + /// + /// Marks the step at the specified as skipped. + /// Optionally advances to the next step when is true. + /// + /// + /// If the step at is the active step and a step-change prevention callback + /// () is provided, that callback is invoked before skipping. + /// If the step is the last remaining incomplete step, this method will invoke the + /// callback (if provided) and then trigger . + /// After finishing, if a result step exists the component will navigate to it. + /// + /// Zero-based index of the step to mark as skipped. + /// + /// When true (the default), and the skipped step is the currently active step, the component will + /// advance to the next appropriate step after skipping. + /// + /// A task that represents the asynchronous skip operation. + public async Task SkipStep(int index, bool moveToNextStep = true) + { + if (ActiveIndex == -1) + return; + + if (ActiveIndex == Steps.Count) + return; + + bool isActiveStep = (index == ActiveIndex); + + if (isActiveStep) + { + var direction = moveToNextStep ? StepChangeDirection.Forward : StepChangeDirection.None; + if (PreventStepChangeAsync != null) + { + bool prevent = await PreventStepChangeAsync.Invoke(direction, index + 1); + if (prevent) + return; + } + } + + bool isLastStep = IsLastRemainingStep(index); + + if (isLastStep) + { + if (BeforeFinishedAsync != null) + { + bool canContinue = await BeforeFinishedAsync.Invoke(); + if (!canContinue) + return; + } + + Steps[index].SetStatus(StepStatus.Skipped); + + int backupIndex = ActiveIndex; + await OnFinished.InvokeAsync(); + + if (ActiveIndex != backupIndex) + return; + + if (HasResultStep()) + { + await GoToStepAsync(Steps.Count, skipPrevent: true); + } + + return; + } + + Steps[index].SetStatus(StepStatus.Skipped); + + if (isActiveStep && moveToNextStep) + { + await GoNextStepAsync(skipPrevent: true); + } + } + + + #endregion + + #region Step Navigation Methods + + /// + /// Central navigation method for stepper transitions. + /// All public navigation APIs should call this method. + /// + protected async Task NavigateToStepAsync(int targetIndex, bool skipPrevent) + { + int stepCount = Steps.Count; + + if (HasIntroStep() && targetIndex == -1) + { + if (!skipPrevent && PreventStepChangeAsync is not null) + { + bool prevented = await PreventStepChangeAsync.Invoke( + StepChangeDirection.Backward, targetIndex + ); + if (prevented) + return; + } + + ActiveIndex = -1; + await ActiveStepChanged.InvokeAsync(ActiveIndex); + return; + } + + if (targetIndex < 0) + targetIndex = HasIntroStep() ? -1 : 0; + + bool isResultStepTarget = (targetIndex == stepCount); + + if (targetIndex > stepCount && !isResultStepTarget) + return; + + if (isResultStepTarget && !IsAllStepsCompleted()) + return; + + if (!skipPrevent && PreventStepChangeAsync is not null) + { + StepChangeDirection direction = StepChangeDirection.None; + if (targetIndex > ActiveIndex) + direction = StepChangeDirection.Forward; + else if (targetIndex < ActiveIndex) + direction = StepChangeDirection.Backward; + + bool prevented = await PreventStepChangeAsync.Invoke(direction, targetIndex); + if (prevented) + return; + } + + if (targetIndex == ActiveIndex) + return; + + if (Animation && _animate != null) + await _animate.Refresh(); + + int backupIndex = ActiveIndex; + ActiveIndex = targetIndex; + + if (!isResultStepTarget && ActiveIndex < Steps.Count) + { + var step = Steps[ActiveIndex]; + + if (step.Status == StepStatus.NotStarted) + step.SetStatus(StepStatus.Continued); + } + + if (backupIndex != ActiveIndex) + await ActiveStepChanged.InvokeAsync(ActiveIndex); + } + + /// + /// Asynchronously navigates to the specified step in the workflow. + /// + /// The zero-based index of the step to navigate to. Must be within the valid range of steps. + /// If , bypasses any checks or conditions that would normally prevent navigation to the + /// specified step; otherwise, enforces all navigation rules. + /// A task that represents the asynchronous navigation operation. + public Task GoToStepAsync(int index, bool skipPrevent = false) + { + return NavigateToStepAsync(index, skipPrevent); } /// /// /// - /// - /// + /// + /// /// - protected internal async Task SetActiveIndex(MudStepExtended step, bool skipPreventProcess = false) + public Task GoByIndexAsync(int offset, bool skipPrevent = false) { - await SetActiveStepByIndex(Steps.IndexOf(step), skipPreventProcess: skipPreventProcess); + int target = ActiveIndex + offset; + return NavigateToStepAsync(target, skipPrevent); } /// /// /// - /// - /// - /// + /// + /// /// + public Task GoToStepByReferenceAsync(MudStepExtended step, bool skipPrevent = false) + { + int index = Steps.IndexOf(step); + if (index < 0) + return Task.CompletedTask; + + return NavigateToStepAsync(index, skipPrevent); + } + + /// + /// Advances to the next step in the workflow asynchronously, or navigates to the first unfinished step if the + /// workflow is at its final step. + /// + /// If the workflow is already at the last step, this method navigates to the first step + /// that is not completed or skipped. If all steps are finished, goes to result step if set. + /// If set to , bypasses any checks that would normally prevent navigation to the next + /// step. The default is . + /// A task that represents the asynchronous operation. The task completes when navigation to the appropriate + /// step is finished. + public async Task GoNextStepAsync(bool skipPrevent = false) + { + if (ActiveIndex == -1 && HasIntroStep()) + { + await NavigateToStepAsync(0, skipPrevent); + return; + } + + if (ActiveIndex < Steps.Count - 1) + { + await NavigateToStepAsync(ActiveIndex + 1, skipPrevent); + return; + } + + var firstUnfinished = Steps.FirstOrDefault(x => + x.Status != StepStatus.Completed && + x.Status != StepStatus.Skipped); + + if (firstUnfinished != null) + { + int targetIndex = Steps.IndexOf(firstUnfinished); + await NavigateToStepAsync(targetIndex, skipPrevent); + return; + } + + if (HasResultStep()) + { + await NavigateToStepAsync(Steps.Count, skipPrevent); + } + } + + /// + /// Navigates asynchronously to the previous step in the sequence, if the current step is not the first. + /// + /// If set to , bypasses any checks or conditions that would normally prevent navigation + /// to the previous step. + /// A task that represents the asynchronous navigation operation. + public async Task GoPreviousStepAsync(bool skipPrevent = false) + { + if (ActiveIndex == 0 && HasIntroStep()) + { + await NavigateToStepAsync(-1, skipPrevent); + return; + } + + if (ActiveIndex <= 0) + return; + + await NavigateToStepAsync(ActiveIndex - 1, skipPrevent); + } + + #endregion + + #region The Obsoletes + + [Obsolete("Use GoToStepByReferenceAsync() instead.")] + protected internal async Task SetActiveIndex(MudStepExtended step, bool skipPreventProcess = false) + { + await SetActiveStepByIndex(Steps.IndexOf(step), skipPreventProcess: skipPreventProcess); + } + + [Obsolete("Use GoNextAsync/GoPreviousAsync or GoToStepAsync instead.")] public async Task SetActiveIndex(int count, bool firstCompleted = false, bool skipPreventProcess = false) { var stepChangeDirection = ( @@ -420,7 +767,6 @@ public async Task SetActiveIndex(int count, bool firstCompleted = false, bool sk } } - int backupActiveIndex = ActiveIndex; if (_animate != null && Animation == true) { @@ -444,26 +790,34 @@ public async Task SetActiveIndex(int count, bool firstCompleted = false, bool sk } else if (ActiveIndex == Steps.Count - 1 && !IsAllStepsCompleted() && 0 < count) { - ActiveIndex = Steps.IndexOf(Steps.FirstOrDefault(x => x.Status == StepStatus.Continued)); + var nextUnfinished = Steps.FirstOrDefault(x => x.Status != StepStatus.Completed && x.Status != StepStatus.Skipped); + + if (nextUnfinished != null) + { + ActiveIndex = Steps.IndexOf(nextUnfinished); + } } else { ActiveIndex += count; } + if (backupActiveIndex != ActiveIndex && ActiveIndex < Steps.Count) + { + var step = Steps[ActiveIndex]; + if (step.Status == StepStatus.NotStarted) + { + step.SetStatus(StepStatus.Continued); + } + } + if (backupActiveIndex != ActiveIndex) { await ActiveStepChanged.InvokeAsync(ActiveIndex); } } - /// - /// - /// - /// - /// - /// - /// + [Obsolete("Use GoNextAsync/GoPreviousAsync or GoToStepAsync instead.")] public async Task SetActiveStepByIndex(int index, bool firstCompleted = false, bool skipPreventProcess = false) { var stepChangeDirection = ( @@ -497,70 +851,21 @@ public async Task SetActiveStepByIndex(int index, bool firstCompleted = false, b } ActiveIndex = index; - await ActiveStepChanged.InvokeAsync(ActiveIndex); - } - - /// - /// - /// - /// - /// - /// - public async Task CompleteStep(int index, bool moveToNextStep = true) - { - var isActiveStep = (index == ActiveIndex); - if (isActiveStep) + if (index < Steps.Count) { - var stepChangeDirection = (moveToNextStep ? StepChangeDirection.Forward : StepChangeDirection.None); - if (PreventStepChangeAsync != null) + var step = Steps[index]; + if (step.Status == StepStatus.NotStarted) { - var result = await PreventStepChangeAsync.Invoke(stepChangeDirection, index + 1); - if (result == true) - { - return; - } + step.SetStatus(StepStatus.Continued); } } - Steps[index].SetStatus(StepStatus.Completed); - if (IsAllStepsCompleted()) - { - await SetActiveIndex(1, true, true); - } - else if (isActiveStep && moveToNextStep) - { - await SetActiveIndex(1, skipPreventProcess: true); - } + await ActiveStepChanged.InvokeAsync(ActiveIndex); } - /// - /// - /// - /// - /// - /// - public async Task SkipStep(int index, bool moveToNextStep = true) - { - var isActiveStep = (index == ActiveIndex); - if (isActiveStep) - { - var stepChangeDirection = (moveToNextStep ? StepChangeDirection.Forward : StepChangeDirection.None); - if (PreventStepChangeAsync != null) - { - var result = await PreventStepChangeAsync.Invoke(stepChangeDirection, index + 1); - if (result == true) - { - return; - } - } - } + #endregion - Steps[index].SetStatus(StepStatus.Skipped); - if (isActiveStep && moveToNextStep) - { - await SetActiveIndex(1, skipPreventProcess: true); - } - } + #region Logic Checks /// /// @@ -573,23 +878,37 @@ protected bool IsStepActive(MudStepExtended step) } /// - /// + /// Determines whether the step at the specified index is the last remaining incomplete step. /// - /// - protected int CompletedStepCount() + /// A step is considered incomplete if its status is neither Completed nor Skipped. If + /// there are no incomplete steps, the method returns false. + /// The zero-based index of the step to evaluate within the collection of steps. + /// true if the step at the specified index is the only incomplete step remaining; otherwise, false. + protected internal bool IsLastRemainingStep(int index) { - return Steps.Count(x => x.Status != StepStatus.Continued); + var incompleteSteps = Steps + .Where(x => x.Status != StepStatus.Completed && x.Status != StepStatus.Skipped) + .ToList(); + + if (incompleteSteps.Count == 0) + return false; + + return incompleteSteps.Count == 1 && Steps.IndexOf(incompleteSteps[0]) == index; } + /// /// /// /// - protected string GetNextButtonString() + protected string? GetNextButtonString() { - return ActiveIndex >= Steps.Count - 1 ? LocalizedStrings.Finish : LocalizedStrings.Next; + return IsLastRemainingStep(ActiveIndex) + ? LocalizedStrings.Finish + : LocalizedStrings.Next; } + /// /// /// @@ -605,21 +924,33 @@ protected internal bool ShowResultStep() } /// - /// + /// Determines whether the collection contains result step. /// - /// + /// true if an result step exists in the collection; otherwise, false. protected internal bool HasResultStep() { return _allSteps.Any(x => x.IsResultStep); } /// - /// + /// Determines whether the collection contains introductory step. /// - /// + /// true if an introductory step exists in the collection; otherwise, false. + protected internal bool HasIntroStep() + { + return _allSteps.Any(x => x.IsIntroStep); + } + + /// + /// Determines whether all steps in the collection have been completed or skipped. + /// + /// This method evaluates the status of each step in the Steps collection. It is useful + /// for checking whether a process or workflow has finished all required actions, including those that were + /// intentionally skipped. + /// true if every step has a status of Completed or Skipped; otherwise, false. public bool IsAllStepsCompleted() { - return !Steps.Any(x => x.Status == StepStatus.Continued); + return Steps.All(x => x.Status == StepStatus.Completed || x.Status == StepStatus.Skipped); } /// @@ -631,13 +962,23 @@ public int GetActiveIndex() return ActiveIndex; } + #endregion + /// /// /// public void Reset() { - Steps.ForEach(x => x.SetStatus(StepStatus.Continued)); - ActiveIndex = 0; + Steps.ForEach(x => x.SetStatus(StepStatus.NotStarted)); + if (HasIntroStep()) + { + ActiveIndex = -1; + } + else + { + ActiveIndex = 0; + } + UpdateProgressValue(); } /// @@ -659,6 +1000,14 @@ public void ForceRender() StateHasChanged(); } + /// + /// + /// + /// + /// + /// + protected virtual Task OnBeforeNavigate(int from, int to) => Task.CompletedTask; + /// /// Handles changes to the specified breakpoint and updates the mobile view state accordingly. /// @@ -669,7 +1018,7 @@ public void ForceRender() /// disabled. protected void OnBreakpointChanged(Breakpoint breakpoint) { - if (MobileBreakpoint.HasValue && breakpoint <= MobileBreakpoint ) + if (MobileBreakpoint.HasValue && breakpoint <= MobileBreakpoint) { MobileView = true; } @@ -680,5 +1029,18 @@ protected void OnBreakpointChanged(Breakpoint breakpoint) StateHasChanged(); } + /// + /// + /// + /// + /// + protected async Task HandleHeaderKeyDown(KeyboardEventArgs args, MudStepExtended step) + { + if (args.Key == "Enter" || args.Key == "NumpadEnter") + { + await GoToStepByReferenceAsync(step); + } + } + } } diff --git a/CodeBeam.MudBlazor.Extensions/Enums/StepStatus.cs b/CodeBeam.MudBlazor.Extensions/Enums/StepStatus.cs index f832798a..163ac423 100644 --- a/CodeBeam.MudBlazor.Extensions/Enums/StepStatus.cs +++ b/CodeBeam.MudBlazor.Extensions/Enums/StepStatus.cs @@ -5,11 +5,15 @@ namespace MudExtensions #pragma warning disable CS1591 public enum StepStatus { + [Description("not-started")] + NotStarted, [Description("continued")] Continued, [Description("completed")] Completed, [Description("skipped")] Skipped, + [Description("error")] + Error, } } diff --git a/CodeBeam.MudBlazor.Extensions/Styles/Components/_stepper.scss b/CodeBeam.MudBlazor.Extensions/Styles/Components/_stepper.scss index f66044b4..86ff7370 100644 --- a/CodeBeam.MudBlazor.Extensions/Styles/Components/_stepper.scss +++ b/CodeBeam.MudBlazor.Extensions/Styles/Components/_stepper.scss @@ -1,14 +1,131 @@ $mud-palette-colors: primary, secondary, tertiary, info, success, warning, error, dark; -.mud-stepper-header { +.mud-stepper-header-extended { min-height: 62px; border-radius: var(--mud-default-borderradius); - &.mud-stepper-header-non-linear:hover { + &.mud-stepper-header-non-linear-extended:hover { background-color: var(--mud-palette-action-default-hover); } } -.mud-stepper-badge{ +.mud-stepper-badge-extended { z-index: 21; } + +.mud-stepper-avatar-extended { + z-index: 20; +} + +.mud-stepper-avatar-bg-extended { + background-color: var(--mud-palette-background); +} + +.mud-stepper-sub-inner-header-extended { + grid-column-start: 1; + grid-column-end: -1; + flex-direction: row; + grid-row: 1; + list-style: none; + display: flex; +} + +.mud-stepper-sub-inner-header-vertical-extended { + grid-row-start: 1; + grid-row-end: -1; + flex-direction: column; + grid-column: 1; + list-style: none; + display: flex; +} + +.mud-stepper-text-mobile-extended { + grid-row: 1; + margin-top: 22px; +} + +.mud-stepper-text-mobile-vertical-extended { + grid-column: 1; + margin-inline-start: 22px; +} + +@for $i from 1 through 12 { + + // Horizontal stepper = width %100 / step count + .mud-stepper-step-#{$i}.horizontal { + width: calc(100% / #{$i}); + } + + // Vertical stepper = height %100 / step count + .mud-stepper-step-#{$i}.vertical { + height: calc(100% / #{$i}); + } +} + + +@for $i from 1 through 24 { + + .mud-stepper-grid-#{$i}.horizontal { + display: grid; + grid-template-columns: repeat(#{$i * 2}, 1fr); + } + + .mud-stepper-grid-#{$i}.vertical { + display: grid; + grid-template-rows: repeat(#{$i * 2}, 1fr); + } +} + +@for $i from 1 through 12 { + .steps-#{$i}.horizontal { + grid-column-start: 2; + grid-column-end: #{$i * 2}; + grid-row: 1 / -1; + } + + .steps-#{$i}.vertical { + grid-row-start: 2; + grid-row-end: #{$i * 2}; + grid-column: 1 / -1; + } +} + +.mud-stepper-progress-extended.horizontal.header-size-small { + top: 22px; + height: 2px; +} + +.mud-stepper-progress-extended.horizontal.header-size-medium { + top: 30px; + height: 3px; +} + +.mud-stepper-progress-extended.horizontal.header-size-large { + top: 38px; + height: 4px; +} + +.mud-stepper-progress-extended.vertical.header-size-small { + left: 22px; +} + +.mud-stepper-progress-extended.vertical.header-size-medium { + left: 30px; +} + +.mud-stepper-progress-extended.vertical.header-size-large { + left: 38px; +} + +.mobile.horizontal .mud-stepper-progress-extended { + margin-inline-start: 40px; +} + +.mud-stepper-progress-extended { + display: inline-grid; + z-index: 10; + + &.vertical { + transform: rotateX(180deg); + } +} diff --git a/CodeBeam.MudBlazor.Extensions/Styles/MudExtensions.css b/CodeBeam.MudBlazor.Extensions/Styles/MudExtensions.css index 64170a2d..4955b7d7 100644 --- a/CodeBeam.MudBlazor.Extensions/Styles/MudExtensions.css +++ b/CodeBeam.MudBlazor.Extensions/Styles/MudExtensions.css @@ -446,15 +446,459 @@ .mud-splitter-thumb-disabled ::-moz-range-thumb { cursor: default !important; } -.mud-stepper-header { +.mud-stepper-header-extended { min-height: 62px; border-radius: var(--mud-default-borderradius); } - .mud-stepper-header.mud-stepper-header-non-linear:hover { + .mud-stepper-header-extended.mud-stepper-header-non-linear-extended:hover { background-color: var(--mud-palette-action-default-hover); } -.mud-stepper-badge { +.mud-stepper-badge-extended { z-index: 21; } +.mud-stepper-avatar-extended { + z-index: 20; } + +.mud-stepper-avatar-bg-extended { + background-color: var(--mud-palette-background); } + +.mud-stepper-sub-inner-header-extended { + grid-column-start: 1; + grid-column-end: -1; + flex-direction: row; + grid-row: 1; + list-style: none; + display: flex; } + +.mud-stepper-sub-inner-header-vertical-extended { + grid-row-start: 1; + grid-row-end: -1; + flex-direction: column; + grid-column: 1; + list-style: none; + display: flex; } + +.mud-stepper-text-mobile-extended { + grid-row: 1; + margin-top: 22px; } + +.mud-stepper-text-mobile-vertical-extended { + grid-column: 1; + margin-inline-start: 22px; } + +.mud-stepper-step-1.horizontal { + width: calc(100% / 1); } + +.mud-stepper-step-1.vertical { + height: calc(100% / 1); } + +.mud-stepper-step-2.horizontal { + width: calc(100% / 2); } + +.mud-stepper-step-2.vertical { + height: calc(100% / 2); } + +.mud-stepper-step-3.horizontal { + width: calc(100% / 3); } + +.mud-stepper-step-3.vertical { + height: calc(100% / 3); } + +.mud-stepper-step-4.horizontal { + width: calc(100% / 4); } + +.mud-stepper-step-4.vertical { + height: calc(100% / 4); } + +.mud-stepper-step-5.horizontal { + width: calc(100% / 5); } + +.mud-stepper-step-5.vertical { + height: calc(100% / 5); } + +.mud-stepper-step-6.horizontal { + width: calc(100% / 6); } + +.mud-stepper-step-6.vertical { + height: calc(100% / 6); } + +.mud-stepper-step-7.horizontal { + width: calc(100% / 7); } + +.mud-stepper-step-7.vertical { + height: calc(100% / 7); } + +.mud-stepper-step-8.horizontal { + width: calc(100% / 8); } + +.mud-stepper-step-8.vertical { + height: calc(100% / 8); } + +.mud-stepper-step-9.horizontal { + width: calc(100% / 9); } + +.mud-stepper-step-9.vertical { + height: calc(100% / 9); } + +.mud-stepper-step-10.horizontal { + width: calc(100% / 10); } + +.mud-stepper-step-10.vertical { + height: calc(100% / 10); } + +.mud-stepper-step-11.horizontal { + width: calc(100% / 11); } + +.mud-stepper-step-11.vertical { + height: calc(100% / 11); } + +.mud-stepper-step-12.horizontal { + width: calc(100% / 12); } + +.mud-stepper-step-12.vertical { + height: calc(100% / 12); } + +.mud-stepper-grid-1.horizontal { + display: grid; + grid-template-columns: repeat(2, 1fr); } + +.mud-stepper-grid-1.vertical { + display: grid; + grid-template-rows: repeat(2, 1fr); } + +.mud-stepper-grid-2.horizontal { + display: grid; + grid-template-columns: repeat(4, 1fr); } + +.mud-stepper-grid-2.vertical { + display: grid; + grid-template-rows: repeat(4, 1fr); } + +.mud-stepper-grid-3.horizontal { + display: grid; + grid-template-columns: repeat(6, 1fr); } + +.mud-stepper-grid-3.vertical { + display: grid; + grid-template-rows: repeat(6, 1fr); } + +.mud-stepper-grid-4.horizontal { + display: grid; + grid-template-columns: repeat(8, 1fr); } + +.mud-stepper-grid-4.vertical { + display: grid; + grid-template-rows: repeat(8, 1fr); } + +.mud-stepper-grid-5.horizontal { + display: grid; + grid-template-columns: repeat(10, 1fr); } + +.mud-stepper-grid-5.vertical { + display: grid; + grid-template-rows: repeat(10, 1fr); } + +.mud-stepper-grid-6.horizontal { + display: grid; + grid-template-columns: repeat(12, 1fr); } + +.mud-stepper-grid-6.vertical { + display: grid; + grid-template-rows: repeat(12, 1fr); } + +.mud-stepper-grid-7.horizontal { + display: grid; + grid-template-columns: repeat(14, 1fr); } + +.mud-stepper-grid-7.vertical { + display: grid; + grid-template-rows: repeat(14, 1fr); } + +.mud-stepper-grid-8.horizontal { + display: grid; + grid-template-columns: repeat(16, 1fr); } + +.mud-stepper-grid-8.vertical { + display: grid; + grid-template-rows: repeat(16, 1fr); } + +.mud-stepper-grid-9.horizontal { + display: grid; + grid-template-columns: repeat(18, 1fr); } + +.mud-stepper-grid-9.vertical { + display: grid; + grid-template-rows: repeat(18, 1fr); } + +.mud-stepper-grid-10.horizontal { + display: grid; + grid-template-columns: repeat(20, 1fr); } + +.mud-stepper-grid-10.vertical { + display: grid; + grid-template-rows: repeat(20, 1fr); } + +.mud-stepper-grid-11.horizontal { + display: grid; + grid-template-columns: repeat(22, 1fr); } + +.mud-stepper-grid-11.vertical { + display: grid; + grid-template-rows: repeat(22, 1fr); } + +.mud-stepper-grid-12.horizontal { + display: grid; + grid-template-columns: repeat(24, 1fr); } + +.mud-stepper-grid-12.vertical { + display: grid; + grid-template-rows: repeat(24, 1fr); } + +.mud-stepper-grid-13.horizontal { + display: grid; + grid-template-columns: repeat(26, 1fr); } + +.mud-stepper-grid-13.vertical { + display: grid; + grid-template-rows: repeat(26, 1fr); } + +.mud-stepper-grid-14.horizontal { + display: grid; + grid-template-columns: repeat(28, 1fr); } + +.mud-stepper-grid-14.vertical { + display: grid; + grid-template-rows: repeat(28, 1fr); } + +.mud-stepper-grid-15.horizontal { + display: grid; + grid-template-columns: repeat(30, 1fr); } + +.mud-stepper-grid-15.vertical { + display: grid; + grid-template-rows: repeat(30, 1fr); } + +.mud-stepper-grid-16.horizontal { + display: grid; + grid-template-columns: repeat(32, 1fr); } + +.mud-stepper-grid-16.vertical { + display: grid; + grid-template-rows: repeat(32, 1fr); } + +.mud-stepper-grid-17.horizontal { + display: grid; + grid-template-columns: repeat(34, 1fr); } + +.mud-stepper-grid-17.vertical { + display: grid; + grid-template-rows: repeat(34, 1fr); } + +.mud-stepper-grid-18.horizontal { + display: grid; + grid-template-columns: repeat(36, 1fr); } + +.mud-stepper-grid-18.vertical { + display: grid; + grid-template-rows: repeat(36, 1fr); } + +.mud-stepper-grid-19.horizontal { + display: grid; + grid-template-columns: repeat(38, 1fr); } + +.mud-stepper-grid-19.vertical { + display: grid; + grid-template-rows: repeat(38, 1fr); } + +.mud-stepper-grid-20.horizontal { + display: grid; + grid-template-columns: repeat(40, 1fr); } + +.mud-stepper-grid-20.vertical { + display: grid; + grid-template-rows: repeat(40, 1fr); } + +.mud-stepper-grid-21.horizontal { + display: grid; + grid-template-columns: repeat(42, 1fr); } + +.mud-stepper-grid-21.vertical { + display: grid; + grid-template-rows: repeat(42, 1fr); } + +.mud-stepper-grid-22.horizontal { + display: grid; + grid-template-columns: repeat(44, 1fr); } + +.mud-stepper-grid-22.vertical { + display: grid; + grid-template-rows: repeat(44, 1fr); } + +.mud-stepper-grid-23.horizontal { + display: grid; + grid-template-columns: repeat(46, 1fr); } + +.mud-stepper-grid-23.vertical { + display: grid; + grid-template-rows: repeat(46, 1fr); } + +.mud-stepper-grid-24.horizontal { + display: grid; + grid-template-columns: repeat(48, 1fr); } + +.mud-stepper-grid-24.vertical { + display: grid; + grid-template-rows: repeat(48, 1fr); } + +.steps-1.horizontal { + grid-column-start: 2; + grid-column-end: 2; + grid-row: 1 / -1; } + +.steps-1.vertical { + grid-row-start: 2; + grid-row-end: 2; + grid-column: 1 / -1; } + +.steps-2.horizontal { + grid-column-start: 2; + grid-column-end: 4; + grid-row: 1 / -1; } + +.steps-2.vertical { + grid-row-start: 2; + grid-row-end: 4; + grid-column: 1 / -1; } + +.steps-3.horizontal { + grid-column-start: 2; + grid-column-end: 6; + grid-row: 1 / -1; } + +.steps-3.vertical { + grid-row-start: 2; + grid-row-end: 6; + grid-column: 1 / -1; } + +.steps-4.horizontal { + grid-column-start: 2; + grid-column-end: 8; + grid-row: 1 / -1; } + +.steps-4.vertical { + grid-row-start: 2; + grid-row-end: 8; + grid-column: 1 / -1; } + +.steps-5.horizontal { + grid-column-start: 2; + grid-column-end: 10; + grid-row: 1 / -1; } + +.steps-5.vertical { + grid-row-start: 2; + grid-row-end: 10; + grid-column: 1 / -1; } + +.steps-6.horizontal { + grid-column-start: 2; + grid-column-end: 12; + grid-row: 1 / -1; } + +.steps-6.vertical { + grid-row-start: 2; + grid-row-end: 12; + grid-column: 1 / -1; } + +.steps-7.horizontal { + grid-column-start: 2; + grid-column-end: 14; + grid-row: 1 / -1; } + +.steps-7.vertical { + grid-row-start: 2; + grid-row-end: 14; + grid-column: 1 / -1; } + +.steps-8.horizontal { + grid-column-start: 2; + grid-column-end: 16; + grid-row: 1 / -1; } + +.steps-8.vertical { + grid-row-start: 2; + grid-row-end: 16; + grid-column: 1 / -1; } + +.steps-9.horizontal { + grid-column-start: 2; + grid-column-end: 18; + grid-row: 1 / -1; } + +.steps-9.vertical { + grid-row-start: 2; + grid-row-end: 18; + grid-column: 1 / -1; } + +.steps-10.horizontal { + grid-column-start: 2; + grid-column-end: 20; + grid-row: 1 / -1; } + +.steps-10.vertical { + grid-row-start: 2; + grid-row-end: 20; + grid-column: 1 / -1; } + +.steps-11.horizontal { + grid-column-start: 2; + grid-column-end: 22; + grid-row: 1 / -1; } + +.steps-11.vertical { + grid-row-start: 2; + grid-row-end: 22; + grid-column: 1 / -1; } + +.steps-12.horizontal { + grid-column-start: 2; + grid-column-end: 24; + grid-row: 1 / -1; } + +.steps-12.vertical { + grid-row-start: 2; + grid-row-end: 24; + grid-column: 1 / -1; } + +.mud-stepper-progress-extended.horizontal.header-size-small { + top: 22px; + height: 2px; } + +.mud-stepper-progress-extended.horizontal.header-size-medium { + top: 30px; + height: 3px; } + +.mud-stepper-progress-extended.horizontal.header-size-large { + top: 38px; + height: 4px; } + +.mud-stepper-progress-extended.vertical.header-size-small { + left: 22px; } + +.mud-stepper-progress-extended.vertical.header-size-medium { + left: 30px; } + +.mud-stepper-progress-extended.vertical.header-size-large { + left: 38px; } + +.mobile.horizontal .mud-stepper-progress-extended { + margin-inline-start: 40px; } + +.mud-stepper-progress-extended { + display: inline-grid; + z-index: 10; } + .mud-stepper-progress-extended.vertical { + transform: rotateX(180deg); } + .mud-switch-m3 { cursor: pointer; display: inline-flex; diff --git a/CodeBeam.MudBlazor.Extensions/Styles/MudExtensions.min.css b/CodeBeam.MudBlazor.Extensions/Styles/MudExtensions.min.css index 21f5abee..3369be87 100644 --- a/CodeBeam.MudBlazor.Extensions/Styles/MudExtensions.min.css +++ b/CodeBeam.MudBlazor.Extensions/Styles/MudExtensions.min.css @@ -1 +1 @@ -.mud-combobox{margin:0;padding:0;position:relative;list-style:none;}.mud-combobox.mud-combobox-padding{padding-top:8px;padding-bottom:8px;}.mud-combobox-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;min-height:48px;}.mud-combobox-item.mud-combobox-item-comfort{padding-top:4px;padding-bottom:4px;min-height:40px;}.mud-combobox-item.mud-combobox-item-slim{padding-top:2px;padding-bottom:2px;min-height:32px;}.mud-combobox-item.mud-combobox-item-superslim{padding-top:0;padding-bottom:0;min-height:24px;}.mud-combobox-item.mud-combobox-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-combobox-item.mud-combobox-item-disabled .mud-combobox-item-icon{color:var(--mud-palette-action-disabled) !important;}.mud-combobox-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-combobox-item-clickable:hover{background-color:var(--mud-palette-action-default-hover);}.mud-combobox-item-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-combobox-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-combobox-item-icon{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-combobox-item-multiselect{max-height:32px;}.mud-combobox-item-multiselect.mud-combobox-item-multiselect-checkbox{padding-inline-end:16px;}.mud-combobox-subheader{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-combobox-subheader-secondary-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-subheader-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-combobox-subheader-sticky{top:-8px;z-index:1;position:sticky;}.mud-combobox-subheader-sticky.mud-combobox-subheader-sticky-dense{top:0;}.mud-combobox-item-hilight{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-hilight{background-color:var(--mud-palette-lines-default) !important;}.mud-combobox-item-bordered{border-left:4px solid var(--mud-palette-lines-default);padding-inline-start:12px;}.mud-combobox-item-bordered-primary{border-left:4px solid var(--mud-palette-primary);padding-inline-start:12px;}.mud-combobox-item-bordered-secondary{border-left:4px solid var(--mud-palette-secondary);padding-inline-start:12px;}.mud-combobox-item-bordered-tertiary{border-left:4px solid var(--mud-palette-tertiary);padding-inline-start:12px;}.mud-combobox-item-bordered-info{border-left:4px solid var(--mud-palette-info);padding-inline-start:12px;}.mud-combobox-item-bordered-success{border-left:4px solid var(--mud-palette-success);padding-inline-start:12px;}.mud-combobox-item-bordered-warning{border-left:4px solid var(--mud-palette-warning);padding-inline-start:12px;}.mud-combobox-item-bordered-error{border-left:4px solid var(--mud-palette-error);padding-inline-start:12px;}.mud-combobox-item-bordered-dark{border-left:4px solid var(--mud-palette-dark);padding-inline-start:12px;}.mud-combobox-item-nested-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-avatar{min-width:56px;flex-shrink:0;}.mud-combobox-highlighter{background-color:transparent;font-weight:bold;text-decoration:underline;}.mud-gallery-selected-toolbox{left:0;right:0;height:56px;width:100%;background-color:rgba(0,0,0,.6);}.mud-gallery-selected-toolbox.gallery-toolbox-top{top:0;}.mud-gallery-selected-toolbox.gallery-toolbox-bottom{bottom:0;}.mud-page{display:grid;box-sizing:border-box;width:100%;}.mud-page.mud-page-height-full{min-height:100vh;}.mud-page.mud-page-height-full-without-appbar{min-height:calc(100vh - var(--mud-appbar-height));}.mud-page.mud-page-column-2{grid-template-columns:repeat(2,50%);}.mud-page.mud-page-column-3{grid-template-columns:repeat(3,33.33333%);}.mud-page.mud-page-column-4{grid-template-columns:repeat(4,25%);}.mud-page.mud-page-column-5{grid-template-columns:repeat(5,20%);}.mud-page.mud-page-column-6{grid-template-columns:repeat(6,16.66667%);}.mud-page.mud-page-column-7{grid-template-columns:repeat(7,14.28571%);}.mud-page.mud-page-column-8{grid-template-columns:repeat(8,12.5%);}.mud-page.mud-page-column-9{grid-template-columns:repeat(9,11.11111%);}.mud-page.mud-page-column-10{grid-template-columns:repeat(10,10%);}.mud-page.mud-page-column-11{grid-template-columns:repeat(11,9.09091%);}.mud-page.mud-page-column-12{grid-template-columns:repeat(12,8.33333%);}.mud-page.mud-page-row-2{grid-template-rows:repeat(2,50%);}.mud-page.mud-page-row-3{grid-template-rows:repeat(3,33.33333%);}.mud-page.mud-page-row-4{grid-template-rows:repeat(4,25%);}.mud-page.mud-page-row-5{grid-template-rows:repeat(5,20%);}.mud-page.mud-page-row-6{grid-template-rows:repeat(6,16.66667%);}.mud-page.mud-page-row-7{grid-template-rows:repeat(7,14.28571%);}.mud-page.mud-page-row-8{grid-template-rows:repeat(8,12.5%);}.mud-page.mud-page-row-9{grid-template-rows:repeat(9,11.11111%);}.mud-page.mud-page-row-10{grid-template-rows:repeat(10,10%);}.mud-page.mud-page-row-11{grid-template-rows:repeat(11,9.09091%);}.mud-page.mud-page-row-12{grid-template-rows:repeat(12,8.33333%);}.mud-section{display:inline-grid;overflow:auto;}.mud-section.mud-section-col-start-1{grid-column-start:1;}.mud-section.mud-section-col-start-2{grid-column-start:2;}.mud-section.mud-section-col-start-3{grid-column-start:3;}.mud-section.mud-section-col-start-4{grid-column-start:4;}.mud-section.mud-section-col-start-5{grid-column-start:5;}.mud-section.mud-section-col-start-6{grid-column-start:6;}.mud-section.mud-section-col-start-7{grid-column-start:7;}.mud-section.mud-section-col-start-8{grid-column-start:8;}.mud-section.mud-section-col-start-9{grid-column-start:9;}.mud-section.mud-section-col-start-10{grid-column-start:10;}.mud-section.mud-section-col-start-11{grid-column-start:11;}.mud-section.mud-section-col-start-12{grid-column-start:12;}.mud-section.mud-section-col-end-1{grid-column-end:1;}.mud-section.mud-section-col-end-2{grid-column-end:2;}.mud-section.mud-section-col-end-3{grid-column-end:3;}.mud-section.mud-section-col-end-4{grid-column-end:4;}.mud-section.mud-section-col-end-5{grid-column-end:5;}.mud-section.mud-section-col-end-6{grid-column-end:6;}.mud-section.mud-section-col-end-7{grid-column-end:7;}.mud-section.mud-section-col-end-8{grid-column-end:8;}.mud-section.mud-section-col-end-9{grid-column-end:9;}.mud-section.mud-section-col-end-10{grid-column-end:10;}.mud-section.mud-section-col-end-11{grid-column-end:11;}.mud-section.mud-section-col-end-12{grid-column-end:12;}.mud-section.mud-section-col-end-13{grid-column-end:13;}.mud-section.mud-section-row-start-1{grid-row-start:1;}.mud-section.mud-section-row-start-2{grid-row-start:2;}.mud-section.mud-section-row-start-3{grid-row-start:3;}.mud-section.mud-section-row-start-4{grid-row-start:4;}.mud-section.mud-section-row-start-5{grid-row-start:5;}.mud-section.mud-section-row-start-6{grid-row-start:6;}.mud-section.mud-section-row-start-7{grid-row-start:7;}.mud-section.mud-section-row-start-8{grid-row-start:8;}.mud-section.mud-section-row-start-9{grid-row-start:9;}.mud-section.mud-section-row-start-10{grid-row-start:10;}.mud-section.mud-section-row-start-11{grid-row-start:11;}.mud-section.mud-section-row-start-12{grid-row-start:12;}.mud-section.mud-section-row-end-1{grid-row-end:1;}.mud-section.mud-section-row-end-2{grid-row-end:2;}.mud-section.mud-section-row-end-3{grid-row-end:3;}.mud-section.mud-section-row-end-4{grid-row-end:4;}.mud-section.mud-section-row-end-5{grid-row-end:5;}.mud-section.mud-section-row-end-6{grid-row-end:6;}.mud-section.mud-section-row-end-7{grid-row-end:7;}.mud-section.mud-section-row-end-8{grid-row-end:8;}.mud-section.mud-section-row-end-9{grid-row-end:9;}.mud-section.mud-section-row-end-10{grid-row-end:10;}.mud-section.mud-section-row-end-11{grid-row-end:11;}.mud-section.mud-section-row-end-12{grid-row-end:12;}.mud-section.mud-section-row-end-13{grid-row-end:13;}.mud-popup{z-index:2000;overflow:auto;background-color:var(--mud-palette-background);min-height:var(--mud-appbar-height);}.mud-popup.mud-popup-center{height:300px;left:50%;top:50%;transform:translate(-50%,-50%);width:320px;aspect-ratio:1/1;}.mud-range-container{align-items:center;margin:20px 0;}.mud-range-container input::-webkit-slider-thumb{pointer-events:all;position:relative;z-index:1;}.mud-range-container input::-moz-range-thumb{pointer-events:all;position:relative;z-index:10;}.mud-range-container input::-moz-range-track{position:relative;z-index:-1;}.mud-range-container input:last-of-type::-moz-range-track{-moz-appearance:none;}.mud-range-container .mud-slider-input:last-of-type{position:absolute;pointer-events:none;top:0;}.mud-range-container input[type=range]::-webkit-slider-thumb{pointer-events:all;}.mud-range-display{text-align:center;}.mud-signature-pad-container{touch-action:none;}.mud-splitter{display:grid;position:relative;width:100%;}.mud-splitter-content{overflow:auto;}.mud-splitter-thumb ::-webkit-slider-runnable-track{visibility:hidden !important;height:100% !important;}.mud-splitter-thumb ::-moz-range-track{visibility:hidden !important;height:100% !important;}.mud-splitter-track{position:absolute;top:50%;transform:translateY(-50%);height:100%;}.mud-splitter-track.mud-slider{visibility:hidden !important;}.mud-splitter-track.mud-slider .mud-slider-container{height:100% !important;}.mud-splitter-track.mud-slider .mud-slider-input{top:50%;}.mud-splitter-thumb ::-webkit-slider-thumb{visibility:visible !important;appearance:none !important;-webkit-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-webkit-slider-thumb{cursor:default !important;}.mud-splitter-thumb ::-moz-range-thumb{visibility:visible !important;appearance:none !important;-moz-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-moz-range-thumb{cursor:default !important;}.mud-stepper-header{min-height:62px;border-radius:var(--mud-default-borderradius);}.mud-stepper-header.mud-stepper-header-non-linear:hover{background-color:var(--mud-palette-action-default-hover);}.mud-stepper-badge{z-index:21;}.mud-switch-m3{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;margin-top:4px;margin-bottom:4px;-webkit-tap-highlight-color:transparent;}.mud-switch-m3.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;}.mud-switch-m3.mud-readonly,.mud-switch-m3 .mud-readonly:hover{cursor:default;background-color:transparent !important;}.mud-switch-span-m3{width:52px;height:32px;display:inline-flex;z-index:0;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle;}.mud-switch-span-m3.mud-switch-child-content-m3{margin-inline-end:12px;}.mud-switch-span-m3 .mud-switch-track-m3{width:52px;height:32px;z-index:-1;transition:opacity 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;border-radius:30px;background-color:var(--mud-palette-background);border:2px solid;}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-default-m3{border-color:var(--mud-palette-text-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-primary-m3{border-color:var(--mud-palette-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-secondary-m3{border-color:var(--mud-palette-secondary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-tertiary-m3{border-color:var(--mud-palette-tertiary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-info-m3{border-color:var(--mud-palette-info);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-success-m3{border-color:var(--mud-palette-success);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-warning-m3{border-color:var(--mud-palette-warning);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-error-m3{border-color:var(--mud-palette-error);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-dark-m3{border-color:var(--mud-palette-dark);}.mud-switch-base-m3{padding-top:4px;padding-bottom:4px;padding-inline-start:8px;top:0;left:0;bottom:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(.4,0,.2,1) 0ms,transform 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 250ms cubic-bezier(.4,0,.2,1) 0ms,box-shadow 250ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-switch-base-m3.mud-switch-base-dense-m3{padding-inline-start:4px;}.mud-switch-base-m3.mud-checked{transform:translateX(20px);padding:4px;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3{opacity:1;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-default{background-color:var(--mud-palette-text-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-primary{background-color:var(--mud-palette-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-secondary{background-color:var(--mud-palette-secondary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-tertiary{background-color:var(--mud-palette-tertiary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-info{background-color:var(--mud-palette-info);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-success{background-color:var(--mud-palette-success);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-warning{background-color:var(--mud-palette-warning);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-error{background-color:var(--mud-palette-error);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-dark{background-color:var(--mud-palette-dark);}.mud-switch-base-m3.mud-checked .mud-switch-thumb-m3{width:24px;height:24px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;background-color:var(--mud-palette-background);}.mud-switch-base-m3:hover{background-color:var(--mud-palette-action-default-hover);}.mud-switch-base-m3.mud-switch-disabled{color:var(--mud-palette-gray-default) !important;}.mud-switch-base-m3.mud-switch-disabled+.mud-switch-track-m3{opacity:.12 !important;}.mud-switch-base-m3.mud-switch-disabled:hover,.mud-switch-base-m3.mud-switch-disabled:focus-visible{cursor:default;background-color:transparent !important;}.mud-switch-button-m3{display:flex;align-items:inherit;justify-content:inherit;}.mud-switch-button-m3 .mud-switch-input-m3{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute;}.mud-switch-button-m3 .mud-switch-thumb-m3{width:16px;height:16px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-default-m3{background-color:var(--mud-palette-text-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-primary-m3{background-color:var(--mud-palette-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-secondary-m3{background-color:var(--mud-palette-secondary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-tertiary-m3{background-color:var(--mud-palette-tertiary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-info-m3{background-color:var(--mud-palette-info);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-success-m3{background-color:var(--mud-palette-success);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-warning-m3{background-color:var(--mud-palette-warning);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-error-m3{background-color:var(--mud-palette-error);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-dark-m3{background-color:var(--mud-palette-dark);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-off-icon-m3{width:24px;height:24px;}.mud-wheel{overflow:hidden;min-width:0;flex-grow:1;user-select:none;-webkit-user-select:none;}.mud-wheel-item{width:100%;display:flex;align-content:center;justify-content:center;color:var(--mud-palette-text-secondary);border-radius:var(--mud-default-borderradius);}.mud-wheel-item.mud-wheel-item:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover);}.mud-wheel-item.wheel-item-closest{color:var(--mud-palette-text);}.mud-wheel-item.wheel-item-empty{min-height:32px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty-dense{min-height:24px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty:hover{background-color:unset;}.mud-wheel-item.mud-disabled{color:var(--mud-palette-text-disabled);}.middle-item{transform:scale(1.2);}.middle-item.mud-disabled{color:var(--mud-palette-text-disabled);}.mud-wheel-border{min-height:2px !important;}.mud-wheel-border.mud-wheel-border-default{background-color:var(--mud-palette-text-primary);}.mud-wheel-border.mud-wheel-border-primary{background-color:var(--mud-palette-primary);}.mud-wheel-border.wheel-border-gradient-primary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-primary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-secondary{background-color:var(--mud-palette-secondary);}.mud-wheel-border.wheel-border-gradient-secondary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-secondary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-tertiary{background-color:var(--mud-palette-tertiary);}.mud-wheel-border.wheel-border-gradient-tertiary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-tertiary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-info{background-color:var(--mud-palette-info);}.mud-wheel-border.wheel-border-gradient-info{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-info),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-success{background-color:var(--mud-palette-success);}.mud-wheel-border.wheel-border-gradient-success{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-success),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-warning{background-color:var(--mud-palette-warning);}.mud-wheel-border.wheel-border-gradient-warning{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-warning),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-error{background-color:var(--mud-palette-error);}.mud-wheel-border.wheel-border-gradient-error{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-error),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-dark{background-color:var(--mud-palette-dark);}.mud-wheel-border.wheel-border-gradient-dark{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-dark),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.wheel-border-gradient-default{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-text-primary),rgba(255,0,0,0));background-color:unset;}.mud-typographym3-display-large{font-family:var(--mud-typographym3-display-large-font);line-height:var(--mud-typographym3-display-large-line-height);font-size:var(--mud-typographym3-display-large-size);letter-spacing:var(--mud-typographym3-display-large-tracking);font-weight:var(--mud-typographym3-display-large-weight);}.mud-typographym3-display-medium{font-family:var(--mud-typographym3-display-medium-font);line-height:var(--mud-typographym3-display-medium-line-height);font-size:var(--mud-typographym3-display-medium-size);letter-spacing:var(--mud-typographym3-display-medium-tracking);font-weight:var(--mud-typographym3-display-medium-weight);}.mud-typographym3-display-small{font-family:var(--mud-typographym3-display-small-font);line-height:var(--mud-typographym3-display-small-line-height);font-size:var(--mud-typographym3-display-small-size);letter-spacing:var(--mud-typographym3-display-small-tracking);font-weight:var(--mud-typographym3-display-small-weight);}.mud-typographym3-headline-large{font-family:var(--mud-typographym3-headline-large-font);line-height:var(--mud-typographym3-headline-large-line-height);font-size:var(--mud-typographym3-headline-large-size);letter-spacing:var(--mud-typographym3-headline-large-tracking);font-weight:var(--mud-typographym3-headline-large-weight);}.mud-typographym3-headline-medium{font-family:var(--mud-typographym3-headline-medium-font);line-height:var(--mud-typographym3-headline-medium-line-height);font-size:var(--mud-typographym3-headline-medium-size);letter-spacing:var(--mud-typographym3-headline-medium-tracking);font-weight:var(--mud-typographym3-headline-medium-weight);}.mud-typographym3-headline-small{font-family:var(--mud-typographym3-headline-small-font);line-height:var(--mud-typographym3-headline-small-line-height);font-size:var(--mud-typographym3-headline-small-size);letter-spacing:var(--mud-typographym3-headline-small-tracking);font-weight:var(--mud-typographym3-headline-small-weight);}.mud-typographym3-title-large{font-family:var(--mud-typographym3-title-large-font);line-height:var(--mud-typographym3-title-large-line-height);font-size:var(--mud-typographym3-title-large-size);letter-spacing:var(--mud-typographym3-title-large-tracking);font-weight:var(--mud-typographym3-title-large-weight);}.mud-typographym3-title-medium{font-family:var(--mud-typographym3-title-medium-font);line-height:var(--mud-typographym3-title-medium-line-height);font-size:var(--mud-typographym3-title-medium-size);letter-spacing:var(--mud-typographym3-title-medium-tracking);font-weight:var(--mud-typographym3-title-medium-weight);}.mud-typographym3-title-small{font-family:var(--mud-typographym3-title-small-font);line-height:var(--mud-typographym3-title-small-line-height);font-size:var(--mud-typographym3-title-small-size);letter-spacing:var(--mud-typographym3-title-small-tracking);font-weight:var(--mud-typographym3-title-small-weight);}.mud-typographym3-body-large{font-family:var(--mud-typographym3-body-large-font);line-height:var(--mud-typographym3-body-large-line-height);font-size:var(--mud-typographym3-body-large-size);letter-spacing:var(--mud-typographym3-body-large-tracking);font-weight:var(--mud-typographym3-body-large-weight);}.mud-typographym3-body-medium{font-family:var(--mud-typographym3-body-medium-font);line-height:var(--mud-typographym3-body-medium-line-height);font-size:var(--mud-typographym3-body-medium-size);letter-spacing:var(--mud-typographym3-body-medium-tracking);font-weight:var(--mud-typographym3-body-medium-weight);}.mud-typographym3-body-small{font-family:var(--mud-typographym3-body-small-font);line-height:var(--mud-typographym3-body-small-line-height);font-size:var(--mud-typographym3-body-small-size);letter-spacing:var(--mud-typographym3-body-small-tracking);font-weight:var(--mud-typographym3-body-small-weight);}.mud-typographym3-label-large{font-family:var(--mud-typographym3-label-large-font);line-height:var(--mud-typographym3-label-large-line-height);font-size:var(--mud-typographym3-label-large-size);letter-spacing:var(--mud-typographym3-label-large-tracking);font-weight:var(--mud-typographym3-label-large-weight);}.mud-typographym3-label-medium{font-family:var(--mud-typographym3-label-medium-font);line-height:var(--mud-typographym3-label-medium-line-height);font-size:var(--mud-typographym3-label-medium-size);letter-spacing:var(--mud-typographym3-label-medium-tracking);font-weight:var(--mud-typographym3-label-medium-weight);}.mud-typographym3-label-small{font-family:var(--mud-typographym3-label-small-font);line-height:var(--mud-typographym3-label-small-line-height);font-size:var(--mud-typographym3-label-small-size);letter-spacing:var(--mud-typographym3-label-small-tracking);font-weight:var(--mud-typographym3-label-small-weight);}.mud-typography-display-inline{display:inline;}.mud-transfer-list-common{height:fill-available;height:-webkit-fill-available;}.mud-transfer-list-container{display:flex;flex-direction:column;flex:1 1 0%;}.mud-list-extended{margin:0;padding:0;position:relative;list-style:none;}.mud-list-extended.mud-list-padding-extended{padding-top:8px;padding-bottom:8px;}.mud-list-item-extended{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;}.mud-list-item-extended.mud-list-item-dense-extended{padding-top:4px;padding-bottom:4px;}.mud-list-item-extended.mud-list-item-disabled-extended{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-list-item-extended.mud-list-item-disabled-extended .mud-list-item-icon-extended{color:var(--mud-palette-action-disabled) !important;}.mud-list-item-clickable-extended{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-list-item-clickable-extended:hover:not(.mud-list-item-functional){background-color:var(--mud-palette-action-default-hover);}.mud-list-item-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-item-text-extended{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-list-item-text-inset-extended{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-list-item-icon-extended{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-list-item-multiselect-extended{max-height:32px;}.mud-list-item-multiselect-extended.mud-list-item-multiselect-checkbox-extended{padding-inline-end:16px;}.mud-list-subheader-extended{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-list-subheader-secondary-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-subheader-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-subheader-inset-extended{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-list-subheader-sticky-extended{top:-8px;z-index:1;position:sticky;}.mud-list-subheader-sticky-extended.mud-list-subheader-sticky-dense-extended{top:0;}.mud-list-item-hilight-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-hilight-selected{background-color:var(--mud-palette-lines-default) !important;}.mud-list-item-nested-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-avatar-extended{min-width:56px;flex-shrink:0;}.mud-nested-list-extended>.mud-list-item-extended{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset;}.mud-select-extended{display:flex;flex-grow:1;flex-basis:0;min-width:0;position:relative;height:fit-content;}.mud-select-extended.mud-autocomplete{display:block;}.mud-select-extended.mud-autocomplete .mud-select-input-extended{cursor:text;}.mud-select-extended.mud-autocomplete .mud-input-adornment-extended{cursor:pointer;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended input{padding-right:3.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended .mud-icon-button{display:none !important;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular--with-adornment{padding-right:3rem;}.mud-select-extended.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px;}.mud-select-extended .mud-select-input-extended{cursor:pointer;}.mud-select-extended .mud-select-input-extended .mud-select-extended-nowrap{white-space:nowrap;}.mud-select-extended .mud-select-input-extended .mud-input-slot{overflow:hidden;text-overflow:ellipsis;}.mud-select-extended .mud-select-input-extended .mud-input-adornment-end{margin-left:0;}.mud-select-extended .mud-select-input-extended:disabled{cursor:default;}.mud-select-extended .mud-disabled .mud-select-input{cursor:default;}.mud-select-extended>.mud-form-helpertext{margin-top:-21px;}.mud-select-all-extended{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px;}.mud-select-input-chip-extended{display:flex;flex-wrap:wrap;max-width:100%;row-gap:4px;}.mud-select-input-chip-extended.mud-select-extended-nowrap{flex-wrap:nowrap;overflow-x:hidden;}.mud-select-input-chip-extended .mud-chip{flex:0 0 auto;white-space:nowrap;}.mud-placeholder-extended{line-height:unset;}.mud-input-adornment-start-extended:not(.mud-input-text-extended){margin-inline-start:12px;}.mud-input-adornment-start-extended.mud-input-filled-extended{margin-top:16px;}.mud-input-adornment-end-extended:not(.mud-input-text-extended){margin-inline-end:12px;}.mud-no-start-adornment .mud-input-adornment-start-extended{margin-inline-start:0 !important;} \ No newline at end of file +.mud-combobox{margin:0;padding:0;position:relative;list-style:none;}.mud-combobox.mud-combobox-padding{padding-top:8px;padding-bottom:8px;}.mud-combobox-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;min-height:48px;}.mud-combobox-item.mud-combobox-item-comfort{padding-top:4px;padding-bottom:4px;min-height:40px;}.mud-combobox-item.mud-combobox-item-slim{padding-top:2px;padding-bottom:2px;min-height:32px;}.mud-combobox-item.mud-combobox-item-superslim{padding-top:0;padding-bottom:0;min-height:24px;}.mud-combobox-item.mud-combobox-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-combobox-item.mud-combobox-item-disabled .mud-combobox-item-icon{color:var(--mud-palette-action-disabled) !important;}.mud-combobox-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-combobox-item-clickable:hover{background-color:var(--mud-palette-action-default-hover);}.mud-combobox-item-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-combobox-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-combobox-item-icon{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-combobox-item-multiselect{max-height:32px;}.mud-combobox-item-multiselect.mud-combobox-item-multiselect-checkbox{padding-inline-end:16px;}.mud-combobox-subheader{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-combobox-subheader-secondary-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-subheader-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-combobox-subheader-sticky{top:-8px;z-index:1;position:sticky;}.mud-combobox-subheader-sticky.mud-combobox-subheader-sticky-dense{top:0;}.mud-combobox-item-hilight{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-hilight{background-color:var(--mud-palette-lines-default) !important;}.mud-combobox-item-bordered{border-left:4px solid var(--mud-palette-lines-default);padding-inline-start:12px;}.mud-combobox-item-bordered-primary{border-left:4px solid var(--mud-palette-primary);padding-inline-start:12px;}.mud-combobox-item-bordered-secondary{border-left:4px solid var(--mud-palette-secondary);padding-inline-start:12px;}.mud-combobox-item-bordered-tertiary{border-left:4px solid var(--mud-palette-tertiary);padding-inline-start:12px;}.mud-combobox-item-bordered-info{border-left:4px solid var(--mud-palette-info);padding-inline-start:12px;}.mud-combobox-item-bordered-success{border-left:4px solid var(--mud-palette-success);padding-inline-start:12px;}.mud-combobox-item-bordered-warning{border-left:4px solid var(--mud-palette-warning);padding-inline-start:12px;}.mud-combobox-item-bordered-error{border-left:4px solid var(--mud-palette-error);padding-inline-start:12px;}.mud-combobox-item-bordered-dark{border-left:4px solid var(--mud-palette-dark);padding-inline-start:12px;}.mud-combobox-item-nested-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-avatar{min-width:56px;flex-shrink:0;}.mud-combobox-highlighter{background-color:transparent;font-weight:bold;text-decoration:underline;}.mud-gallery-selected-toolbox{left:0;right:0;height:56px;width:100%;background-color:rgba(0,0,0,.6);}.mud-gallery-selected-toolbox.gallery-toolbox-top{top:0;}.mud-gallery-selected-toolbox.gallery-toolbox-bottom{bottom:0;}.mud-page{display:grid;box-sizing:border-box;width:100%;}.mud-page.mud-page-height-full{min-height:100vh;}.mud-page.mud-page-height-full-without-appbar{min-height:calc(100vh - var(--mud-appbar-height));}.mud-page.mud-page-column-2{grid-template-columns:repeat(2,50%);}.mud-page.mud-page-column-3{grid-template-columns:repeat(3,33.33333%);}.mud-page.mud-page-column-4{grid-template-columns:repeat(4,25%);}.mud-page.mud-page-column-5{grid-template-columns:repeat(5,20%);}.mud-page.mud-page-column-6{grid-template-columns:repeat(6,16.66667%);}.mud-page.mud-page-column-7{grid-template-columns:repeat(7,14.28571%);}.mud-page.mud-page-column-8{grid-template-columns:repeat(8,12.5%);}.mud-page.mud-page-column-9{grid-template-columns:repeat(9,11.11111%);}.mud-page.mud-page-column-10{grid-template-columns:repeat(10,10%);}.mud-page.mud-page-column-11{grid-template-columns:repeat(11,9.09091%);}.mud-page.mud-page-column-12{grid-template-columns:repeat(12,8.33333%);}.mud-page.mud-page-row-2{grid-template-rows:repeat(2,50%);}.mud-page.mud-page-row-3{grid-template-rows:repeat(3,33.33333%);}.mud-page.mud-page-row-4{grid-template-rows:repeat(4,25%);}.mud-page.mud-page-row-5{grid-template-rows:repeat(5,20%);}.mud-page.mud-page-row-6{grid-template-rows:repeat(6,16.66667%);}.mud-page.mud-page-row-7{grid-template-rows:repeat(7,14.28571%);}.mud-page.mud-page-row-8{grid-template-rows:repeat(8,12.5%);}.mud-page.mud-page-row-9{grid-template-rows:repeat(9,11.11111%);}.mud-page.mud-page-row-10{grid-template-rows:repeat(10,10%);}.mud-page.mud-page-row-11{grid-template-rows:repeat(11,9.09091%);}.mud-page.mud-page-row-12{grid-template-rows:repeat(12,8.33333%);}.mud-section{display:inline-grid;overflow:auto;}.mud-section.mud-section-col-start-1{grid-column-start:1;}.mud-section.mud-section-col-start-2{grid-column-start:2;}.mud-section.mud-section-col-start-3{grid-column-start:3;}.mud-section.mud-section-col-start-4{grid-column-start:4;}.mud-section.mud-section-col-start-5{grid-column-start:5;}.mud-section.mud-section-col-start-6{grid-column-start:6;}.mud-section.mud-section-col-start-7{grid-column-start:7;}.mud-section.mud-section-col-start-8{grid-column-start:8;}.mud-section.mud-section-col-start-9{grid-column-start:9;}.mud-section.mud-section-col-start-10{grid-column-start:10;}.mud-section.mud-section-col-start-11{grid-column-start:11;}.mud-section.mud-section-col-start-12{grid-column-start:12;}.mud-section.mud-section-col-end-1{grid-column-end:1;}.mud-section.mud-section-col-end-2{grid-column-end:2;}.mud-section.mud-section-col-end-3{grid-column-end:3;}.mud-section.mud-section-col-end-4{grid-column-end:4;}.mud-section.mud-section-col-end-5{grid-column-end:5;}.mud-section.mud-section-col-end-6{grid-column-end:6;}.mud-section.mud-section-col-end-7{grid-column-end:7;}.mud-section.mud-section-col-end-8{grid-column-end:8;}.mud-section.mud-section-col-end-9{grid-column-end:9;}.mud-section.mud-section-col-end-10{grid-column-end:10;}.mud-section.mud-section-col-end-11{grid-column-end:11;}.mud-section.mud-section-col-end-12{grid-column-end:12;}.mud-section.mud-section-col-end-13{grid-column-end:13;}.mud-section.mud-section-row-start-1{grid-row-start:1;}.mud-section.mud-section-row-start-2{grid-row-start:2;}.mud-section.mud-section-row-start-3{grid-row-start:3;}.mud-section.mud-section-row-start-4{grid-row-start:4;}.mud-section.mud-section-row-start-5{grid-row-start:5;}.mud-section.mud-section-row-start-6{grid-row-start:6;}.mud-section.mud-section-row-start-7{grid-row-start:7;}.mud-section.mud-section-row-start-8{grid-row-start:8;}.mud-section.mud-section-row-start-9{grid-row-start:9;}.mud-section.mud-section-row-start-10{grid-row-start:10;}.mud-section.mud-section-row-start-11{grid-row-start:11;}.mud-section.mud-section-row-start-12{grid-row-start:12;}.mud-section.mud-section-row-end-1{grid-row-end:1;}.mud-section.mud-section-row-end-2{grid-row-end:2;}.mud-section.mud-section-row-end-3{grid-row-end:3;}.mud-section.mud-section-row-end-4{grid-row-end:4;}.mud-section.mud-section-row-end-5{grid-row-end:5;}.mud-section.mud-section-row-end-6{grid-row-end:6;}.mud-section.mud-section-row-end-7{grid-row-end:7;}.mud-section.mud-section-row-end-8{grid-row-end:8;}.mud-section.mud-section-row-end-9{grid-row-end:9;}.mud-section.mud-section-row-end-10{grid-row-end:10;}.mud-section.mud-section-row-end-11{grid-row-end:11;}.mud-section.mud-section-row-end-12{grid-row-end:12;}.mud-section.mud-section-row-end-13{grid-row-end:13;}.mud-popup{z-index:2000;overflow:auto;background-color:var(--mud-palette-background);min-height:var(--mud-appbar-height);}.mud-popup.mud-popup-center{height:300px;left:50%;top:50%;transform:translate(-50%,-50%);width:320px;aspect-ratio:1/1;}.mud-range-container{align-items:center;margin:20px 0;}.mud-range-container input::-webkit-slider-thumb{pointer-events:all;position:relative;z-index:1;}.mud-range-container input::-moz-range-thumb{pointer-events:all;position:relative;z-index:10;}.mud-range-container input::-moz-range-track{position:relative;z-index:-1;}.mud-range-container input:last-of-type::-moz-range-track{-moz-appearance:none;}.mud-range-container .mud-slider-input:last-of-type{position:absolute;pointer-events:none;top:0;}.mud-range-container input[type=range]::-webkit-slider-thumb{pointer-events:all;}.mud-range-display{text-align:center;}.mud-signature-pad-container{touch-action:none;}.mud-splitter{display:grid;position:relative;width:100%;}.mud-splitter-content{overflow:auto;}.mud-splitter-thumb ::-webkit-slider-runnable-track{visibility:hidden !important;height:100% !important;}.mud-splitter-thumb ::-moz-range-track{visibility:hidden !important;height:100% !important;}.mud-splitter-track{position:absolute;top:50%;transform:translateY(-50%);height:100%;}.mud-splitter-track.mud-slider{visibility:hidden !important;}.mud-splitter-track.mud-slider .mud-slider-container{height:100% !important;}.mud-splitter-track.mud-slider .mud-slider-input{top:50%;}.mud-splitter-thumb ::-webkit-slider-thumb{visibility:visible !important;appearance:none !important;-webkit-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-webkit-slider-thumb{cursor:default !important;}.mud-splitter-thumb ::-moz-range-thumb{visibility:visible !important;appearance:none !important;-moz-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-moz-range-thumb{cursor:default !important;}.mud-stepper-header-extended{min-height:62px;border-radius:var(--mud-default-borderradius);}.mud-stepper-header-extended.mud-stepper-header-non-linear-extended:hover{background-color:var(--mud-palette-action-default-hover);}.mud-stepper-badge-extended{z-index:21;}.mud-stepper-avatar-extended{z-index:20;}.mud-stepper-avatar-bg-extended{background-color:var(--mud-palette-background);}.mud-stepper-sub-inner-header-extended{grid-column-start:1;grid-column-end:-1;flex-direction:row;grid-row:1;list-style:none;display:flex;}.mud-stepper-sub-inner-header-vertical-extended{grid-row-start:1;grid-row-end:-1;flex-direction:column;grid-column:1;list-style:none;display:flex;}.mud-stepper-text-mobile-extended{grid-row:1;margin-top:22px;}.mud-stepper-text-mobile-vertical-extended{grid-column:1;margin-inline-start:22px;}.mud-stepper-step-1.horizontal{width:calc(100%/1);}.mud-stepper-step-1.vertical{height:calc(100%/1);}.mud-stepper-step-2.horizontal{width:calc(100%/2);}.mud-stepper-step-2.vertical{height:calc(100%/2);}.mud-stepper-step-3.horizontal{width:calc(100%/3);}.mud-stepper-step-3.vertical{height:calc(100%/3);}.mud-stepper-step-4.horizontal{width:calc(100%/4);}.mud-stepper-step-4.vertical{height:calc(100%/4);}.mud-stepper-step-5.horizontal{width:calc(100%/5);}.mud-stepper-step-5.vertical{height:calc(100%/5);}.mud-stepper-step-6.horizontal{width:calc(100%/6);}.mud-stepper-step-6.vertical{height:calc(100%/6);}.mud-stepper-step-7.horizontal{width:calc(100%/7);}.mud-stepper-step-7.vertical{height:calc(100%/7);}.mud-stepper-step-8.horizontal{width:calc(100%/8);}.mud-stepper-step-8.vertical{height:calc(100%/8);}.mud-stepper-step-9.horizontal{width:calc(100%/9);}.mud-stepper-step-9.vertical{height:calc(100%/9);}.mud-stepper-step-10.horizontal{width:calc(100%/10);}.mud-stepper-step-10.vertical{height:calc(100%/10);}.mud-stepper-step-11.horizontal{width:calc(100%/11);}.mud-stepper-step-11.vertical{height:calc(100%/11);}.mud-stepper-step-12.horizontal{width:calc(100%/12);}.mud-stepper-step-12.vertical{height:calc(100%/12);}.mud-stepper-grid-1.horizontal{display:grid;grid-template-columns:repeat(2,1fr);}.mud-stepper-grid-1.vertical{display:grid;grid-template-rows:repeat(2,1fr);}.mud-stepper-grid-2.horizontal{display:grid;grid-template-columns:repeat(4,1fr);}.mud-stepper-grid-2.vertical{display:grid;grid-template-rows:repeat(4,1fr);}.mud-stepper-grid-3.horizontal{display:grid;grid-template-columns:repeat(6,1fr);}.mud-stepper-grid-3.vertical{display:grid;grid-template-rows:repeat(6,1fr);}.mud-stepper-grid-4.horizontal{display:grid;grid-template-columns:repeat(8,1fr);}.mud-stepper-grid-4.vertical{display:grid;grid-template-rows:repeat(8,1fr);}.mud-stepper-grid-5.horizontal{display:grid;grid-template-columns:repeat(10,1fr);}.mud-stepper-grid-5.vertical{display:grid;grid-template-rows:repeat(10,1fr);}.mud-stepper-grid-6.horizontal{display:grid;grid-template-columns:repeat(12,1fr);}.mud-stepper-grid-6.vertical{display:grid;grid-template-rows:repeat(12,1fr);}.mud-stepper-grid-7.horizontal{display:grid;grid-template-columns:repeat(14,1fr);}.mud-stepper-grid-7.vertical{display:grid;grid-template-rows:repeat(14,1fr);}.mud-stepper-grid-8.horizontal{display:grid;grid-template-columns:repeat(16,1fr);}.mud-stepper-grid-8.vertical{display:grid;grid-template-rows:repeat(16,1fr);}.mud-stepper-grid-9.horizontal{display:grid;grid-template-columns:repeat(18,1fr);}.mud-stepper-grid-9.vertical{display:grid;grid-template-rows:repeat(18,1fr);}.mud-stepper-grid-10.horizontal{display:grid;grid-template-columns:repeat(20,1fr);}.mud-stepper-grid-10.vertical{display:grid;grid-template-rows:repeat(20,1fr);}.mud-stepper-grid-11.horizontal{display:grid;grid-template-columns:repeat(22,1fr);}.mud-stepper-grid-11.vertical{display:grid;grid-template-rows:repeat(22,1fr);}.mud-stepper-grid-12.horizontal{display:grid;grid-template-columns:repeat(24,1fr);}.mud-stepper-grid-12.vertical{display:grid;grid-template-rows:repeat(24,1fr);}.mud-stepper-grid-13.horizontal{display:grid;grid-template-columns:repeat(26,1fr);}.mud-stepper-grid-13.vertical{display:grid;grid-template-rows:repeat(26,1fr);}.mud-stepper-grid-14.horizontal{display:grid;grid-template-columns:repeat(28,1fr);}.mud-stepper-grid-14.vertical{display:grid;grid-template-rows:repeat(28,1fr);}.mud-stepper-grid-15.horizontal{display:grid;grid-template-columns:repeat(30,1fr);}.mud-stepper-grid-15.vertical{display:grid;grid-template-rows:repeat(30,1fr);}.mud-stepper-grid-16.horizontal{display:grid;grid-template-columns:repeat(32,1fr);}.mud-stepper-grid-16.vertical{display:grid;grid-template-rows:repeat(32,1fr);}.mud-stepper-grid-17.horizontal{display:grid;grid-template-columns:repeat(34,1fr);}.mud-stepper-grid-17.vertical{display:grid;grid-template-rows:repeat(34,1fr);}.mud-stepper-grid-18.horizontal{display:grid;grid-template-columns:repeat(36,1fr);}.mud-stepper-grid-18.vertical{display:grid;grid-template-rows:repeat(36,1fr);}.mud-stepper-grid-19.horizontal{display:grid;grid-template-columns:repeat(38,1fr);}.mud-stepper-grid-19.vertical{display:grid;grid-template-rows:repeat(38,1fr);}.mud-stepper-grid-20.horizontal{display:grid;grid-template-columns:repeat(40,1fr);}.mud-stepper-grid-20.vertical{display:grid;grid-template-rows:repeat(40,1fr);}.mud-stepper-grid-21.horizontal{display:grid;grid-template-columns:repeat(42,1fr);}.mud-stepper-grid-21.vertical{display:grid;grid-template-rows:repeat(42,1fr);}.mud-stepper-grid-22.horizontal{display:grid;grid-template-columns:repeat(44,1fr);}.mud-stepper-grid-22.vertical{display:grid;grid-template-rows:repeat(44,1fr);}.mud-stepper-grid-23.horizontal{display:grid;grid-template-columns:repeat(46,1fr);}.mud-stepper-grid-23.vertical{display:grid;grid-template-rows:repeat(46,1fr);}.mud-stepper-grid-24.horizontal{display:grid;grid-template-columns:repeat(48,1fr);}.mud-stepper-grid-24.vertical{display:grid;grid-template-rows:repeat(48,1fr);}.steps-1.horizontal{grid-column-start:2;grid-column-end:2;grid-row:1/-1;}.steps-1.vertical{grid-row-start:2;grid-row-end:2;grid-column:1/-1;}.steps-2.horizontal{grid-column-start:2;grid-column-end:4;grid-row:1/-1;}.steps-2.vertical{grid-row-start:2;grid-row-end:4;grid-column:1/-1;}.steps-3.horizontal{grid-column-start:2;grid-column-end:6;grid-row:1/-1;}.steps-3.vertical{grid-row-start:2;grid-row-end:6;grid-column:1/-1;}.steps-4.horizontal{grid-column-start:2;grid-column-end:8;grid-row:1/-1;}.steps-4.vertical{grid-row-start:2;grid-row-end:8;grid-column:1/-1;}.steps-5.horizontal{grid-column-start:2;grid-column-end:10;grid-row:1/-1;}.steps-5.vertical{grid-row-start:2;grid-row-end:10;grid-column:1/-1;}.steps-6.horizontal{grid-column-start:2;grid-column-end:12;grid-row:1/-1;}.steps-6.vertical{grid-row-start:2;grid-row-end:12;grid-column:1/-1;}.steps-7.horizontal{grid-column-start:2;grid-column-end:14;grid-row:1/-1;}.steps-7.vertical{grid-row-start:2;grid-row-end:14;grid-column:1/-1;}.steps-8.horizontal{grid-column-start:2;grid-column-end:16;grid-row:1/-1;}.steps-8.vertical{grid-row-start:2;grid-row-end:16;grid-column:1/-1;}.steps-9.horizontal{grid-column-start:2;grid-column-end:18;grid-row:1/-1;}.steps-9.vertical{grid-row-start:2;grid-row-end:18;grid-column:1/-1;}.steps-10.horizontal{grid-column-start:2;grid-column-end:20;grid-row:1/-1;}.steps-10.vertical{grid-row-start:2;grid-row-end:20;grid-column:1/-1;}.steps-11.horizontal{grid-column-start:2;grid-column-end:22;grid-row:1/-1;}.steps-11.vertical{grid-row-start:2;grid-row-end:22;grid-column:1/-1;}.steps-12.horizontal{grid-column-start:2;grid-column-end:24;grid-row:1/-1;}.steps-12.vertical{grid-row-start:2;grid-row-end:24;grid-column:1/-1;}.mud-stepper-progress-extended.horizontal.header-size-small{top:22px;height:2px;}.mud-stepper-progress-extended.horizontal.header-size-medium{top:30px;height:3px;}.mud-stepper-progress-extended.horizontal.header-size-large{top:38px;height:4px;}.mud-stepper-progress-extended.vertical.header-size-small{left:22px;}.mud-stepper-progress-extended.vertical.header-size-medium{left:30px;}.mud-stepper-progress-extended.vertical.header-size-large{left:38px;}.mobile.horizontal .mud-stepper-progress-extended{margin-inline-start:40px;}.mud-stepper-progress-extended{display:inline-grid;z-index:10;}.mud-stepper-progress-extended.vertical{transform:rotateX(180deg);}.mud-switch-m3{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;margin-top:4px;margin-bottom:4px;-webkit-tap-highlight-color:transparent;}.mud-switch-m3.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;}.mud-switch-m3.mud-readonly,.mud-switch-m3 .mud-readonly:hover{cursor:default;background-color:transparent !important;}.mud-switch-span-m3{width:52px;height:32px;display:inline-flex;z-index:0;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle;}.mud-switch-span-m3.mud-switch-child-content-m3{margin-inline-end:12px;}.mud-switch-span-m3 .mud-switch-track-m3{width:52px;height:32px;z-index:-1;transition:opacity 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;border-radius:30px;background-color:var(--mud-palette-background);border:2px solid;}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-default-m3{border-color:var(--mud-palette-text-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-primary-m3{border-color:var(--mud-palette-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-secondary-m3{border-color:var(--mud-palette-secondary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-tertiary-m3{border-color:var(--mud-palette-tertiary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-info-m3{border-color:var(--mud-palette-info);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-success-m3{border-color:var(--mud-palette-success);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-warning-m3{border-color:var(--mud-palette-warning);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-error-m3{border-color:var(--mud-palette-error);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-dark-m3{border-color:var(--mud-palette-dark);}.mud-switch-base-m3{padding-top:4px;padding-bottom:4px;padding-inline-start:8px;top:0;left:0;bottom:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(.4,0,.2,1) 0ms,transform 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 250ms cubic-bezier(.4,0,.2,1) 0ms,box-shadow 250ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-switch-base-m3.mud-switch-base-dense-m3{padding-inline-start:4px;}.mud-switch-base-m3.mud-checked{transform:translateX(20px);padding:4px;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3{opacity:1;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-default{background-color:var(--mud-palette-text-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-primary{background-color:var(--mud-palette-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-secondary{background-color:var(--mud-palette-secondary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-tertiary{background-color:var(--mud-palette-tertiary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-info{background-color:var(--mud-palette-info);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-success{background-color:var(--mud-palette-success);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-warning{background-color:var(--mud-palette-warning);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-error{background-color:var(--mud-palette-error);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-dark{background-color:var(--mud-palette-dark);}.mud-switch-base-m3.mud-checked .mud-switch-thumb-m3{width:24px;height:24px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;background-color:var(--mud-palette-background);}.mud-switch-base-m3:hover{background-color:var(--mud-palette-action-default-hover);}.mud-switch-base-m3.mud-switch-disabled{color:var(--mud-palette-gray-default) !important;}.mud-switch-base-m3.mud-switch-disabled+.mud-switch-track-m3{opacity:.12 !important;}.mud-switch-base-m3.mud-switch-disabled:hover,.mud-switch-base-m3.mud-switch-disabled:focus-visible{cursor:default;background-color:transparent !important;}.mud-switch-button-m3{display:flex;align-items:inherit;justify-content:inherit;}.mud-switch-button-m3 .mud-switch-input-m3{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute;}.mud-switch-button-m3 .mud-switch-thumb-m3{width:16px;height:16px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-default-m3{background-color:var(--mud-palette-text-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-primary-m3{background-color:var(--mud-palette-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-secondary-m3{background-color:var(--mud-palette-secondary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-tertiary-m3{background-color:var(--mud-palette-tertiary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-info-m3{background-color:var(--mud-palette-info);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-success-m3{background-color:var(--mud-palette-success);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-warning-m3{background-color:var(--mud-palette-warning);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-error-m3{background-color:var(--mud-palette-error);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-dark-m3{background-color:var(--mud-palette-dark);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-off-icon-m3{width:24px;height:24px;}.mud-wheel{overflow:hidden;min-width:0;flex-grow:1;user-select:none;-webkit-user-select:none;}.mud-wheel-item{width:100%;display:flex;align-content:center;justify-content:center;color:var(--mud-palette-text-secondary);border-radius:var(--mud-default-borderradius);}.mud-wheel-item.mud-wheel-item:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover);}.mud-wheel-item.wheel-item-closest{color:var(--mud-palette-text);}.mud-wheel-item.wheel-item-empty{min-height:32px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty-dense{min-height:24px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty:hover{background-color:unset;}.mud-wheel-item.mud-disabled{color:var(--mud-palette-text-disabled);}.middle-item{transform:scale(1.2);}.middle-item.mud-disabled{color:var(--mud-palette-text-disabled);}.mud-wheel-border{min-height:2px !important;}.mud-wheel-border.mud-wheel-border-default{background-color:var(--mud-palette-text-primary);}.mud-wheel-border.mud-wheel-border-primary{background-color:var(--mud-palette-primary);}.mud-wheel-border.wheel-border-gradient-primary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-primary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-secondary{background-color:var(--mud-palette-secondary);}.mud-wheel-border.wheel-border-gradient-secondary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-secondary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-tertiary{background-color:var(--mud-palette-tertiary);}.mud-wheel-border.wheel-border-gradient-tertiary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-tertiary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-info{background-color:var(--mud-palette-info);}.mud-wheel-border.wheel-border-gradient-info{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-info),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-success{background-color:var(--mud-palette-success);}.mud-wheel-border.wheel-border-gradient-success{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-success),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-warning{background-color:var(--mud-palette-warning);}.mud-wheel-border.wheel-border-gradient-warning{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-warning),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-error{background-color:var(--mud-palette-error);}.mud-wheel-border.wheel-border-gradient-error{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-error),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-dark{background-color:var(--mud-palette-dark);}.mud-wheel-border.wheel-border-gradient-dark{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-dark),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.wheel-border-gradient-default{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-text-primary),rgba(255,0,0,0));background-color:unset;}.mud-typographym3-display-large{font-family:var(--mud-typographym3-display-large-font);line-height:var(--mud-typographym3-display-large-line-height);font-size:var(--mud-typographym3-display-large-size);letter-spacing:var(--mud-typographym3-display-large-tracking);font-weight:var(--mud-typographym3-display-large-weight);}.mud-typographym3-display-medium{font-family:var(--mud-typographym3-display-medium-font);line-height:var(--mud-typographym3-display-medium-line-height);font-size:var(--mud-typographym3-display-medium-size);letter-spacing:var(--mud-typographym3-display-medium-tracking);font-weight:var(--mud-typographym3-display-medium-weight);}.mud-typographym3-display-small{font-family:var(--mud-typographym3-display-small-font);line-height:var(--mud-typographym3-display-small-line-height);font-size:var(--mud-typographym3-display-small-size);letter-spacing:var(--mud-typographym3-display-small-tracking);font-weight:var(--mud-typographym3-display-small-weight);}.mud-typographym3-headline-large{font-family:var(--mud-typographym3-headline-large-font);line-height:var(--mud-typographym3-headline-large-line-height);font-size:var(--mud-typographym3-headline-large-size);letter-spacing:var(--mud-typographym3-headline-large-tracking);font-weight:var(--mud-typographym3-headline-large-weight);}.mud-typographym3-headline-medium{font-family:var(--mud-typographym3-headline-medium-font);line-height:var(--mud-typographym3-headline-medium-line-height);font-size:var(--mud-typographym3-headline-medium-size);letter-spacing:var(--mud-typographym3-headline-medium-tracking);font-weight:var(--mud-typographym3-headline-medium-weight);}.mud-typographym3-headline-small{font-family:var(--mud-typographym3-headline-small-font);line-height:var(--mud-typographym3-headline-small-line-height);font-size:var(--mud-typographym3-headline-small-size);letter-spacing:var(--mud-typographym3-headline-small-tracking);font-weight:var(--mud-typographym3-headline-small-weight);}.mud-typographym3-title-large{font-family:var(--mud-typographym3-title-large-font);line-height:var(--mud-typographym3-title-large-line-height);font-size:var(--mud-typographym3-title-large-size);letter-spacing:var(--mud-typographym3-title-large-tracking);font-weight:var(--mud-typographym3-title-large-weight);}.mud-typographym3-title-medium{font-family:var(--mud-typographym3-title-medium-font);line-height:var(--mud-typographym3-title-medium-line-height);font-size:var(--mud-typographym3-title-medium-size);letter-spacing:var(--mud-typographym3-title-medium-tracking);font-weight:var(--mud-typographym3-title-medium-weight);}.mud-typographym3-title-small{font-family:var(--mud-typographym3-title-small-font);line-height:var(--mud-typographym3-title-small-line-height);font-size:var(--mud-typographym3-title-small-size);letter-spacing:var(--mud-typographym3-title-small-tracking);font-weight:var(--mud-typographym3-title-small-weight);}.mud-typographym3-body-large{font-family:var(--mud-typographym3-body-large-font);line-height:var(--mud-typographym3-body-large-line-height);font-size:var(--mud-typographym3-body-large-size);letter-spacing:var(--mud-typographym3-body-large-tracking);font-weight:var(--mud-typographym3-body-large-weight);}.mud-typographym3-body-medium{font-family:var(--mud-typographym3-body-medium-font);line-height:var(--mud-typographym3-body-medium-line-height);font-size:var(--mud-typographym3-body-medium-size);letter-spacing:var(--mud-typographym3-body-medium-tracking);font-weight:var(--mud-typographym3-body-medium-weight);}.mud-typographym3-body-small{font-family:var(--mud-typographym3-body-small-font);line-height:var(--mud-typographym3-body-small-line-height);font-size:var(--mud-typographym3-body-small-size);letter-spacing:var(--mud-typographym3-body-small-tracking);font-weight:var(--mud-typographym3-body-small-weight);}.mud-typographym3-label-large{font-family:var(--mud-typographym3-label-large-font);line-height:var(--mud-typographym3-label-large-line-height);font-size:var(--mud-typographym3-label-large-size);letter-spacing:var(--mud-typographym3-label-large-tracking);font-weight:var(--mud-typographym3-label-large-weight);}.mud-typographym3-label-medium{font-family:var(--mud-typographym3-label-medium-font);line-height:var(--mud-typographym3-label-medium-line-height);font-size:var(--mud-typographym3-label-medium-size);letter-spacing:var(--mud-typographym3-label-medium-tracking);font-weight:var(--mud-typographym3-label-medium-weight);}.mud-typographym3-label-small{font-family:var(--mud-typographym3-label-small-font);line-height:var(--mud-typographym3-label-small-line-height);font-size:var(--mud-typographym3-label-small-size);letter-spacing:var(--mud-typographym3-label-small-tracking);font-weight:var(--mud-typographym3-label-small-weight);}.mud-typography-display-inline{display:inline;}.mud-transfer-list-common{height:fill-available;height:-webkit-fill-available;}.mud-transfer-list-container{display:flex;flex-direction:column;flex:1 1 0%;}.mud-list-extended{margin:0;padding:0;position:relative;list-style:none;}.mud-list-extended.mud-list-padding-extended{padding-top:8px;padding-bottom:8px;}.mud-list-item-extended{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;}.mud-list-item-extended.mud-list-item-dense-extended{padding-top:4px;padding-bottom:4px;}.mud-list-item-extended.mud-list-item-disabled-extended{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-list-item-extended.mud-list-item-disabled-extended .mud-list-item-icon-extended{color:var(--mud-palette-action-disabled) !important;}.mud-list-item-clickable-extended{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-list-item-clickable-extended:hover:not(.mud-list-item-functional){background-color:var(--mud-palette-action-default-hover);}.mud-list-item-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-item-text-extended{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-list-item-text-inset-extended{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-list-item-icon-extended{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-list-item-multiselect-extended{max-height:32px;}.mud-list-item-multiselect-extended.mud-list-item-multiselect-checkbox-extended{padding-inline-end:16px;}.mud-list-subheader-extended{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-list-subheader-secondary-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-subheader-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-subheader-inset-extended{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-list-subheader-sticky-extended{top:-8px;z-index:1;position:sticky;}.mud-list-subheader-sticky-extended.mud-list-subheader-sticky-dense-extended{top:0;}.mud-list-item-hilight-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-hilight-selected{background-color:var(--mud-palette-lines-default) !important;}.mud-list-item-nested-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-avatar-extended{min-width:56px;flex-shrink:0;}.mud-nested-list-extended>.mud-list-item-extended{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset;}.mud-select-extended{display:flex;flex-grow:1;flex-basis:0;min-width:0;position:relative;height:fit-content;}.mud-select-extended.mud-autocomplete{display:block;}.mud-select-extended.mud-autocomplete .mud-select-input-extended{cursor:text;}.mud-select-extended.mud-autocomplete .mud-input-adornment-extended{cursor:pointer;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended input{padding-right:3.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended .mud-icon-button{display:none !important;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular--with-adornment{padding-right:3rem;}.mud-select-extended.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px;}.mud-select-extended .mud-select-input-extended{cursor:pointer;}.mud-select-extended .mud-select-input-extended .mud-select-extended-nowrap{white-space:nowrap;}.mud-select-extended .mud-select-input-extended .mud-input-slot{overflow:hidden;text-overflow:ellipsis;}.mud-select-extended .mud-select-input-extended .mud-input-adornment-end{margin-left:0;}.mud-select-extended .mud-select-input-extended:disabled{cursor:default;}.mud-select-extended .mud-disabled .mud-select-input{cursor:default;}.mud-select-extended>.mud-form-helpertext{margin-top:-21px;}.mud-select-all-extended{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px;}.mud-select-input-chip-extended{display:flex;flex-wrap:wrap;max-width:100%;row-gap:4px;}.mud-select-input-chip-extended.mud-select-extended-nowrap{flex-wrap:nowrap;overflow-x:hidden;}.mud-select-input-chip-extended .mud-chip{flex:0 0 auto;white-space:nowrap;}.mud-placeholder-extended{line-height:unset;}.mud-input-adornment-start-extended:not(.mud-input-text-extended){margin-inline-start:12px;}.mud-input-adornment-start-extended.mud-input-filled-extended{margin-top:16px;}.mud-input-adornment-end-extended:not(.mud-input-text-extended){margin-inline-end:12px;}.mud-no-start-adornment .mud-input-adornment-start-extended{margin-inline-start:0 !important;} \ No newline at end of file diff --git a/CodeBeam.MudBlazor.Extensions/Utilities/StepperLocalizedStrings.cs b/CodeBeam.MudBlazor.Extensions/Utilities/StepperLocalizedStrings.cs index 88e9f892..dc88e6dd 100644 --- a/CodeBeam.MudBlazor.Extensions/Utilities/StepperLocalizedStrings.cs +++ b/CodeBeam.MudBlazor.Extensions/Utilities/StepperLocalizedStrings.cs @@ -6,7 +6,8 @@ public class StepperLocalizedStrings { #pragma warning disable CS1591 - public string? Previous { get; set; } = "Previous"; + public string? Start { get; set; } = "Start"; + public string? Previous { get; set; } = "Previous"; public string? Next { get; set; } = "Next"; public string? Finish { get; set; } = "Finish"; public string? Skip { get; set; } = "Skip"; diff --git a/CodeBeam.MudBlazor.Extensions/wwwroot/MudExtensions.min.css b/CodeBeam.MudBlazor.Extensions/wwwroot/MudExtensions.min.css index 21f5abee..3369be87 100644 --- a/CodeBeam.MudBlazor.Extensions/wwwroot/MudExtensions.min.css +++ b/CodeBeam.MudBlazor.Extensions/wwwroot/MudExtensions.min.css @@ -1 +1 @@ -.mud-combobox{margin:0;padding:0;position:relative;list-style:none;}.mud-combobox.mud-combobox-padding{padding-top:8px;padding-bottom:8px;}.mud-combobox-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;min-height:48px;}.mud-combobox-item.mud-combobox-item-comfort{padding-top:4px;padding-bottom:4px;min-height:40px;}.mud-combobox-item.mud-combobox-item-slim{padding-top:2px;padding-bottom:2px;min-height:32px;}.mud-combobox-item.mud-combobox-item-superslim{padding-top:0;padding-bottom:0;min-height:24px;}.mud-combobox-item.mud-combobox-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-combobox-item.mud-combobox-item-disabled .mud-combobox-item-icon{color:var(--mud-palette-action-disabled) !important;}.mud-combobox-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-combobox-item-clickable:hover{background-color:var(--mud-palette-action-default-hover);}.mud-combobox-item-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-combobox-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-combobox-item-icon{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-combobox-item-multiselect{max-height:32px;}.mud-combobox-item-multiselect.mud-combobox-item-multiselect-checkbox{padding-inline-end:16px;}.mud-combobox-subheader{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-combobox-subheader-secondary-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-subheader-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-combobox-subheader-sticky{top:-8px;z-index:1;position:sticky;}.mud-combobox-subheader-sticky.mud-combobox-subheader-sticky-dense{top:0;}.mud-combobox-item-hilight{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-hilight{background-color:var(--mud-palette-lines-default) !important;}.mud-combobox-item-bordered{border-left:4px solid var(--mud-palette-lines-default);padding-inline-start:12px;}.mud-combobox-item-bordered-primary{border-left:4px solid var(--mud-palette-primary);padding-inline-start:12px;}.mud-combobox-item-bordered-secondary{border-left:4px solid var(--mud-palette-secondary);padding-inline-start:12px;}.mud-combobox-item-bordered-tertiary{border-left:4px solid var(--mud-palette-tertiary);padding-inline-start:12px;}.mud-combobox-item-bordered-info{border-left:4px solid var(--mud-palette-info);padding-inline-start:12px;}.mud-combobox-item-bordered-success{border-left:4px solid var(--mud-palette-success);padding-inline-start:12px;}.mud-combobox-item-bordered-warning{border-left:4px solid var(--mud-palette-warning);padding-inline-start:12px;}.mud-combobox-item-bordered-error{border-left:4px solid var(--mud-palette-error);padding-inline-start:12px;}.mud-combobox-item-bordered-dark{border-left:4px solid var(--mud-palette-dark);padding-inline-start:12px;}.mud-combobox-item-nested-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-avatar{min-width:56px;flex-shrink:0;}.mud-combobox-highlighter{background-color:transparent;font-weight:bold;text-decoration:underline;}.mud-gallery-selected-toolbox{left:0;right:0;height:56px;width:100%;background-color:rgba(0,0,0,.6);}.mud-gallery-selected-toolbox.gallery-toolbox-top{top:0;}.mud-gallery-selected-toolbox.gallery-toolbox-bottom{bottom:0;}.mud-page{display:grid;box-sizing:border-box;width:100%;}.mud-page.mud-page-height-full{min-height:100vh;}.mud-page.mud-page-height-full-without-appbar{min-height:calc(100vh - var(--mud-appbar-height));}.mud-page.mud-page-column-2{grid-template-columns:repeat(2,50%);}.mud-page.mud-page-column-3{grid-template-columns:repeat(3,33.33333%);}.mud-page.mud-page-column-4{grid-template-columns:repeat(4,25%);}.mud-page.mud-page-column-5{grid-template-columns:repeat(5,20%);}.mud-page.mud-page-column-6{grid-template-columns:repeat(6,16.66667%);}.mud-page.mud-page-column-7{grid-template-columns:repeat(7,14.28571%);}.mud-page.mud-page-column-8{grid-template-columns:repeat(8,12.5%);}.mud-page.mud-page-column-9{grid-template-columns:repeat(9,11.11111%);}.mud-page.mud-page-column-10{grid-template-columns:repeat(10,10%);}.mud-page.mud-page-column-11{grid-template-columns:repeat(11,9.09091%);}.mud-page.mud-page-column-12{grid-template-columns:repeat(12,8.33333%);}.mud-page.mud-page-row-2{grid-template-rows:repeat(2,50%);}.mud-page.mud-page-row-3{grid-template-rows:repeat(3,33.33333%);}.mud-page.mud-page-row-4{grid-template-rows:repeat(4,25%);}.mud-page.mud-page-row-5{grid-template-rows:repeat(5,20%);}.mud-page.mud-page-row-6{grid-template-rows:repeat(6,16.66667%);}.mud-page.mud-page-row-7{grid-template-rows:repeat(7,14.28571%);}.mud-page.mud-page-row-8{grid-template-rows:repeat(8,12.5%);}.mud-page.mud-page-row-9{grid-template-rows:repeat(9,11.11111%);}.mud-page.mud-page-row-10{grid-template-rows:repeat(10,10%);}.mud-page.mud-page-row-11{grid-template-rows:repeat(11,9.09091%);}.mud-page.mud-page-row-12{grid-template-rows:repeat(12,8.33333%);}.mud-section{display:inline-grid;overflow:auto;}.mud-section.mud-section-col-start-1{grid-column-start:1;}.mud-section.mud-section-col-start-2{grid-column-start:2;}.mud-section.mud-section-col-start-3{grid-column-start:3;}.mud-section.mud-section-col-start-4{grid-column-start:4;}.mud-section.mud-section-col-start-5{grid-column-start:5;}.mud-section.mud-section-col-start-6{grid-column-start:6;}.mud-section.mud-section-col-start-7{grid-column-start:7;}.mud-section.mud-section-col-start-8{grid-column-start:8;}.mud-section.mud-section-col-start-9{grid-column-start:9;}.mud-section.mud-section-col-start-10{grid-column-start:10;}.mud-section.mud-section-col-start-11{grid-column-start:11;}.mud-section.mud-section-col-start-12{grid-column-start:12;}.mud-section.mud-section-col-end-1{grid-column-end:1;}.mud-section.mud-section-col-end-2{grid-column-end:2;}.mud-section.mud-section-col-end-3{grid-column-end:3;}.mud-section.mud-section-col-end-4{grid-column-end:4;}.mud-section.mud-section-col-end-5{grid-column-end:5;}.mud-section.mud-section-col-end-6{grid-column-end:6;}.mud-section.mud-section-col-end-7{grid-column-end:7;}.mud-section.mud-section-col-end-8{grid-column-end:8;}.mud-section.mud-section-col-end-9{grid-column-end:9;}.mud-section.mud-section-col-end-10{grid-column-end:10;}.mud-section.mud-section-col-end-11{grid-column-end:11;}.mud-section.mud-section-col-end-12{grid-column-end:12;}.mud-section.mud-section-col-end-13{grid-column-end:13;}.mud-section.mud-section-row-start-1{grid-row-start:1;}.mud-section.mud-section-row-start-2{grid-row-start:2;}.mud-section.mud-section-row-start-3{grid-row-start:3;}.mud-section.mud-section-row-start-4{grid-row-start:4;}.mud-section.mud-section-row-start-5{grid-row-start:5;}.mud-section.mud-section-row-start-6{grid-row-start:6;}.mud-section.mud-section-row-start-7{grid-row-start:7;}.mud-section.mud-section-row-start-8{grid-row-start:8;}.mud-section.mud-section-row-start-9{grid-row-start:9;}.mud-section.mud-section-row-start-10{grid-row-start:10;}.mud-section.mud-section-row-start-11{grid-row-start:11;}.mud-section.mud-section-row-start-12{grid-row-start:12;}.mud-section.mud-section-row-end-1{grid-row-end:1;}.mud-section.mud-section-row-end-2{grid-row-end:2;}.mud-section.mud-section-row-end-3{grid-row-end:3;}.mud-section.mud-section-row-end-4{grid-row-end:4;}.mud-section.mud-section-row-end-5{grid-row-end:5;}.mud-section.mud-section-row-end-6{grid-row-end:6;}.mud-section.mud-section-row-end-7{grid-row-end:7;}.mud-section.mud-section-row-end-8{grid-row-end:8;}.mud-section.mud-section-row-end-9{grid-row-end:9;}.mud-section.mud-section-row-end-10{grid-row-end:10;}.mud-section.mud-section-row-end-11{grid-row-end:11;}.mud-section.mud-section-row-end-12{grid-row-end:12;}.mud-section.mud-section-row-end-13{grid-row-end:13;}.mud-popup{z-index:2000;overflow:auto;background-color:var(--mud-palette-background);min-height:var(--mud-appbar-height);}.mud-popup.mud-popup-center{height:300px;left:50%;top:50%;transform:translate(-50%,-50%);width:320px;aspect-ratio:1/1;}.mud-range-container{align-items:center;margin:20px 0;}.mud-range-container input::-webkit-slider-thumb{pointer-events:all;position:relative;z-index:1;}.mud-range-container input::-moz-range-thumb{pointer-events:all;position:relative;z-index:10;}.mud-range-container input::-moz-range-track{position:relative;z-index:-1;}.mud-range-container input:last-of-type::-moz-range-track{-moz-appearance:none;}.mud-range-container .mud-slider-input:last-of-type{position:absolute;pointer-events:none;top:0;}.mud-range-container input[type=range]::-webkit-slider-thumb{pointer-events:all;}.mud-range-display{text-align:center;}.mud-signature-pad-container{touch-action:none;}.mud-splitter{display:grid;position:relative;width:100%;}.mud-splitter-content{overflow:auto;}.mud-splitter-thumb ::-webkit-slider-runnable-track{visibility:hidden !important;height:100% !important;}.mud-splitter-thumb ::-moz-range-track{visibility:hidden !important;height:100% !important;}.mud-splitter-track{position:absolute;top:50%;transform:translateY(-50%);height:100%;}.mud-splitter-track.mud-slider{visibility:hidden !important;}.mud-splitter-track.mud-slider .mud-slider-container{height:100% !important;}.mud-splitter-track.mud-slider .mud-slider-input{top:50%;}.mud-splitter-thumb ::-webkit-slider-thumb{visibility:visible !important;appearance:none !important;-webkit-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-webkit-slider-thumb{cursor:default !important;}.mud-splitter-thumb ::-moz-range-thumb{visibility:visible !important;appearance:none !important;-moz-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-moz-range-thumb{cursor:default !important;}.mud-stepper-header{min-height:62px;border-radius:var(--mud-default-borderradius);}.mud-stepper-header.mud-stepper-header-non-linear:hover{background-color:var(--mud-palette-action-default-hover);}.mud-stepper-badge{z-index:21;}.mud-switch-m3{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;margin-top:4px;margin-bottom:4px;-webkit-tap-highlight-color:transparent;}.mud-switch-m3.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;}.mud-switch-m3.mud-readonly,.mud-switch-m3 .mud-readonly:hover{cursor:default;background-color:transparent !important;}.mud-switch-span-m3{width:52px;height:32px;display:inline-flex;z-index:0;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle;}.mud-switch-span-m3.mud-switch-child-content-m3{margin-inline-end:12px;}.mud-switch-span-m3 .mud-switch-track-m3{width:52px;height:32px;z-index:-1;transition:opacity 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;border-radius:30px;background-color:var(--mud-palette-background);border:2px solid;}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-default-m3{border-color:var(--mud-palette-text-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-primary-m3{border-color:var(--mud-palette-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-secondary-m3{border-color:var(--mud-palette-secondary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-tertiary-m3{border-color:var(--mud-palette-tertiary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-info-m3{border-color:var(--mud-palette-info);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-success-m3{border-color:var(--mud-palette-success);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-warning-m3{border-color:var(--mud-palette-warning);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-error-m3{border-color:var(--mud-palette-error);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-dark-m3{border-color:var(--mud-palette-dark);}.mud-switch-base-m3{padding-top:4px;padding-bottom:4px;padding-inline-start:8px;top:0;left:0;bottom:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(.4,0,.2,1) 0ms,transform 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 250ms cubic-bezier(.4,0,.2,1) 0ms,box-shadow 250ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-switch-base-m3.mud-switch-base-dense-m3{padding-inline-start:4px;}.mud-switch-base-m3.mud-checked{transform:translateX(20px);padding:4px;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3{opacity:1;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-default{background-color:var(--mud-palette-text-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-primary{background-color:var(--mud-palette-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-secondary{background-color:var(--mud-palette-secondary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-tertiary{background-color:var(--mud-palette-tertiary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-info{background-color:var(--mud-palette-info);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-success{background-color:var(--mud-palette-success);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-warning{background-color:var(--mud-palette-warning);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-error{background-color:var(--mud-palette-error);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-dark{background-color:var(--mud-palette-dark);}.mud-switch-base-m3.mud-checked .mud-switch-thumb-m3{width:24px;height:24px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;background-color:var(--mud-palette-background);}.mud-switch-base-m3:hover{background-color:var(--mud-palette-action-default-hover);}.mud-switch-base-m3.mud-switch-disabled{color:var(--mud-palette-gray-default) !important;}.mud-switch-base-m3.mud-switch-disabled+.mud-switch-track-m3{opacity:.12 !important;}.mud-switch-base-m3.mud-switch-disabled:hover,.mud-switch-base-m3.mud-switch-disabled:focus-visible{cursor:default;background-color:transparent !important;}.mud-switch-button-m3{display:flex;align-items:inherit;justify-content:inherit;}.mud-switch-button-m3 .mud-switch-input-m3{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute;}.mud-switch-button-m3 .mud-switch-thumb-m3{width:16px;height:16px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-default-m3{background-color:var(--mud-palette-text-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-primary-m3{background-color:var(--mud-palette-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-secondary-m3{background-color:var(--mud-palette-secondary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-tertiary-m3{background-color:var(--mud-palette-tertiary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-info-m3{background-color:var(--mud-palette-info);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-success-m3{background-color:var(--mud-palette-success);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-warning-m3{background-color:var(--mud-palette-warning);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-error-m3{background-color:var(--mud-palette-error);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-dark-m3{background-color:var(--mud-palette-dark);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-off-icon-m3{width:24px;height:24px;}.mud-wheel{overflow:hidden;min-width:0;flex-grow:1;user-select:none;-webkit-user-select:none;}.mud-wheel-item{width:100%;display:flex;align-content:center;justify-content:center;color:var(--mud-palette-text-secondary);border-radius:var(--mud-default-borderradius);}.mud-wheel-item.mud-wheel-item:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover);}.mud-wheel-item.wheel-item-closest{color:var(--mud-palette-text);}.mud-wheel-item.wheel-item-empty{min-height:32px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty-dense{min-height:24px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty:hover{background-color:unset;}.mud-wheel-item.mud-disabled{color:var(--mud-palette-text-disabled);}.middle-item{transform:scale(1.2);}.middle-item.mud-disabled{color:var(--mud-palette-text-disabled);}.mud-wheel-border{min-height:2px !important;}.mud-wheel-border.mud-wheel-border-default{background-color:var(--mud-palette-text-primary);}.mud-wheel-border.mud-wheel-border-primary{background-color:var(--mud-palette-primary);}.mud-wheel-border.wheel-border-gradient-primary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-primary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-secondary{background-color:var(--mud-palette-secondary);}.mud-wheel-border.wheel-border-gradient-secondary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-secondary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-tertiary{background-color:var(--mud-palette-tertiary);}.mud-wheel-border.wheel-border-gradient-tertiary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-tertiary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-info{background-color:var(--mud-palette-info);}.mud-wheel-border.wheel-border-gradient-info{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-info),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-success{background-color:var(--mud-palette-success);}.mud-wheel-border.wheel-border-gradient-success{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-success),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-warning{background-color:var(--mud-palette-warning);}.mud-wheel-border.wheel-border-gradient-warning{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-warning),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-error{background-color:var(--mud-palette-error);}.mud-wheel-border.wheel-border-gradient-error{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-error),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-dark{background-color:var(--mud-palette-dark);}.mud-wheel-border.wheel-border-gradient-dark{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-dark),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.wheel-border-gradient-default{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-text-primary),rgba(255,0,0,0));background-color:unset;}.mud-typographym3-display-large{font-family:var(--mud-typographym3-display-large-font);line-height:var(--mud-typographym3-display-large-line-height);font-size:var(--mud-typographym3-display-large-size);letter-spacing:var(--mud-typographym3-display-large-tracking);font-weight:var(--mud-typographym3-display-large-weight);}.mud-typographym3-display-medium{font-family:var(--mud-typographym3-display-medium-font);line-height:var(--mud-typographym3-display-medium-line-height);font-size:var(--mud-typographym3-display-medium-size);letter-spacing:var(--mud-typographym3-display-medium-tracking);font-weight:var(--mud-typographym3-display-medium-weight);}.mud-typographym3-display-small{font-family:var(--mud-typographym3-display-small-font);line-height:var(--mud-typographym3-display-small-line-height);font-size:var(--mud-typographym3-display-small-size);letter-spacing:var(--mud-typographym3-display-small-tracking);font-weight:var(--mud-typographym3-display-small-weight);}.mud-typographym3-headline-large{font-family:var(--mud-typographym3-headline-large-font);line-height:var(--mud-typographym3-headline-large-line-height);font-size:var(--mud-typographym3-headline-large-size);letter-spacing:var(--mud-typographym3-headline-large-tracking);font-weight:var(--mud-typographym3-headline-large-weight);}.mud-typographym3-headline-medium{font-family:var(--mud-typographym3-headline-medium-font);line-height:var(--mud-typographym3-headline-medium-line-height);font-size:var(--mud-typographym3-headline-medium-size);letter-spacing:var(--mud-typographym3-headline-medium-tracking);font-weight:var(--mud-typographym3-headline-medium-weight);}.mud-typographym3-headline-small{font-family:var(--mud-typographym3-headline-small-font);line-height:var(--mud-typographym3-headline-small-line-height);font-size:var(--mud-typographym3-headline-small-size);letter-spacing:var(--mud-typographym3-headline-small-tracking);font-weight:var(--mud-typographym3-headline-small-weight);}.mud-typographym3-title-large{font-family:var(--mud-typographym3-title-large-font);line-height:var(--mud-typographym3-title-large-line-height);font-size:var(--mud-typographym3-title-large-size);letter-spacing:var(--mud-typographym3-title-large-tracking);font-weight:var(--mud-typographym3-title-large-weight);}.mud-typographym3-title-medium{font-family:var(--mud-typographym3-title-medium-font);line-height:var(--mud-typographym3-title-medium-line-height);font-size:var(--mud-typographym3-title-medium-size);letter-spacing:var(--mud-typographym3-title-medium-tracking);font-weight:var(--mud-typographym3-title-medium-weight);}.mud-typographym3-title-small{font-family:var(--mud-typographym3-title-small-font);line-height:var(--mud-typographym3-title-small-line-height);font-size:var(--mud-typographym3-title-small-size);letter-spacing:var(--mud-typographym3-title-small-tracking);font-weight:var(--mud-typographym3-title-small-weight);}.mud-typographym3-body-large{font-family:var(--mud-typographym3-body-large-font);line-height:var(--mud-typographym3-body-large-line-height);font-size:var(--mud-typographym3-body-large-size);letter-spacing:var(--mud-typographym3-body-large-tracking);font-weight:var(--mud-typographym3-body-large-weight);}.mud-typographym3-body-medium{font-family:var(--mud-typographym3-body-medium-font);line-height:var(--mud-typographym3-body-medium-line-height);font-size:var(--mud-typographym3-body-medium-size);letter-spacing:var(--mud-typographym3-body-medium-tracking);font-weight:var(--mud-typographym3-body-medium-weight);}.mud-typographym3-body-small{font-family:var(--mud-typographym3-body-small-font);line-height:var(--mud-typographym3-body-small-line-height);font-size:var(--mud-typographym3-body-small-size);letter-spacing:var(--mud-typographym3-body-small-tracking);font-weight:var(--mud-typographym3-body-small-weight);}.mud-typographym3-label-large{font-family:var(--mud-typographym3-label-large-font);line-height:var(--mud-typographym3-label-large-line-height);font-size:var(--mud-typographym3-label-large-size);letter-spacing:var(--mud-typographym3-label-large-tracking);font-weight:var(--mud-typographym3-label-large-weight);}.mud-typographym3-label-medium{font-family:var(--mud-typographym3-label-medium-font);line-height:var(--mud-typographym3-label-medium-line-height);font-size:var(--mud-typographym3-label-medium-size);letter-spacing:var(--mud-typographym3-label-medium-tracking);font-weight:var(--mud-typographym3-label-medium-weight);}.mud-typographym3-label-small{font-family:var(--mud-typographym3-label-small-font);line-height:var(--mud-typographym3-label-small-line-height);font-size:var(--mud-typographym3-label-small-size);letter-spacing:var(--mud-typographym3-label-small-tracking);font-weight:var(--mud-typographym3-label-small-weight);}.mud-typography-display-inline{display:inline;}.mud-transfer-list-common{height:fill-available;height:-webkit-fill-available;}.mud-transfer-list-container{display:flex;flex-direction:column;flex:1 1 0%;}.mud-list-extended{margin:0;padding:0;position:relative;list-style:none;}.mud-list-extended.mud-list-padding-extended{padding-top:8px;padding-bottom:8px;}.mud-list-item-extended{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;}.mud-list-item-extended.mud-list-item-dense-extended{padding-top:4px;padding-bottom:4px;}.mud-list-item-extended.mud-list-item-disabled-extended{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-list-item-extended.mud-list-item-disabled-extended .mud-list-item-icon-extended{color:var(--mud-palette-action-disabled) !important;}.mud-list-item-clickable-extended{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-list-item-clickable-extended:hover:not(.mud-list-item-functional){background-color:var(--mud-palette-action-default-hover);}.mud-list-item-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-item-text-extended{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-list-item-text-inset-extended{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-list-item-icon-extended{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-list-item-multiselect-extended{max-height:32px;}.mud-list-item-multiselect-extended.mud-list-item-multiselect-checkbox-extended{padding-inline-end:16px;}.mud-list-subheader-extended{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-list-subheader-secondary-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-subheader-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-subheader-inset-extended{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-list-subheader-sticky-extended{top:-8px;z-index:1;position:sticky;}.mud-list-subheader-sticky-extended.mud-list-subheader-sticky-dense-extended{top:0;}.mud-list-item-hilight-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-hilight-selected{background-color:var(--mud-palette-lines-default) !important;}.mud-list-item-nested-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-avatar-extended{min-width:56px;flex-shrink:0;}.mud-nested-list-extended>.mud-list-item-extended{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset;}.mud-select-extended{display:flex;flex-grow:1;flex-basis:0;min-width:0;position:relative;height:fit-content;}.mud-select-extended.mud-autocomplete{display:block;}.mud-select-extended.mud-autocomplete .mud-select-input-extended{cursor:text;}.mud-select-extended.mud-autocomplete .mud-input-adornment-extended{cursor:pointer;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended input{padding-right:3.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended .mud-icon-button{display:none !important;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular--with-adornment{padding-right:3rem;}.mud-select-extended.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px;}.mud-select-extended .mud-select-input-extended{cursor:pointer;}.mud-select-extended .mud-select-input-extended .mud-select-extended-nowrap{white-space:nowrap;}.mud-select-extended .mud-select-input-extended .mud-input-slot{overflow:hidden;text-overflow:ellipsis;}.mud-select-extended .mud-select-input-extended .mud-input-adornment-end{margin-left:0;}.mud-select-extended .mud-select-input-extended:disabled{cursor:default;}.mud-select-extended .mud-disabled .mud-select-input{cursor:default;}.mud-select-extended>.mud-form-helpertext{margin-top:-21px;}.mud-select-all-extended{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px;}.mud-select-input-chip-extended{display:flex;flex-wrap:wrap;max-width:100%;row-gap:4px;}.mud-select-input-chip-extended.mud-select-extended-nowrap{flex-wrap:nowrap;overflow-x:hidden;}.mud-select-input-chip-extended .mud-chip{flex:0 0 auto;white-space:nowrap;}.mud-placeholder-extended{line-height:unset;}.mud-input-adornment-start-extended:not(.mud-input-text-extended){margin-inline-start:12px;}.mud-input-adornment-start-extended.mud-input-filled-extended{margin-top:16px;}.mud-input-adornment-end-extended:not(.mud-input-text-extended){margin-inline-end:12px;}.mud-no-start-adornment .mud-input-adornment-start-extended{margin-inline-start:0 !important;} \ No newline at end of file +.mud-combobox{margin:0;padding:0;position:relative;list-style:none;}.mud-combobox.mud-combobox-padding{padding-top:8px;padding-bottom:8px;}.mud-combobox-item{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;min-height:48px;}.mud-combobox-item.mud-combobox-item-comfort{padding-top:4px;padding-bottom:4px;min-height:40px;}.mud-combobox-item.mud-combobox-item-slim{padding-top:2px;padding-bottom:2px;min-height:32px;}.mud-combobox-item.mud-combobox-item-superslim{padding-top:0;padding-bottom:0;min-height:24px;}.mud-combobox-item.mud-combobox-item-disabled{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-combobox-item.mud-combobox-item-disabled .mud-combobox-item-icon{color:var(--mud-palette-action-disabled) !important;}.mud-combobox-item-clickable{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-combobox-item-clickable:hover{background-color:var(--mud-palette-action-default-hover);}.mud-combobox-item-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-item-text{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-combobox-item-text-inset{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-combobox-item-icon{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-combobox-item-multiselect{max-height:32px;}.mud-combobox-item-multiselect.mud-combobox-item-multiselect-checkbox{padding-inline-end:16px;}.mud-combobox-subheader{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-combobox-subheader-secondary-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-subheader-gutters{padding-left:16px;padding-right:16px;}.mud-combobox-subheader-inset{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-combobox-subheader-sticky{top:-8px;z-index:1;position:sticky;}.mud-combobox-subheader-sticky.mud-combobox-subheader-sticky-dense{top:0;}.mud-combobox-item-hilight{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-hilight{background-color:var(--mud-palette-lines-default) !important;}.mud-combobox-item-bordered{border-left:4px solid var(--mud-palette-lines-default);padding-inline-start:12px;}.mud-combobox-item-bordered-primary{border-left:4px solid var(--mud-palette-primary);padding-inline-start:12px;}.mud-combobox-item-bordered-secondary{border-left:4px solid var(--mud-palette-secondary);padding-inline-start:12px;}.mud-combobox-item-bordered-tertiary{border-left:4px solid var(--mud-palette-tertiary);padding-inline-start:12px;}.mud-combobox-item-bordered-info{border-left:4px solid var(--mud-palette-info);padding-inline-start:12px;}.mud-combobox-item-bordered-success{border-left:4px solid var(--mud-palette-success);padding-inline-start:12px;}.mud-combobox-item-bordered-warning{border-left:4px solid var(--mud-palette-warning);padding-inline-start:12px;}.mud-combobox-item-bordered-error{border-left:4px solid var(--mud-palette-error);padding-inline-start:12px;}.mud-combobox-item-bordered-dark{border-left:4px solid var(--mud-palette-dark);padding-inline-start:12px;}.mud-combobox-item-nested-background{background-color:var(--mud-palette-background-gray);}.mud-combobox-item-avatar{min-width:56px;flex-shrink:0;}.mud-combobox-highlighter{background-color:transparent;font-weight:bold;text-decoration:underline;}.mud-gallery-selected-toolbox{left:0;right:0;height:56px;width:100%;background-color:rgba(0,0,0,.6);}.mud-gallery-selected-toolbox.gallery-toolbox-top{top:0;}.mud-gallery-selected-toolbox.gallery-toolbox-bottom{bottom:0;}.mud-page{display:grid;box-sizing:border-box;width:100%;}.mud-page.mud-page-height-full{min-height:100vh;}.mud-page.mud-page-height-full-without-appbar{min-height:calc(100vh - var(--mud-appbar-height));}.mud-page.mud-page-column-2{grid-template-columns:repeat(2,50%);}.mud-page.mud-page-column-3{grid-template-columns:repeat(3,33.33333%);}.mud-page.mud-page-column-4{grid-template-columns:repeat(4,25%);}.mud-page.mud-page-column-5{grid-template-columns:repeat(5,20%);}.mud-page.mud-page-column-6{grid-template-columns:repeat(6,16.66667%);}.mud-page.mud-page-column-7{grid-template-columns:repeat(7,14.28571%);}.mud-page.mud-page-column-8{grid-template-columns:repeat(8,12.5%);}.mud-page.mud-page-column-9{grid-template-columns:repeat(9,11.11111%);}.mud-page.mud-page-column-10{grid-template-columns:repeat(10,10%);}.mud-page.mud-page-column-11{grid-template-columns:repeat(11,9.09091%);}.mud-page.mud-page-column-12{grid-template-columns:repeat(12,8.33333%);}.mud-page.mud-page-row-2{grid-template-rows:repeat(2,50%);}.mud-page.mud-page-row-3{grid-template-rows:repeat(3,33.33333%);}.mud-page.mud-page-row-4{grid-template-rows:repeat(4,25%);}.mud-page.mud-page-row-5{grid-template-rows:repeat(5,20%);}.mud-page.mud-page-row-6{grid-template-rows:repeat(6,16.66667%);}.mud-page.mud-page-row-7{grid-template-rows:repeat(7,14.28571%);}.mud-page.mud-page-row-8{grid-template-rows:repeat(8,12.5%);}.mud-page.mud-page-row-9{grid-template-rows:repeat(9,11.11111%);}.mud-page.mud-page-row-10{grid-template-rows:repeat(10,10%);}.mud-page.mud-page-row-11{grid-template-rows:repeat(11,9.09091%);}.mud-page.mud-page-row-12{grid-template-rows:repeat(12,8.33333%);}.mud-section{display:inline-grid;overflow:auto;}.mud-section.mud-section-col-start-1{grid-column-start:1;}.mud-section.mud-section-col-start-2{grid-column-start:2;}.mud-section.mud-section-col-start-3{grid-column-start:3;}.mud-section.mud-section-col-start-4{grid-column-start:4;}.mud-section.mud-section-col-start-5{grid-column-start:5;}.mud-section.mud-section-col-start-6{grid-column-start:6;}.mud-section.mud-section-col-start-7{grid-column-start:7;}.mud-section.mud-section-col-start-8{grid-column-start:8;}.mud-section.mud-section-col-start-9{grid-column-start:9;}.mud-section.mud-section-col-start-10{grid-column-start:10;}.mud-section.mud-section-col-start-11{grid-column-start:11;}.mud-section.mud-section-col-start-12{grid-column-start:12;}.mud-section.mud-section-col-end-1{grid-column-end:1;}.mud-section.mud-section-col-end-2{grid-column-end:2;}.mud-section.mud-section-col-end-3{grid-column-end:3;}.mud-section.mud-section-col-end-4{grid-column-end:4;}.mud-section.mud-section-col-end-5{grid-column-end:5;}.mud-section.mud-section-col-end-6{grid-column-end:6;}.mud-section.mud-section-col-end-7{grid-column-end:7;}.mud-section.mud-section-col-end-8{grid-column-end:8;}.mud-section.mud-section-col-end-9{grid-column-end:9;}.mud-section.mud-section-col-end-10{grid-column-end:10;}.mud-section.mud-section-col-end-11{grid-column-end:11;}.mud-section.mud-section-col-end-12{grid-column-end:12;}.mud-section.mud-section-col-end-13{grid-column-end:13;}.mud-section.mud-section-row-start-1{grid-row-start:1;}.mud-section.mud-section-row-start-2{grid-row-start:2;}.mud-section.mud-section-row-start-3{grid-row-start:3;}.mud-section.mud-section-row-start-4{grid-row-start:4;}.mud-section.mud-section-row-start-5{grid-row-start:5;}.mud-section.mud-section-row-start-6{grid-row-start:6;}.mud-section.mud-section-row-start-7{grid-row-start:7;}.mud-section.mud-section-row-start-8{grid-row-start:8;}.mud-section.mud-section-row-start-9{grid-row-start:9;}.mud-section.mud-section-row-start-10{grid-row-start:10;}.mud-section.mud-section-row-start-11{grid-row-start:11;}.mud-section.mud-section-row-start-12{grid-row-start:12;}.mud-section.mud-section-row-end-1{grid-row-end:1;}.mud-section.mud-section-row-end-2{grid-row-end:2;}.mud-section.mud-section-row-end-3{grid-row-end:3;}.mud-section.mud-section-row-end-4{grid-row-end:4;}.mud-section.mud-section-row-end-5{grid-row-end:5;}.mud-section.mud-section-row-end-6{grid-row-end:6;}.mud-section.mud-section-row-end-7{grid-row-end:7;}.mud-section.mud-section-row-end-8{grid-row-end:8;}.mud-section.mud-section-row-end-9{grid-row-end:9;}.mud-section.mud-section-row-end-10{grid-row-end:10;}.mud-section.mud-section-row-end-11{grid-row-end:11;}.mud-section.mud-section-row-end-12{grid-row-end:12;}.mud-section.mud-section-row-end-13{grid-row-end:13;}.mud-popup{z-index:2000;overflow:auto;background-color:var(--mud-palette-background);min-height:var(--mud-appbar-height);}.mud-popup.mud-popup-center{height:300px;left:50%;top:50%;transform:translate(-50%,-50%);width:320px;aspect-ratio:1/1;}.mud-range-container{align-items:center;margin:20px 0;}.mud-range-container input::-webkit-slider-thumb{pointer-events:all;position:relative;z-index:1;}.mud-range-container input::-moz-range-thumb{pointer-events:all;position:relative;z-index:10;}.mud-range-container input::-moz-range-track{position:relative;z-index:-1;}.mud-range-container input:last-of-type::-moz-range-track{-moz-appearance:none;}.mud-range-container .mud-slider-input:last-of-type{position:absolute;pointer-events:none;top:0;}.mud-range-container input[type=range]::-webkit-slider-thumb{pointer-events:all;}.mud-range-display{text-align:center;}.mud-signature-pad-container{touch-action:none;}.mud-splitter{display:grid;position:relative;width:100%;}.mud-splitter-content{overflow:auto;}.mud-splitter-thumb ::-webkit-slider-runnable-track{visibility:hidden !important;height:100% !important;}.mud-splitter-thumb ::-moz-range-track{visibility:hidden !important;height:100% !important;}.mud-splitter-track{position:absolute;top:50%;transform:translateY(-50%);height:100%;}.mud-splitter-track.mud-slider{visibility:hidden !important;}.mud-splitter-track.mud-slider .mud-slider-container{height:100% !important;}.mud-splitter-track.mud-slider .mud-slider-input{top:50%;}.mud-splitter-thumb ::-webkit-slider-thumb{visibility:visible !important;appearance:none !important;-webkit-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-webkit-slider-thumb{cursor:default !important;}.mud-splitter-thumb ::-moz-range-thumb{visibility:visible !important;appearance:none !important;-moz-appearance:none !important;top:50% !important;transform:translateY(-50%) !important;height:100% !important;width:8px !important;border:none !important;border-radius:0 !important;cursor:ew-resize !important;}.mud-splitter-thumb-disabled ::-moz-range-thumb{cursor:default !important;}.mud-stepper-header-extended{min-height:62px;border-radius:var(--mud-default-borderradius);}.mud-stepper-header-extended.mud-stepper-header-non-linear-extended:hover{background-color:var(--mud-palette-action-default-hover);}.mud-stepper-badge-extended{z-index:21;}.mud-stepper-avatar-extended{z-index:20;}.mud-stepper-avatar-bg-extended{background-color:var(--mud-palette-background);}.mud-stepper-sub-inner-header-extended{grid-column-start:1;grid-column-end:-1;flex-direction:row;grid-row:1;list-style:none;display:flex;}.mud-stepper-sub-inner-header-vertical-extended{grid-row-start:1;grid-row-end:-1;flex-direction:column;grid-column:1;list-style:none;display:flex;}.mud-stepper-text-mobile-extended{grid-row:1;margin-top:22px;}.mud-stepper-text-mobile-vertical-extended{grid-column:1;margin-inline-start:22px;}.mud-stepper-step-1.horizontal{width:calc(100%/1);}.mud-stepper-step-1.vertical{height:calc(100%/1);}.mud-stepper-step-2.horizontal{width:calc(100%/2);}.mud-stepper-step-2.vertical{height:calc(100%/2);}.mud-stepper-step-3.horizontal{width:calc(100%/3);}.mud-stepper-step-3.vertical{height:calc(100%/3);}.mud-stepper-step-4.horizontal{width:calc(100%/4);}.mud-stepper-step-4.vertical{height:calc(100%/4);}.mud-stepper-step-5.horizontal{width:calc(100%/5);}.mud-stepper-step-5.vertical{height:calc(100%/5);}.mud-stepper-step-6.horizontal{width:calc(100%/6);}.mud-stepper-step-6.vertical{height:calc(100%/6);}.mud-stepper-step-7.horizontal{width:calc(100%/7);}.mud-stepper-step-7.vertical{height:calc(100%/7);}.mud-stepper-step-8.horizontal{width:calc(100%/8);}.mud-stepper-step-8.vertical{height:calc(100%/8);}.mud-stepper-step-9.horizontal{width:calc(100%/9);}.mud-stepper-step-9.vertical{height:calc(100%/9);}.mud-stepper-step-10.horizontal{width:calc(100%/10);}.mud-stepper-step-10.vertical{height:calc(100%/10);}.mud-stepper-step-11.horizontal{width:calc(100%/11);}.mud-stepper-step-11.vertical{height:calc(100%/11);}.mud-stepper-step-12.horizontal{width:calc(100%/12);}.mud-stepper-step-12.vertical{height:calc(100%/12);}.mud-stepper-grid-1.horizontal{display:grid;grid-template-columns:repeat(2,1fr);}.mud-stepper-grid-1.vertical{display:grid;grid-template-rows:repeat(2,1fr);}.mud-stepper-grid-2.horizontal{display:grid;grid-template-columns:repeat(4,1fr);}.mud-stepper-grid-2.vertical{display:grid;grid-template-rows:repeat(4,1fr);}.mud-stepper-grid-3.horizontal{display:grid;grid-template-columns:repeat(6,1fr);}.mud-stepper-grid-3.vertical{display:grid;grid-template-rows:repeat(6,1fr);}.mud-stepper-grid-4.horizontal{display:grid;grid-template-columns:repeat(8,1fr);}.mud-stepper-grid-4.vertical{display:grid;grid-template-rows:repeat(8,1fr);}.mud-stepper-grid-5.horizontal{display:grid;grid-template-columns:repeat(10,1fr);}.mud-stepper-grid-5.vertical{display:grid;grid-template-rows:repeat(10,1fr);}.mud-stepper-grid-6.horizontal{display:grid;grid-template-columns:repeat(12,1fr);}.mud-stepper-grid-6.vertical{display:grid;grid-template-rows:repeat(12,1fr);}.mud-stepper-grid-7.horizontal{display:grid;grid-template-columns:repeat(14,1fr);}.mud-stepper-grid-7.vertical{display:grid;grid-template-rows:repeat(14,1fr);}.mud-stepper-grid-8.horizontal{display:grid;grid-template-columns:repeat(16,1fr);}.mud-stepper-grid-8.vertical{display:grid;grid-template-rows:repeat(16,1fr);}.mud-stepper-grid-9.horizontal{display:grid;grid-template-columns:repeat(18,1fr);}.mud-stepper-grid-9.vertical{display:grid;grid-template-rows:repeat(18,1fr);}.mud-stepper-grid-10.horizontal{display:grid;grid-template-columns:repeat(20,1fr);}.mud-stepper-grid-10.vertical{display:grid;grid-template-rows:repeat(20,1fr);}.mud-stepper-grid-11.horizontal{display:grid;grid-template-columns:repeat(22,1fr);}.mud-stepper-grid-11.vertical{display:grid;grid-template-rows:repeat(22,1fr);}.mud-stepper-grid-12.horizontal{display:grid;grid-template-columns:repeat(24,1fr);}.mud-stepper-grid-12.vertical{display:grid;grid-template-rows:repeat(24,1fr);}.mud-stepper-grid-13.horizontal{display:grid;grid-template-columns:repeat(26,1fr);}.mud-stepper-grid-13.vertical{display:grid;grid-template-rows:repeat(26,1fr);}.mud-stepper-grid-14.horizontal{display:grid;grid-template-columns:repeat(28,1fr);}.mud-stepper-grid-14.vertical{display:grid;grid-template-rows:repeat(28,1fr);}.mud-stepper-grid-15.horizontal{display:grid;grid-template-columns:repeat(30,1fr);}.mud-stepper-grid-15.vertical{display:grid;grid-template-rows:repeat(30,1fr);}.mud-stepper-grid-16.horizontal{display:grid;grid-template-columns:repeat(32,1fr);}.mud-stepper-grid-16.vertical{display:grid;grid-template-rows:repeat(32,1fr);}.mud-stepper-grid-17.horizontal{display:grid;grid-template-columns:repeat(34,1fr);}.mud-stepper-grid-17.vertical{display:grid;grid-template-rows:repeat(34,1fr);}.mud-stepper-grid-18.horizontal{display:grid;grid-template-columns:repeat(36,1fr);}.mud-stepper-grid-18.vertical{display:grid;grid-template-rows:repeat(36,1fr);}.mud-stepper-grid-19.horizontal{display:grid;grid-template-columns:repeat(38,1fr);}.mud-stepper-grid-19.vertical{display:grid;grid-template-rows:repeat(38,1fr);}.mud-stepper-grid-20.horizontal{display:grid;grid-template-columns:repeat(40,1fr);}.mud-stepper-grid-20.vertical{display:grid;grid-template-rows:repeat(40,1fr);}.mud-stepper-grid-21.horizontal{display:grid;grid-template-columns:repeat(42,1fr);}.mud-stepper-grid-21.vertical{display:grid;grid-template-rows:repeat(42,1fr);}.mud-stepper-grid-22.horizontal{display:grid;grid-template-columns:repeat(44,1fr);}.mud-stepper-grid-22.vertical{display:grid;grid-template-rows:repeat(44,1fr);}.mud-stepper-grid-23.horizontal{display:grid;grid-template-columns:repeat(46,1fr);}.mud-stepper-grid-23.vertical{display:grid;grid-template-rows:repeat(46,1fr);}.mud-stepper-grid-24.horizontal{display:grid;grid-template-columns:repeat(48,1fr);}.mud-stepper-grid-24.vertical{display:grid;grid-template-rows:repeat(48,1fr);}.steps-1.horizontal{grid-column-start:2;grid-column-end:2;grid-row:1/-1;}.steps-1.vertical{grid-row-start:2;grid-row-end:2;grid-column:1/-1;}.steps-2.horizontal{grid-column-start:2;grid-column-end:4;grid-row:1/-1;}.steps-2.vertical{grid-row-start:2;grid-row-end:4;grid-column:1/-1;}.steps-3.horizontal{grid-column-start:2;grid-column-end:6;grid-row:1/-1;}.steps-3.vertical{grid-row-start:2;grid-row-end:6;grid-column:1/-1;}.steps-4.horizontal{grid-column-start:2;grid-column-end:8;grid-row:1/-1;}.steps-4.vertical{grid-row-start:2;grid-row-end:8;grid-column:1/-1;}.steps-5.horizontal{grid-column-start:2;grid-column-end:10;grid-row:1/-1;}.steps-5.vertical{grid-row-start:2;grid-row-end:10;grid-column:1/-1;}.steps-6.horizontal{grid-column-start:2;grid-column-end:12;grid-row:1/-1;}.steps-6.vertical{grid-row-start:2;grid-row-end:12;grid-column:1/-1;}.steps-7.horizontal{grid-column-start:2;grid-column-end:14;grid-row:1/-1;}.steps-7.vertical{grid-row-start:2;grid-row-end:14;grid-column:1/-1;}.steps-8.horizontal{grid-column-start:2;grid-column-end:16;grid-row:1/-1;}.steps-8.vertical{grid-row-start:2;grid-row-end:16;grid-column:1/-1;}.steps-9.horizontal{grid-column-start:2;grid-column-end:18;grid-row:1/-1;}.steps-9.vertical{grid-row-start:2;grid-row-end:18;grid-column:1/-1;}.steps-10.horizontal{grid-column-start:2;grid-column-end:20;grid-row:1/-1;}.steps-10.vertical{grid-row-start:2;grid-row-end:20;grid-column:1/-1;}.steps-11.horizontal{grid-column-start:2;grid-column-end:22;grid-row:1/-1;}.steps-11.vertical{grid-row-start:2;grid-row-end:22;grid-column:1/-1;}.steps-12.horizontal{grid-column-start:2;grid-column-end:24;grid-row:1/-1;}.steps-12.vertical{grid-row-start:2;grid-row-end:24;grid-column:1/-1;}.mud-stepper-progress-extended.horizontal.header-size-small{top:22px;height:2px;}.mud-stepper-progress-extended.horizontal.header-size-medium{top:30px;height:3px;}.mud-stepper-progress-extended.horizontal.header-size-large{top:38px;height:4px;}.mud-stepper-progress-extended.vertical.header-size-small{left:22px;}.mud-stepper-progress-extended.vertical.header-size-medium{left:30px;}.mud-stepper-progress-extended.vertical.header-size-large{left:38px;}.mobile.horizontal .mud-stepper-progress-extended{margin-inline-start:40px;}.mud-stepper-progress-extended{display:inline-grid;z-index:10;}.mud-stepper-progress-extended.vertical{transform:rotateX(180deg);}.mud-switch-m3{cursor:pointer;display:inline-flex;align-items:center;vertical-align:middle;margin-top:4px;margin-bottom:4px;-webkit-tap-highlight-color:transparent;}.mud-switch-m3.mud-disabled{color:var(--mud-palette-text-disabled) !important;cursor:default;}.mud-switch-m3.mud-readonly,.mud-switch-m3 .mud-readonly:hover{cursor:default;background-color:transparent !important;}.mud-switch-span-m3{width:52px;height:32px;display:inline-flex;z-index:0;position:relative;box-sizing:border-box;flex-shrink:0;vertical-align:middle;}.mud-switch-span-m3.mud-switch-child-content-m3{margin-inline-end:12px;}.mud-switch-span-m3 .mud-switch-track-m3{width:52px;height:32px;z-index:-1;transition:opacity 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;border-radius:30px;background-color:var(--mud-palette-background);border:2px solid;}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-default-m3{border-color:var(--mud-palette-text-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-primary-m3{border-color:var(--mud-palette-primary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-secondary-m3{border-color:var(--mud-palette-secondary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-tertiary-m3{border-color:var(--mud-palette-tertiary);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-info-m3{border-color:var(--mud-palette-info);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-success-m3{border-color:var(--mud-palette-success);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-warning-m3{border-color:var(--mud-palette-warning);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-error-m3{border-color:var(--mud-palette-error);}.mud-switch-span-m3 .mud-switch-track-m3.mud-switch-track-dark-m3{border-color:var(--mud-palette-dark);}.mud-switch-base-m3{padding-top:4px;padding-bottom:4px;padding-inline-start:8px;top:0;left:0;bottom:0;color:#fafafa;z-index:1;position:absolute;transition:left 150ms cubic-bezier(.4,0,.2,1) 0ms,transform 150ms cubic-bezier(.4,0,.2,1) 0ms,background-color 250ms cubic-bezier(.4,0,.2,1) 0ms,box-shadow 250ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-switch-base-m3.mud-switch-base-dense-m3{padding-inline-start:4px;}.mud-switch-base-m3.mud-checked{transform:translateX(20px);padding:4px;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3{opacity:1;}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-default{background-color:var(--mud-palette-text-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-primary{background-color:var(--mud-palette-primary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-secondary{background-color:var(--mud-palette-secondary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-tertiary{background-color:var(--mud-palette-tertiary);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-info{background-color:var(--mud-palette-info);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-success{background-color:var(--mud-palette-success);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-warning{background-color:var(--mud-palette-warning);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-error{background-color:var(--mud-palette-error);}.mud-switch-base-m3.mud-checked+.mud-switch-track-m3.mud-dark{background-color:var(--mud-palette-dark);}.mud-switch-base-m3.mud-checked .mud-switch-thumb-m3{width:24px;height:24px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;background-color:var(--mud-palette-background);}.mud-switch-base-m3:hover{background-color:var(--mud-palette-action-default-hover);}.mud-switch-base-m3.mud-switch-disabled{color:var(--mud-palette-gray-default) !important;}.mud-switch-base-m3.mud-switch-disabled+.mud-switch-track-m3{opacity:.12 !important;}.mud-switch-base-m3.mud-switch-disabled:hover,.mud-switch-base-m3.mud-switch-disabled:focus-visible{cursor:default;background-color:transparent !important;}.mud-switch-button-m3{display:flex;align-items:inherit;justify-content:inherit;}.mud-switch-button-m3 .mud-switch-input-m3{top:0;left:0;width:100%;cursor:inherit;height:100%;margin:0;opacity:0;padding:0;z-index:1;position:absolute;}.mud-switch-button-m3 .mud-switch-thumb-m3{width:16px;height:16px;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);border-radius:50%;}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-default-m3{background-color:var(--mud-palette-text-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-primary-m3{background-color:var(--mud-palette-primary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-secondary-m3{background-color:var(--mud-palette-secondary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-tertiary-m3{background-color:var(--mud-palette-tertiary);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-info-m3{background-color:var(--mud-palette-info);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-success-m3{background-color:var(--mud-palette-success);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-warning-m3{background-color:var(--mud-palette-warning);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-error-m3{background-color:var(--mud-palette-error);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-dark-m3{background-color:var(--mud-palette-dark);}.mud-switch-button-m3 .mud-switch-thumb-m3.mud-switch-thumb-off-icon-m3{width:24px;height:24px;}.mud-wheel{overflow:hidden;min-width:0;flex-grow:1;user-select:none;-webkit-user-select:none;}.mud-wheel-item{width:100%;display:flex;align-content:center;justify-content:center;color:var(--mud-palette-text-secondary);border-radius:var(--mud-default-borderradius);}.mud-wheel-item.mud-wheel-item:hover:not(.mud-disabled){background-color:var(--mud-palette-action-default-hover);}.mud-wheel-item.wheel-item-closest{color:var(--mud-palette-text);}.mud-wheel-item.wheel-item-empty{min-height:32px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty-dense{min-height:24px !important;}.mud-wheel-item.wheel-item-empty.wheel-item-empty:hover{background-color:unset;}.mud-wheel-item.mud-disabled{color:var(--mud-palette-text-disabled);}.middle-item{transform:scale(1.2);}.middle-item.mud-disabled{color:var(--mud-palette-text-disabled);}.mud-wheel-border{min-height:2px !important;}.mud-wheel-border.mud-wheel-border-default{background-color:var(--mud-palette-text-primary);}.mud-wheel-border.mud-wheel-border-primary{background-color:var(--mud-palette-primary);}.mud-wheel-border.wheel-border-gradient-primary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-primary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-secondary{background-color:var(--mud-palette-secondary);}.mud-wheel-border.wheel-border-gradient-secondary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-secondary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-tertiary{background-color:var(--mud-palette-tertiary);}.mud-wheel-border.wheel-border-gradient-tertiary{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-tertiary),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-info{background-color:var(--mud-palette-info);}.mud-wheel-border.wheel-border-gradient-info{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-info),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-success{background-color:var(--mud-palette-success);}.mud-wheel-border.wheel-border-gradient-success{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-success),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-warning{background-color:var(--mud-palette-warning);}.mud-wheel-border.wheel-border-gradient-warning{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-warning),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-error{background-color:var(--mud-palette-error);}.mud-wheel-border.wheel-border-gradient-error{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-error),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.mud-wheel-border-dark{background-color:var(--mud-palette-dark);}.mud-wheel-border.wheel-border-gradient-dark{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-dark),rgba(255,0,0,0));background-color:unset;}.mud-wheel-border.wheel-border-gradient-default{background-image:linear-gradient(to right,rgba(255,0,0,0),var(--mud-palette-text-primary),rgba(255,0,0,0));background-color:unset;}.mud-typographym3-display-large{font-family:var(--mud-typographym3-display-large-font);line-height:var(--mud-typographym3-display-large-line-height);font-size:var(--mud-typographym3-display-large-size);letter-spacing:var(--mud-typographym3-display-large-tracking);font-weight:var(--mud-typographym3-display-large-weight);}.mud-typographym3-display-medium{font-family:var(--mud-typographym3-display-medium-font);line-height:var(--mud-typographym3-display-medium-line-height);font-size:var(--mud-typographym3-display-medium-size);letter-spacing:var(--mud-typographym3-display-medium-tracking);font-weight:var(--mud-typographym3-display-medium-weight);}.mud-typographym3-display-small{font-family:var(--mud-typographym3-display-small-font);line-height:var(--mud-typographym3-display-small-line-height);font-size:var(--mud-typographym3-display-small-size);letter-spacing:var(--mud-typographym3-display-small-tracking);font-weight:var(--mud-typographym3-display-small-weight);}.mud-typographym3-headline-large{font-family:var(--mud-typographym3-headline-large-font);line-height:var(--mud-typographym3-headline-large-line-height);font-size:var(--mud-typographym3-headline-large-size);letter-spacing:var(--mud-typographym3-headline-large-tracking);font-weight:var(--mud-typographym3-headline-large-weight);}.mud-typographym3-headline-medium{font-family:var(--mud-typographym3-headline-medium-font);line-height:var(--mud-typographym3-headline-medium-line-height);font-size:var(--mud-typographym3-headline-medium-size);letter-spacing:var(--mud-typographym3-headline-medium-tracking);font-weight:var(--mud-typographym3-headline-medium-weight);}.mud-typographym3-headline-small{font-family:var(--mud-typographym3-headline-small-font);line-height:var(--mud-typographym3-headline-small-line-height);font-size:var(--mud-typographym3-headline-small-size);letter-spacing:var(--mud-typographym3-headline-small-tracking);font-weight:var(--mud-typographym3-headline-small-weight);}.mud-typographym3-title-large{font-family:var(--mud-typographym3-title-large-font);line-height:var(--mud-typographym3-title-large-line-height);font-size:var(--mud-typographym3-title-large-size);letter-spacing:var(--mud-typographym3-title-large-tracking);font-weight:var(--mud-typographym3-title-large-weight);}.mud-typographym3-title-medium{font-family:var(--mud-typographym3-title-medium-font);line-height:var(--mud-typographym3-title-medium-line-height);font-size:var(--mud-typographym3-title-medium-size);letter-spacing:var(--mud-typographym3-title-medium-tracking);font-weight:var(--mud-typographym3-title-medium-weight);}.mud-typographym3-title-small{font-family:var(--mud-typographym3-title-small-font);line-height:var(--mud-typographym3-title-small-line-height);font-size:var(--mud-typographym3-title-small-size);letter-spacing:var(--mud-typographym3-title-small-tracking);font-weight:var(--mud-typographym3-title-small-weight);}.mud-typographym3-body-large{font-family:var(--mud-typographym3-body-large-font);line-height:var(--mud-typographym3-body-large-line-height);font-size:var(--mud-typographym3-body-large-size);letter-spacing:var(--mud-typographym3-body-large-tracking);font-weight:var(--mud-typographym3-body-large-weight);}.mud-typographym3-body-medium{font-family:var(--mud-typographym3-body-medium-font);line-height:var(--mud-typographym3-body-medium-line-height);font-size:var(--mud-typographym3-body-medium-size);letter-spacing:var(--mud-typographym3-body-medium-tracking);font-weight:var(--mud-typographym3-body-medium-weight);}.mud-typographym3-body-small{font-family:var(--mud-typographym3-body-small-font);line-height:var(--mud-typographym3-body-small-line-height);font-size:var(--mud-typographym3-body-small-size);letter-spacing:var(--mud-typographym3-body-small-tracking);font-weight:var(--mud-typographym3-body-small-weight);}.mud-typographym3-label-large{font-family:var(--mud-typographym3-label-large-font);line-height:var(--mud-typographym3-label-large-line-height);font-size:var(--mud-typographym3-label-large-size);letter-spacing:var(--mud-typographym3-label-large-tracking);font-weight:var(--mud-typographym3-label-large-weight);}.mud-typographym3-label-medium{font-family:var(--mud-typographym3-label-medium-font);line-height:var(--mud-typographym3-label-medium-line-height);font-size:var(--mud-typographym3-label-medium-size);letter-spacing:var(--mud-typographym3-label-medium-tracking);font-weight:var(--mud-typographym3-label-medium-weight);}.mud-typographym3-label-small{font-family:var(--mud-typographym3-label-small-font);line-height:var(--mud-typographym3-label-small-line-height);font-size:var(--mud-typographym3-label-small-size);letter-spacing:var(--mud-typographym3-label-small-tracking);font-weight:var(--mud-typographym3-label-small-weight);}.mud-typography-display-inline{display:inline;}.mud-transfer-list-common{height:fill-available;height:-webkit-fill-available;}.mud-transfer-list-container{display:flex;flex-direction:column;flex:1 1 0%;}.mud-list-extended{margin:0;padding:0;position:relative;list-style:none;}.mud-list-extended.mud-list-padding-extended{padding-top:8px;padding-bottom:8px;}.mud-list-item-extended{width:100%;display:flex;position:relative;box-sizing:border-box;text-align:start;align-items:center;padding-top:8px;padding-bottom:8px;justify-content:flex-start;text-decoration:none;outline:none;}.mud-list-item-extended.mud-list-item-dense-extended{padding-top:4px;padding-bottom:4px;}.mud-list-item-extended.mud-list-item-disabled-extended{color:var(--mud-palette-action-disabled) !important;cursor:default !important;pointer-events:none !important;}.mud-list-item-extended.mud-list-item-disabled-extended .mud-list-item-icon-extended{color:var(--mud-palette-action-disabled) !important;}.mud-list-item-clickable-extended{color:inherit;border:0;cursor:pointer;margin:0;outline:0;user-select:none;border-radius:0;vertical-align:middle;background-color:transparent;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:background-color 150ms cubic-bezier(.4,0,.2,1) 0ms;}.mud-list-item-clickable-extended:hover:not(.mud-list-item-functional){background-color:var(--mud-palette-action-default-hover);}.mud-list-item-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-item-text-extended{flex:1 1 auto;min-width:0;margin-top:4px;margin-bottom:4px;padding-inline-start:8px;padding-inline-end:8px;}.mud-list-item-text-inset-extended{padding-left:56px;padding-inline-start:56px;padding-inline-end:unset;}.mud-list-item-icon-extended{color:var(--mud-palette-action-default);display:inline-flex;flex-shrink:0;padding-inline-start:8px;padding-inline-end:8px;margin-inline-start:-4px;margin-inline-end:4px;}.mud-list-item-multiselect-extended{max-height:32px;}.mud-list-item-multiselect-extended.mud-list-item-multiselect-checkbox-extended{padding-inline-end:16px;}.mud-list-subheader-extended{color:var(--mud-palette-action-default);background-color:var(--mud-palette-background);font-size:.875rem;box-sizing:border-box;list-style:none;font-weight:500;padding-top:16px;padding-bottom:16px;}.mud-list-subheader-secondary-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-subheader-gutters-extended{padding-left:16px;padding-right:16px;}.mud-list-subheader-inset-extended{padding-left:72px;padding-inline-start:72px;padding-inline-end:unset;}.mud-list-subheader-sticky-extended{top:-8px;z-index:1;position:sticky;}.mud-list-subheader-sticky-extended.mud-list-subheader-sticky-dense-extended{top:0;}.mud-list-item-hilight-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-hilight-selected{background-color:var(--mud-palette-lines-default) !important;}.mud-list-item-nested-background-extended{background-color:var(--mud-palette-background-gray);}.mud-list-item-avatar-extended{min-width:56px;flex-shrink:0;}.mud-nested-list-extended>.mud-list-item-extended{padding-left:32px;padding-inline-start:32px;padding-inline-end:unset;}.mud-select-extended{display:flex;flex-grow:1;flex-basis:0;min-width:0;position:relative;height:fit-content;}.mud-select-extended.mud-autocomplete{display:block;}.mud-select-extended.mud-autocomplete .mud-select-input-extended{cursor:text;}.mud-select-extended.mud-autocomplete .mud-input-adornment-extended{cursor:pointer;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended input{padding-right:3.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-input-adorned-end input{padding-right:4.5rem !important;}.mud-select-extended.mud-autocomplete--with-progress .mud-select-input-extended .mud-icon-button{display:none !important;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular{position:absolute;width:100%;top:0;bottom:0;display:flex;align-items:center;justify-content:flex-end;padding-top:.25rem;padding-bottom:.25rem;padding-right:1rem;}.mud-select-extended.mud-autocomplete--with-progress .progress-indicator-circular--with-adornment{padding-right:3rem;}.mud-select-extended.mud-autocomplete--with-progress .mud-progress-linear{position:absolute;bottom:-1px;height:2px;}.mud-select-extended .mud-select-input-extended{cursor:pointer;}.mud-select-extended .mud-select-input-extended .mud-select-extended-nowrap{white-space:nowrap;}.mud-select-extended .mud-select-input-extended .mud-input-slot{overflow:hidden;text-overflow:ellipsis;}.mud-select-extended .mud-select-input-extended .mud-input-adornment-end{margin-left:0;}.mud-select-extended .mud-select-input-extended:disabled{cursor:default;}.mud-select-extended .mud-disabled .mud-select-input{cursor:default;}.mud-select-extended>.mud-form-helpertext{margin-top:-21px;}.mud-select-all-extended{margin-top:10px;border-bottom:1px solid #d3d3d3;padding-bottom:18px;}.mud-select-input-chip-extended{display:flex;flex-wrap:wrap;max-width:100%;row-gap:4px;}.mud-select-input-chip-extended.mud-select-extended-nowrap{flex-wrap:nowrap;overflow-x:hidden;}.mud-select-input-chip-extended .mud-chip{flex:0 0 auto;white-space:nowrap;}.mud-placeholder-extended{line-height:unset;}.mud-input-adornment-start-extended:not(.mud-input-text-extended){margin-inline-start:12px;}.mud-input-adornment-start-extended.mud-input-filled-extended{margin-top:16px;}.mud-input-adornment-end-extended:not(.mud-input-text-extended){margin-inline-end:12px;}.mud-no-start-adornment .mud-input-adornment-start-extended{margin-inline-start:0 !important;} \ No newline at end of file