<LumexDataGrid Data="@_users" Shadow="@_shadow">
    <PropertyColumn Property="@(p => p.Name)" />
    <PropertyColumn Property="@(p => p.Role)" />
    <PropertyColumn Property="@(p => p.Status)" />
</LumexDataGrid>

<fieldset class="flex gap-4">
    @foreach( var shadow in _shadows )
    {
        var value = shadow.ToString();

        <div class="flex gap-1">
            <input type="radio"
                   id="@($"shadow-{value.ToLower()}")" 
                   name="shadow"
                   @bind:event="onchange"
                   @bind:get="@shadow"
                   @bind:set="@OnShadowSelect" />
            <label for="@($"shadow-{value.ToLower()}")">@value</label>
        </div>
    }
</fieldset>

@code {
    private readonly IQueryable<User> _users = new List<User>
    {
        new( "Alice Johnson", "Administrator", "Active" ),
        new( "Bob Smith", "Editor", "Inactive" ),
        new( "Charlie Brown", "Viewer", "Pending" ),
        new( "Diana Lee", "Moderator", "Active" )
    }.AsQueryable();

    private readonly Shadow[] _shadows = [
        Shadow.None,
        Shadow.Small,
        Shadow.Medium,
        Shadow.Large
    ];

    private Shadow _shadow = Shadow.Small;

    private void OnShadowSelect( Shadow value )
    {
        _shadow = value;
    }

    private record User( string Name, string Role, string Status );
}