{
  "name": "Command",
  "category": "Overlay",
  "subcategory": null,
  "description": "Command palette — keyboard-driven finder for actions.",
  "thumbnail": "/preview-cards/command.png",
  "hasDocsPage": true,
  "nugetPackage": "Lumeo",
  "files": [
    "UI/Command/Command.razor",
    "UI/Command/CommandEmpty.razor",
    "UI/Command/CommandGroup.razor",
    "UI/Command/CommandInput.razor",
    "UI/Command/CommandItem.razor",
    "UI/Command/CommandList.razor",
    "UI/Command/CommandSeparator.razor"
  ],
  "dependencies": [
    "kbd"
  ],
  "packageDependencies": [
    "Blazicons.Lucide"
  ],
  "cssVars": [
    "--color-accent",
    "--color-accent-foreground",
    "--color-border",
    "--color-foreground",
    "--color-muted",
    "--color-muted-foreground",
    "--color-popover",
    "--color-popover-foreground",
    "--radius"
  ],
  "api": {
    "name": "Command",
    "category": "Overlay",
    "subcategory": null,
    "description": "Command palette — keyboard-driven finder for actions.",
    "nugetPackage": "Lumeo",
    "files": [
      "UI/Command/Command.razor",
      "UI/Command/CommandEmpty.razor",
      "UI/Command/CommandGroup.razor",
      "UI/Command/CommandInput.razor",
      "UI/Command/CommandItem.razor",
      "UI/Command/CommandList.razor",
      "UI/Command/CommandSeparator.razor"
    ],
    "namespace": "Lumeo",
    "inheritsFrom": null,
    "implements": [],
    "parameters": [
      {
        "name": "ChildContent",
        "type": "RenderFragment?",
        "default": null,
        "description": null,
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "Class",
        "type": "string?",
        "default": null,
        "description": null,
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "AdditionalAttributes",
        "type": "Dictionary<string, object>?",
        "default": null,
        "description": null,
        "isCascading": false,
        "captureUnmatched": true
      }
    ],
    "events": [],
    "enums": [],
    "records": [
      {
        "name": "CommandContext",
        "signature": "CommandContext(\n        string SearchText,\n        EventCallback<string> OnSearch,\n        Action<string> RegisterItem,\n        Action<string> UnregisterItem,\n        int VisibleItemCount)",
        "description": null
      }
    ],
    "cssVars": [
      "--color-accent",
      "--color-accent-foreground",
      "--color-border",
      "--color-foreground",
      "--color-muted",
      "--color-muted-foreground",
      "--color-popover",
      "--color-popover-foreground",
      "--radius"
    ],
    "examples": [
      {
        "title": "Default",
        "code": "<Command>\n    <CommandInput Placeholder=\"Type a command or search...\" />\n    <CommandList>\n        <CommandGroup Heading=\"Suggestions\">\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Calendar\" class=\"mr-2 h-4 w-4\" />\n                <span>Calendar</span>\n            </CommandItem>\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Settings\" class=\"mr-2 h-4 w-4\" />\n                <span>Settings</span>\n            </CommandItem>\n        </CommandGroup>\n        <CommandSeparator />\n        <CommandGroup Heading=\"Actions\">\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.User\" class=\"mr-2 h-4 w-4\" />\n                <span>Profile</span>\n            </CommandItem>\n        </CommandGroup>\n    </CommandList>\n</Command>"
      },
      {
        "title": "Compact",
        "code": "<Command>\n    <CommandInput Placeholder=\"Search...\" />\n    <CommandList>\n        <CommandGroup>\n            <CommandItem>New File</CommandItem>\n            <CommandItem>Open File</CommandItem>\n            <CommandItem>Save</CommandItem>\n        </CommandGroup>\n    </CommandList>\n</Command>"
      },
      {
        "title": "Navigation",
        "code": "<Command>\n    <CommandInput Placeholder=\"Go to...\" />\n    <CommandList>\n        <CommandGroup Heading=\"Pages\">\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.House\" class=\"mr-2 h-4 w-4\" />\n                <span>Dashboard</span>\n            </CommandItem>\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.User\" class=\"mr-2 h-4 w-4\" />\n                <span>Profile</span>\n            </CommandItem>\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Settings\" class=\"mr-2 h-4 w-4\" />\n                <span>Settings</span>\n            </CommandItem>\n        </CommandGroup>\n        <CommandSeparator />\n        <CommandGroup Heading=\"Recent\">\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Bell\" class=\"mr-2 h-4 w-4\" />\n                <span>Notifications</span>\n            </CommandItem>\n            <CommandItem>\n                <Blazicon Svg=\"Lucide.Mail\" class=\"mr-2 h-4 w-4\" />\n                <span>Messages</span>\n            </CommandItem>\n        </CommandGroup>\n    </CommandList>\n</Command>"
      },
      {
        "title": "With Shortcuts",
        "code": "<Command Class=\"rounded-lg border shadow-md w-full max-w-md\">\n    <CommandInput Placeholder=\"Type a command...\" />\n    <CommandList>\n        <CommandGroup Heading=\"Actions\">\n            <CommandItem Shortcut=\"Ctrl+N\">New File</CommandItem>\n            <CommandItem Shortcut=\"Ctrl+S\">Save</CommandItem>\n            <CommandItem Shortcut=\"Ctrl+Shift+P\">Command Palette</CommandItem>\n        </CommandGroup>\n        <CommandGroup Heading=\"Navigation\">\n            <CommandItem Shortcut=\"Ctrl+1\">Go to Dashboard</CommandItem>\n            <CommandItem Shortcut=\"Ctrl+2\">Go to Settings</CommandItem>\n        </CommandGroup>\n    </CommandList>\n</Command>"
      }
    ],
    "subComponents": {
      "CommandEmpty": {
        "componentName": "CommandEmpty",
        "fileName": "CommandEmpty.razor",
        "namespace": "Lumeo",
        "inheritsFrom": null,
        "implements": [],
        "parameters": [
          {
            "name": "Context",
            "type": "Command.CommandContext?",
            "default": null,
            "description": null,
            "isCascading": true,
            "captureUnmatched": false
          },
          {
            "name": "ChildContent",
            "type": "RenderFragment?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "Class",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "AdditionalAttributes",
            "type": "Dictionary<string, object>?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": true
          }
        ],
        "events": [],
        "enums": [],
        "records": [],
        "parseFailed": false,
        "parseError": null
      },
      "CommandGroup": {
        "componentName": "CommandGroup",
        "fileName": "CommandGroup.razor",
        "namespace": "Lumeo",
        "inheritsFrom": null,
        "implements": [],
        "parameters": [
          {
            "name": "ChildContent",
            "type": "RenderFragment?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "Heading",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "Class",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "AdditionalAttributes",
            "type": "Dictionary<string, object>?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": true
          }
        ],
        "events": [],
        "enums": [],
        "records": [],
        "parseFailed": false,
        "parseError": null
      },
      "CommandInput": {
        "componentName": "CommandInput",
        "fileName": "CommandInput.razor",
        "namespace": "Lumeo",
        "inheritsFrom": null,
        "implements": [],
        "parameters": [
          {
            "name": "Context",
            "type": "Command.CommandContext",
            "default": "default!",
            "description": null,
            "isCascading": true,
            "captureUnmatched": false
          },
          {
            "name": "Placeholder",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "Class",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "AdditionalAttributes",
            "type": "Dictionary<string, object>?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": true
          }
        ],
        "events": [],
        "enums": [],
        "records": [],
        "parseFailed": false,
        "parseError": null
      },
      "CommandItem": {
        "componentName": "CommandItem",
        "fileName": "CommandItem.razor",
        "namespace": "Lumeo",
        "inheritsFrom": null,
        "implements": [
          "IDisposable"
        ],
        "parameters": [
          {
            "name": "Context",
            "type": "Command.CommandContext?",
            "default": null,
            "description": null,
            "isCascading": true,
            "captureUnmatched": false
          },
          {
            "name": "ChildContent",
            "type": "RenderFragment?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "OnSelect",
            "type": "EventCallback",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "Disabled",
            "type": "bool",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "Shortcut",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "FilterValue",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "Class",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "AdditionalAttributes",
            "type": "Dictionary<string, object>?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": true
          }
        ],
        "events": [
          {
            "name": "OnSelect",
            "type": "EventCallback",
            "description": null
          }
        ],
        "enums": [],
        "records": [],
        "parseFailed": false,
        "parseError": null
      },
      "CommandList": {
        "componentName": "CommandList",
        "fileName": "CommandList.razor",
        "namespace": "Lumeo",
        "inheritsFrom": null,
        "implements": [],
        "parameters": [
          {
            "name": "ChildContent",
            "type": "RenderFragment?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "Class",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "AdditionalAttributes",
            "type": "Dictionary<string, object>?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": true
          }
        ],
        "events": [],
        "enums": [],
        "records": [],
        "parseFailed": false,
        "parseError": null
      },
      "CommandSeparator": {
        "componentName": "CommandSeparator",
        "fileName": "CommandSeparator.razor",
        "namespace": "Lumeo",
        "inheritsFrom": null,
        "implements": [],
        "parameters": [
          {
            "name": "Class",
            "type": "string?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": false
          },
          {
            "name": "AdditionalAttributes",
            "type": "Dictionary<string, object>?",
            "default": null,
            "description": null,
            "isCascading": false,
            "captureUnmatched": true
          }
        ],
        "events": [],
        "enums": [],
        "records": [],
        "parseFailed": false,
        "parseError": null
      }
    },
    "parseFailed": false,
    "parseError": null
  },
  "$schema": "https://lumeo.nativ.sh/registry-component-schema.json",
  "key": "command",
  "docsUrl": "https://lumeo.nativ.sh/components/command",
  "sourceUrl": [
    {
      "file": "UI/Command/Command.razor",
      "url": "https://github.com/Brain2k-0005/Lumeo/tree/master/src/Lumeo/UI/Command/Command.razor"
    },
    {
      "file": "UI/Command/CommandEmpty.razor",
      "url": "https://github.com/Brain2k-0005/Lumeo/tree/master/src/Lumeo/UI/Command/CommandEmpty.razor"
    },
    {
      "file": "UI/Command/CommandGroup.razor",
      "url": "https://github.com/Brain2k-0005/Lumeo/tree/master/src/Lumeo/UI/Command/CommandGroup.razor"
    },
    {
      "file": "UI/Command/CommandInput.razor",
      "url": "https://github.com/Brain2k-0005/Lumeo/tree/master/src/Lumeo/UI/Command/CommandInput.razor"
    },
    {
      "file": "UI/Command/CommandItem.razor",
      "url": "https://github.com/Brain2k-0005/Lumeo/tree/master/src/Lumeo/UI/Command/CommandItem.razor"
    },
    {
      "file": "UI/Command/CommandList.razor",
      "url": "https://github.com/Brain2k-0005/Lumeo/tree/master/src/Lumeo/UI/Command/CommandList.razor"
    },
    {
      "file": "UI/Command/CommandSeparator.razor",
      "url": "https://github.com/Brain2k-0005/Lumeo/tree/master/src/Lumeo/UI/Command/CommandSeparator.razor"
    }
  ],
  "source": [
    {
      "path": "UI/Command/Command.razor",
      "content": "@namespace Lumeo\n\n@{\n    var context = new CommandContext(\n        SearchText,\n        EventCallback.Factory.Create<string>(this, OnSearchChanged),\n        RegisterItem,\n        UnregisterItem,\n        VisibleItemCount);\n}\n\n<div class=\"@CssClass\" @attributes=\"AdditionalAttributes\">\n    <CascadingValue Value=\"context\" IsFixed=\"false\">\n        @ChildContent\n    </CascadingValue>\n</div>\n\n@code {\n    [Parameter] public RenderFragment? ChildContent { get; set; }\n    [Parameter] public string? Class { get; set; }\n    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }\n\n    private string SearchText { get; set; } = \"\";\n    private readonly HashSet<string> _items = new();\n\n    private string CssClass => $\"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground {Class}\".Trim();\n\n    // CommandItem tracks its own visibility and calls Register only while visible, Unregister when it's not —\n    // so VisibleItemCount reflects the filtered result set, which lets CommandEmpty render only when everything\n    // is filtered out.\n    private int VisibleItemCount => _items.Count;\n\n    private void RegisterItem(string id)\n    {\n        if (_items.Add(id)) StateHasChanged();\n    }\n\n    private void UnregisterItem(string id)\n    {\n        if (_items.Remove(id)) StateHasChanged();\n    }\n\n    private Task OnSearchChanged(string text)\n    {\n        SearchText = text;\n        StateHasChanged();\n        return Task.CompletedTask;\n    }\n\n    public record CommandContext(\n        string SearchText,\n        EventCallback<string> OnSearch,\n        Action<string> RegisterItem,\n        Action<string> UnregisterItem,\n        int VisibleItemCount);\n}\n"
    },
    {
      "path": "UI/Command/CommandEmpty.razor",
      "content": "@namespace Lumeo\n@inject Lumeo.Services.Localization.ILumeoLocalizer L\n\n@* Only renders when every CommandItem has been filtered out — previously rendered unconditionally so users\n   saw the empty text stacked under their matching items. *@\n@if (IsVisible)\n{\n    <div class=\"@CssClass\" @attributes=\"AdditionalAttributes\">\n        @if (ChildContent is not null)\n        {\n            @ChildContent\n        }\n        else\n        {\n            <span>@L[\"Command.NoResults\"]</span>\n        }\n    </div>\n}\n\n@code {\n    [CascadingParameter] public Command.CommandContext? Context { get; set; }\n    [Parameter] public RenderFragment? ChildContent { get; set; }\n    [Parameter] public string? Class { get; set; }\n    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }\n\n    private bool IsVisible => Context is null || Context.VisibleItemCount == 0;\n\n    private string CssClass => $\"py-6 text-center text-sm text-muted-foreground {Class}\".Trim();\n}\n"
    },
    {
      "path": "UI/Command/CommandGroup.razor",
      "content": "@namespace Lumeo\n\n<div class=\"@CssClass\" @attributes=\"AdditionalAttributes\">\n    @if (Heading is not null)\n    {\n        <div class=\"px-2 py-1.5 text-xs font-medium text-muted-foreground\">@Heading</div>\n    }\n    @ChildContent\n</div>\n\n@code {\n    [Parameter] public RenderFragment? ChildContent { get; set; }\n    [Parameter] public string? Heading { get; set; }\n    [Parameter] public string? Class { get; set; }\n    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }\n\n    private string CssClass => $\"overflow-hidden p-1 text-foreground {Class}\".Trim();\n}\n"
    },
    {
      "path": "UI/Command/CommandInput.razor",
      "content": "@namespace Lumeo\n@inject Lumeo.Services.Localization.ILumeoLocalizer L\n\n<div class=\"flex items-center border-b border-border/40 px-3\">\n    <Blazicon Svg=\"Lucide.Search\" class=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n    <input type=\"text\"\n           class=\"@CssClass\"\n           placeholder=\"@(Placeholder ?? L[\"Command.Placeholder\"])\"\n           value=\"@Context.SearchText\"\n           @oninput=\"HandleInput\"\n           @attributes=\"AdditionalAttributes\" />\n</div>\n\n@code {\n    [CascadingParameter] public Command.CommandContext Context { get; set; } = default!;\n    [Parameter] public string? Placeholder { get; set; }\n    [Parameter] public string? Class { get; set; }\n    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }\n\n    private string CssClass => $\"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50 {Class}\".Trim();\n\n    private async Task HandleInput(ChangeEventArgs e)\n    {\n        await Context.OnSearch.InvokeAsync(e.Value?.ToString() ?? \"\");\n    }\n}\n"
    },
    {
      "path": "UI/Command/CommandItem.razor",
      "content": "@namespace Lumeo\n@implements IDisposable\n\n@if (IsVisible)\n{\n    <button type=\"button\" class=\"@CssClass\" @onclick=\"OnSelect\" @attributes=\"AdditionalAttributes\">\n        @ChildContent\n        @if (Shortcut is not null)\n        {\n            <span class=\"ml-auto flex items-center gap-0.5\">\n                @foreach (var part in Shortcut.Split('+'))\n                {\n                    <Kbd>@part.Trim()</Kbd>\n                }\n            </span>\n        }\n    </button>\n}\n\n@code {\n    [CascadingParameter] public Command.CommandContext? Context { get; set; }\n    [Parameter] public RenderFragment? ChildContent { get; set; }\n    [Parameter] public EventCallback OnSelect { get; set; }\n    [Parameter] public bool Disabled { get; set; }\n    [Parameter] public string? Shortcut { get; set; }\n    [Parameter] public string? FilterValue { get; set; }\n    [Parameter] public string? Class { get; set; }\n    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }\n\n    private readonly string _itemId = $\"cmd-item-{Guid.NewGuid():N}\";\n    private bool _registered;\n\n    private bool IsVisible => string.IsNullOrEmpty(Context?.SearchText)\n        || string.IsNullOrEmpty(FilterValue)\n        || FilterValue.Contains(Context.SearchText, StringComparison.OrdinalIgnoreCase);\n\n    private string CssClass => $\"relative flex w-full cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 {Class}\".Trim();\n\n    protected override void OnParametersSet()\n    {\n        // Keep the item registered with the Command context only while it's visible — this is what drives\n        // CommandEmpty to render exactly when every item has been filtered out.\n        if (IsVisible && !_registered)\n        {\n            Context?.RegisterItem(_itemId);\n            _registered = true;\n        }\n        else if (!IsVisible && _registered)\n        {\n            Context?.UnregisterItem(_itemId);\n            _registered = false;\n        }\n    }\n\n    public void Dispose()\n    {\n        if (_registered) Context?.UnregisterItem(_itemId);\n    }\n}\n"
    },
    {
      "path": "UI/Command/CommandList.razor",
      "content": "@namespace Lumeo\n\n<div class=\"@CssClass\" @attributes=\"AdditionalAttributes\">\n    @ChildContent\n</div>\n\n@code {\n    [Parameter] public RenderFragment? ChildContent { get; set; }\n    [Parameter] public string? Class { get; set; }\n    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }\n\n    private string CssClass => $\"max-h-[300px] overflow-y-auto overflow-x-hidden {Class}\".Trim();\n}\n"
    },
    {
      "path": "UI/Command/CommandSeparator.razor",
      "content": "@namespace Lumeo\n\n<div class=\"@CssClass\" role=\"none\" @attributes=\"AdditionalAttributes\"></div>\n\n@code {\n    [Parameter] public string? Class { get; set; }\n    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }\n\n    private string CssClass => $\"-mx-1 h-px bg-border {Class}\".Trim();\n}\n"
    }
  ],
  "slots": [
    {
      "name": "ChildContent",
      "owner": "Command",
      "type": "RenderFragment?",
      "description": null
    },
    {
      "name": "ChildContent",
      "owner": "CommandEmpty",
      "type": "RenderFragment?",
      "description": null
    },
    {
      "name": "ChildContent",
      "owner": "CommandGroup",
      "type": "RenderFragment?",
      "description": null
    },
    {
      "name": "ChildContent",
      "owner": "CommandItem",
      "type": "RenderFragment?",
      "description": null
    },
    {
      "name": "ChildContent",
      "owner": "CommandList",
      "type": "RenderFragment?",
      "description": null
    }
  ],
  "serviceDependencies": [
    {
      "service": "ILumeoLocalizer",
      "namespace": "Lumeo.Services.Localization"
    }
  ],
  "cascadingDependencies": [
    {
      "name": "Context",
      "type": "Command.CommandContext?",
      "required": false
    }
  ],
  "relatedComponents": [
    {
      "name": "CommandEmpty",
      "reason": "sub-component"
    },
    {
      "name": "CommandGroup",
      "reason": "sub-component"
    },
    {
      "name": "CommandInput",
      "reason": "sub-component"
    },
    {
      "name": "CommandItem",
      "reason": "sub-component"
    },
    {
      "name": "CommandList",
      "reason": "sub-component"
    },
    {
      "name": "CommandSeparator",
      "reason": "sub-component"
    },
    {
      "name": "Kbd",
      "reason": "used internally"
    }
  ],
  "keyboardInteractions": [],
  "tests": [
    "tests/Lumeo.Tests/Components/Command/CommandTests.cs"
  ],
  "mdSummary": "# Command\n\nCommand palette — keyboard-driven finder for actions.\n\n**Package:** `Lumeo` · **Category:** Overlay\n**Docs:** https://lumeo.nativ.sh/components/command\n\n## Parameters\n| Owner | Name | Type | Default | Description |\n|---|---|---|---|---|\n| Command | ChildContent | `RenderFragment?` | `` |  |\n| Command | Class | `string?` | `` |  |\n| Command | AdditionalAttributes | `Dictionary<string, object>?` | `` |  |\n| CommandEmpty | Context | `Command.CommandContext?` | `` |  |\n| CommandEmpty | ChildContent | `RenderFragment?` | `` |  |\n| CommandEmpty | Class | `string?` | `` |  |\n| CommandEmpty | AdditionalAttributes | `Dictionary<string, object>?` | `` |  |\n| CommandGroup | ChildContent | `RenderFragment?` | `` |  |\n| CommandGroup | Heading | `string?` | `` |  |\n| CommandGroup | Class | `string?` | `` |  |\n| CommandGroup | AdditionalAttributes | `Dictionary<string, object>?` | `` |  |\n| CommandInput | Context | `Command.CommandContext` | `default!` |  |\n| CommandInput | Placeholder | `string?` | `` |  |\n| CommandInput | Class | `string?` | `` |  |\n| CommandInput | AdditionalAttributes | `Dictionary<string, object>?` | `` |  |\n| CommandItem | Context | `Command.CommandContext?` | `` |  |\n| CommandItem | ChildContent | `RenderFragment?` | `` |  |\n| CommandItem | OnSelect | `EventCallback` | `` |  |\n| CommandItem | Disabled | `bool` | `` |  |\n| CommandItem | Shortcut | `string?` | `` |  |\n| CommandItem | FilterValue | `string?` | `` |  |\n| CommandItem | Class | `string?` | `` |  |\n| CommandItem | AdditionalAttributes | `Dictionary<string, object>?` | `` |  |\n| CommandList | ChildContent | `RenderFragment?` | `` |  |\n| CommandList | Class | `string?` | `` |  |\n| CommandList | AdditionalAttributes | `Dictionary<string, object>?` | `` |  |\n| CommandSeparator | Class | `string?` | `` |  |\n| CommandSeparator | AdditionalAttributes | `Dictionary<string, object>?` | `` |  |\n\n## Slots\n- `ChildContent` (Command) — RenderFragment slot\n- `ChildContent` (CommandEmpty) — RenderFragment slot\n- `ChildContent` (CommandGroup) — RenderFragment slot\n- `ChildContent` (CommandItem) — RenderFragment slot\n- `ChildContent` (CommandList) — RenderFragment slot\n\n## Events\n- (none)\n\n## Sub-components\n- `CommandEmpty`, `CommandGroup`, `CommandInput`, `CommandItem`, `CommandList`, `CommandSeparator`\n\n## Cascading values it expects\n- `Context` (`Command.CommandContext?`)\n\n## Services it injects\n- `ILumeoLocalizer` (Lumeo.Services.Localization)\n\n## Keyboard\n—\n\n## Example\n```razor\n<Command />\n```\n\n## CSS variables\n`--color-accent`, `--color-accent-foreground`, `--color-border`, `--color-foreground`, `--color-muted`, `--color-muted-foreground`, `--color-popover`, `--color-popover-foreground`, `--radius`\n\n## Files\n- `UI/Command/Command.razor`\n- `UI/Command/CommandEmpty.razor`\n- `UI/Command/CommandGroup.razor`\n- `UI/Command/CommandInput.razor`\n- `UI/Command/CommandItem.razor`\n- `UI/Command/CommandList.razor`\n- `UI/Command/CommandSeparator.razor`\n"
}