{
  "package": "AndersonN.Omni.Blazor",
  "repository": "https://github.com/afernandes/Omni.Blazor",
  "count": 206,
  "components": [
    {
      "name": "OmniAiConversation",
      "category": "Ai",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Drop-in AI chat: binds to an OmniChatClient (which wraps any IChatClient) and composes the AI primitives — OmniMessage/OmniStreamingText for turns, OmniPromptInput for the composer.",
      "source": "src/Omni.Blazor.Ai/Components/Ai/OmniAiConversation.razor",
      "parameters": [
        {
          "name": "AssistantInitials",
          "kind": "parameter",
          "type": "string",
          "default": "AI",
          "required": false,
          "summary": "Avatar initials for assistant turns. Default \"AI\"."
        },
        {
          "name": "AssistantName",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Author name shown above assistant turns when ShowAuthor is on."
        },
        {
          "name": "Client",
          "kind": "parameter",
          "type": "OmniChatClient",
          "required": true,
          "summary": "The conversation orchestrator (wraps your IChatClient). Required."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disable the composer (e.g. while offline). Streaming auto-disables it too."
        },
        {
          "name": "EmptyContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Shown in the log while the conversation is empty."
        },
        {
          "name": "HeaderContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional header slot (title, clear button, model picker — you own it)."
        },
        {
          "name": "LogLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Conversation",
          "required": false,
          "summary": "Accessible label for the message log. Default \"Conversation\"."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder for the composer."
        },
        {
          "name": "SendLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Send",
          "required": false,
          "summary": "Accessible label for the send button. Default \"Send\"."
        },
        {
          "name": "ShowAuthor",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Show the author name above each message. Default false."
        },
        {
          "name": "UserInitials",
          "kind": "parameter",
          "type": "string",
          "default": "U",
          "required": false,
          "summary": "Avatar initials for user turns. Default \"U\"."
        },
        {
          "name": "UserName",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Author name shown above user turns when ShowAuthor is on."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCitation",
      "category": "Ai",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Inline source citation badge ([n]) for AI answers — links to the reference and exposes the title/snippet on hover and to screen readers.",
      "source": "src/Omni.Blazor/Components/Ai/OmniCitation.razor",
      "parameters": [
        {
          "name": "Index",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Reference number rendered as [n] unless Text overrides it."
        },
        {
          "name": "Snippet",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional excerpt appended to the tooltip."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the displayed label (default is [Index])."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Source title, shown in the tooltip and the accessible name."
        },
        {
          "name": "Url",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Source URL. When set the badge becomes a link opening in a new tab."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMessage",
      "category": "Ai",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single chat message (user / assistant / system) with avatar, author and content (Markdown or streaming via OmniStreamingText), plus a footer slot for citations, reasoning or actions.",
      "source": "src/Omni.Blazor/Components/Ai/OmniMessage.razor",
      "parameters": [
        {
          "name": "Author",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Display name shown above the content."
        },
        {
          "name": "AvatarContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom avatar markup; overrides the default OmniAvatar."
        },
        {
          "name": "AvatarInitials",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Avatar initials when no image is set."
        },
        {
          "name": "AvatarUrl",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Avatar image URL (falls back to AvatarInitials)."
        },
        {
          "name": "Content",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Message text, rendered as Markdown via OmniStreamingText when no ChildContent is given."
        },
        {
          "name": "Footer",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Footer slot for citations (OmniCitation), reasoning (OmniThinkingBlock) or actions."
        },
        {
          "name": "Role",
          "kind": "parameter",
          "type": "MessageRole",
          "enumValues": [
            {
              "name": "User",
              "summary": "Message from the end user."
            },
            {
              "name": "Assistant",
              "summary": "Message from the AI assistant (default)."
            },
            {
              "name": "System",
              "summary": "System / instruction message."
            }
          ],
          "default": "Assistant",
          "required": false,
          "summary": "Who sent the message — drives the layout/styling. Default Assistant."
        },
        {
          "name": "Streaming",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, the content shows the streaming caret (assistant still typing)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPromptInput",
      "category": "Ai",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Ai/OmniPromptInput.razor",
      "parameters": [
        {
          "name": "Actions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Extra action controls rendered left of the send button (e.g. a voice button)."
        },
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for the textarea (falls back to Placeholder)."
        },
        {
          "name": "MaxLength",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Optional maximum length; when set the counter shows count/max."
        },
        {
          "name": "OnSend",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Fired with the prompt text when the user sends (Ctrl/Cmd+Enter or the send button)."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder shown in the empty composer."
        },
        {
          "name": "Rows",
          "kind": "parameter",
          "type": "int",
          "default": "3",
          "required": false,
          "summary": "Initial visible rows of the textarea. Default 3."
        },
        {
          "name": "SendLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Send",
          "required": false,
          "summary": "Accessible label for the send button. Default \"Send\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniStreamingText",
      "category": "Ai",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Renders an assistant response as it streams in — accumulating Markdown (or plain text) with a blinking caret while Streaming is true.",
      "source": "src/Omni.Blazor/Components/Ai/OmniStreamingText.razor",
      "parameters": [
        {
          "name": "Caret",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the blinking caret while streaming. Default true."
        },
        {
          "name": "Markdown",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Render Text as Markdown (default) or as plain text."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional text shown while streaming before any content has arrived (e.g. \"Thinking…\")."
        },
        {
          "name": "Streaming",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, shows the blinking caret and marks the region aria-busy for screen readers."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "The accumulated response text. Update it as tokens arrive to stream the answer in."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSuggestionChips",
      "category": "Ai",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A row of clickable suggestion chips (follow-up questions / quick replies) for an AI conversation.",
      "source": "src/Omni.Blazor/Components/Ai/OmniSuggestionChips.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Suggestions",
          "required": false,
          "summary": "Accessible label for the chip group. Default \"Suggestions\"."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon name shown on every suggestion chip."
        },
        {
          "name": "OnSelect",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Fired with the chosen suggestion's text when a chip is clicked."
        },
        {
          "name": "Suggestions",
          "kind": "parameter",
          "type": "IEnumerable<string>",
          "required": false,
          "summary": "The suggestion labels to render as chips. Each fires OnSelect with its text."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniThinkingBlock",
      "category": "Ai",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Collapsible reasoning / \"thinking\" block for AI answers — collapsed by default; expand to reveal the model's chain of thought or tool steps.",
      "source": "src/Omni.Blazor/Components/Ai/OmniThinkingBlock.razor",
      "parameters": [
        {
          "name": "Expanded",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Expanded state; supports two-way binding via ExpandedChanged. Default collapsed."
        },
        {
          "name": "ExpandedChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Fired when the block expands or collapses, carrying the new state."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "default": "Reasoning",
          "required": false,
          "summary": "Toggle label. Default \"Reasoning\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniButton",
      "category": "Buttons",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "The library's base button: leading/trailing icons, variants, sizes, block, icon-only and loading states.",
      "source": "src/Omni.Blazor/Components/Buttons/OmniButton.razor",
      "parameters": [
        {
          "name": "Block",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Stretches the button to full container width. Default false."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disables the button (also disabled while Loading). Default false."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Name of the leading OmniIcon shown before the label."
        },
        {
          "name": "IconOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Renders a square icon-only button (no label spacing). Default false."
        },
        {
          "name": "Loading",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, renders an inline OmniSpinner in place of the leading icon, disables click and sets aria-busy=\"true\". Width is preserved so the surrounding layout doesn't shift."
        },
        {
          "name": "LoadingText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional alternate label shown while Loading is true."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Click handler; not invoked while Disabled or Loading."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Button size (Sm/Md/Lg/Xl). Default Md."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label text, rendered when no ChildContent is provided."
        },
        {
          "name": "TrailingIcon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Name of the trailing OmniIcon shown after the label."
        },
        {
          "name": "Type",
          "kind": "parameter",
          "type": "string",
          "default": "button",
          "required": false,
          "summary": "The native type attribute (button/submit/reset). Default \"button\"."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Visual variant (Primary/Ghost/Danger/Link). Default Default."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniFab",
      "category": "Buttons",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Floating Action Button (FAB) — botão circular ancorado num canto da viewport pra ação primária de uma tela.",
      "source": "src/Omni.Blazor/Components/Buttons/OmniFab.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label custom. Fallback: Title → Text."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "plus",
          "required": false,
          "summary": "Ícone do FAB. Default \"plus\" (ação \"criar novo\")."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false
        },
        {
          "name": "Position",
          "kind": "parameter",
          "type": "FabPosition",
          "enumValues": [
            {
              "name": "BottomRight",
              "summary": "Canto inferior direito (padrão Material Design)."
            },
            {
              "name": "BottomLeft",
              "summary": "Canto inferior esquerdo."
            },
            {
              "name": "TopRight",
              "summary": "Canto superior direito."
            },
            {
              "name": "TopLeft",
              "summary": "Canto superior esquerdo."
            },
            {
              "name": "BottomCenter",
              "summary": "Centro inferior (apps mobile com bottom-nav central)."
            },
            {
              "name": "Static",
              "summary": "Sem posicionamento fixed/absolute — flui no documento. Use quando o FAB vive dentro de um container customizado já posicionado."
            }
          ],
          "default": "BottomRight",
          "required": false,
          "summary": "Canto da viewport onde o FAB ancora. Default BottomRight."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Lg",
          "required": false,
          "summary": "Tamanho. Default Lg — FAB é proeminente por convenção."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto opcional. Se setado, renderiza Extended FAB (pill alongado). Vazio = FAB circular icon-only (clássico Material)."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Tooltip. Use sempre — FAB icon-only sem tooltip é a11y ruim."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Primary",
          "required": false,
          "summary": "Variant do botão. Default Primary (cor accent — chama atenção)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniFabMenu",
      "category": "Buttons",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "FAB com menu expansível — clique no botão principal pra mostrar/esconder itens (OmniFabMenuItem).",
      "source": "src/Omni.Blazor/Components/Buttons/OmniFabMenu.razor",
      "parameters": [
        {
          "name": "Animation",
          "kind": "parameter",
          "type": "FabMenuAnimation",
          "enumValues": [
            {
              "name": "Stagger",
              "summary": "Pop-in com escala 0.4→1 + leve translateY + cascade staggered. Padrão Material Design (\"spring out\" feel). Default."
            },
            {
              "name": "Linear",
              "summary": "Fade simples (opacity 0→1) sem scale nem translate. Mais rápido e sutil — equivalente ao animation linear do Radzen."
            },
            {
              "name": "None",
              "summary": "Sem animação. Items aparecem instantaneamente. Use em UIs density-críticas ou pra usuários com prefers-reduced-motion."
            }
          ],
          "default": "Stagger",
          "required": false,
          "summary": "Modo de animação de abertura. Default Stagger (pop-in cascading, padrão Material). Linear = fade simples estilo Radzen. None = sem animação."
        },
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label do grupo. Use pra nomear semanticamente o speed dial."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false
        },
        {
          "name": "CloseOnEsc",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Fecha o menu quando o user pressiona Escape. Default true."
        },
        {
          "name": "CloseOnItemClick",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Fecha o menu quando um OmniFabMenuItem filho é clicado. Default true — comportamento usual de speed dial."
        },
        {
          "name": "CloseOnOutsideClick",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Fecha o menu quando o user clica fora dele. Default true."
        },
        {
          "name": "Direction",
          "kind": "parameter",
          "type": "FabMenuDirection",
          "enumValues": [
            {
              "name": "Up",
              "summary": "Itens expandem PRA CIMA do FAB. Use com Position=Bottom*."
            },
            {
              "name": "Down",
              "summary": "Itens expandem PRA BAIXO do FAB. Use com Position=Top*."
            },
            {
              "name": "Left",
              "summary": "Itens expandem PRA ESQUERDA do FAB (FAB ancorado à direita, items entram na tela). Use com Position=BottomRight/TopRight."
            },
            {
              "name": "Right",
              "summary": "Itens expandem PRA DIREITA do FAB (FAB ancorado à esquerda, items entram na tela). Use com Position=BottomLeft/TopLeft."
            }
          ],
          "default": "Up",
          "required": false,
          "summary": "Direção em que os items se expandem. Default Up (combina com posições Bottom*)."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "plus",
          "required": false,
          "summary": "Ícone do FAB quando o menu está fechado. Default \"plus\"."
        },
        {
          "name": "IsOpen",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Two-way bound. Pode ser controlado externamente."
        },
        {
          "name": "IsOpenChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false
        },
        {
          "name": "OpenIcon",
          "kind": "parameter",
          "type": "string",
          "default": "x",
          "required": false,
          "summary": "Ícone do FAB quando o menu está aberto. Default \"x\" (padrão Material — close icon indica \"agora fecha\")."
        },
        {
          "name": "OpenTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Tooltip quando aberto. Default \"Fechar menu\"."
        },
        {
          "name": "Position",
          "kind": "parameter",
          "type": "FabPosition",
          "enumValues": [
            {
              "name": "BottomRight",
              "summary": "Canto inferior direito (padrão Material Design)."
            },
            {
              "name": "BottomLeft",
              "summary": "Canto inferior esquerdo."
            },
            {
              "name": "TopRight",
              "summary": "Canto superior direito."
            },
            {
              "name": "TopLeft",
              "summary": "Canto superior esquerdo."
            },
            {
              "name": "BottomCenter",
              "summary": "Centro inferior (apps mobile com bottom-nav central)."
            },
            {
              "name": "Static",
              "summary": "Sem posicionamento fixed/absolute — flui no documento. Use quando o FAB vive dentro de um container customizado já posicionado."
            }
          ],
          "default": "BottomRight",
          "required": false,
          "summary": "Canto da viewport onde o FAB ancora. Default BottomRight."
        },
        {
          "name": "ShowBackdrop",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Mostra um backdrop semi-transparente que cobre a tela quando o menu está aberto. Default false — speed dial clássico não usa, mas em mobile pode focar a atenção."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Lg",
          "required": false,
          "summary": "Tamanho. Default Lg."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Tooltip quando fechado. Default \"Abrir menu\"."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Primary",
          "required": false,
          "summary": "Variant do FAB. Default Primary."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniFabMenuItem",
      "category": "Buttons",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Item dentro de um OmniFabMenu — botão circular menor com label opcional ao lado (padrão Material: tooltip-style label flutuante).",
      "source": "src/Omni.Blazor/Components/Buttons/OmniFabMenuItem.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label. Fallback: Title → Label."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "circle",
          "required": true,
          "summary": "Ícone do item. Obrigatório (FAB items são icon-first)."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label flutuante ao lado do botão. Padrão Material — chip pequeno com fundo opaco, visível só quando o menu está aberto."
        },
        {
          "name": "LabelPosition",
          "kind": "parameter",
          "type": "FabMenuItemLabelPosition",
          "enumValues": [
            {
              "name": "Auto",
              "summary": "Decide automaticamente baseado na direção do menu pai: menu Up/Down = label à esquerda (canto direito) ou à direita (canto esquerdo); menu Left/Right = sem label (espaço já ocupado pelos próprios items)."
            },
            {
              "name": "Left",
              "summary": "Label sempre à esquerda do botão."
            },
            {
              "name": "Right",
              "summary": "Label sempre à direita do botão."
            },
            {
              "name": "None",
              "summary": "Sem label visível (usa só tooltip nativo via Title)."
            }
          ],
          "default": "Auto",
          "required": false,
          "summary": "Posição do label em relação ao botão. Default Auto — segue a direção do menu (Left/Right) ou esconde (Up/Down)."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho. Default Md — items são menores que o FAB principal."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Tooltip nativo. Fallback: Label."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Variant do botão interno. Default Default — neutro, contrasta com o FAB principal (Primary)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniScrollToTopButton",
      "category": "Buttons",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Botão \"Voltar ao topo\" auto-show/hide baseado em scroll position.",
      "source": "src/Omni.Blazor/Components/Buttons/OmniScrollToTopButton.razor",
      "parameters": [
        {
          "name": "Hidden",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Force-hide externo (override do auto). Default false."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "arrow-up",
          "required": false,
          "summary": "Ícone do botão. Default \"arrow-up\"."
        },
        {
          "name": "Position",
          "kind": "parameter",
          "type": "FabPosition",
          "enumValues": [
            {
              "name": "BottomRight",
              "summary": "Canto inferior direito (padrão Material Design)."
            },
            {
              "name": "BottomLeft",
              "summary": "Canto inferior esquerdo."
            },
            {
              "name": "TopRight",
              "summary": "Canto superior direito."
            },
            {
              "name": "TopLeft",
              "summary": "Canto superior esquerdo."
            },
            {
              "name": "BottomCenter",
              "summary": "Centro inferior (apps mobile com bottom-nav central)."
            },
            {
              "name": "Static",
              "summary": "Sem posicionamento fixed/absolute — flui no documento. Use quando o FAB vive dentro de um container customizado já posicionado."
            }
          ],
          "default": "BottomRight",
          "required": false,
          "summary": "Canto da viewport. Default BottomRight."
        },
        {
          "name": "ScrollBehavior",
          "kind": "parameter",
          "type": "ScrollBehavior",
          "enumValues": [
            {
              "name": "Auto",
              "summary": "Comportamento padrão do navegador."
            },
            {
              "name": "Smooth",
              "summary": "Scroll animado/suave."
            },
            {
              "name": "Instant",
              "summary": "Salto instantâneo, sem animação."
            }
          ],
          "default": "Smooth",
          "required": false,
          "summary": "Comportamento de scroll ao clicar. Smooth (default) anima; Auto/Instant salta direto."
        },
        {
          "name": "ScrollContainerSelector",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Selector CSS do container scrollável. null (default) auto-detecta (o mesmo \"scroll root\" usado por ScrollToTopAsync)."
        },
        {
          "name": "ShowAfterPercent",
          "kind": "parameter",
          "type": "double",
          "required": false,
          "summary": "Fração (0.0–1.0) de scroll percorrido pra mostrar. Quando setado, sobrescreve ShowAfterPx. Ex: 0.15 = mostra após 15%."
        },
        {
          "name": "ShowAfterPx",
          "kind": "parameter",
          "type": "double",
          "default": "200",
          "required": false,
          "summary": "Quantos pixels scrollados pra começar a mostrar. Default 200. Ignorado se ShowAfterPercent for setado."
        },
        {
          "name": "ShowProgress",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Mostra anel de progresso (SVG) ao redor do ícone indicando quanto da página foi scrollada (0% no topo → 100% no final). Default false."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Lg",
          "required": false,
          "summary": "Tamanho. Default Lg."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Tooltip + aria-label. Default \"Voltar ao topo\"."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Primary",
          "required": false,
          "summary": "Variant do botão. Default Primary."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSocialButton",
      "category": "Buttons",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "External-auth provider button (Google, Microsoft, Apple, GitHub, Facebook, Passkey).",
      "source": "src/Omni.Blazor/Components/Buttons/OmniSocialButton.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label (defaults to the full text even when Compact)."
        },
        {
          "name": "Block",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Stretch to full width."
        },
        {
          "name": "Compact",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Icon-only (no label) — for a compact provider row."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disable the button."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Click handler."
        },
        {
          "name": "Provider",
          "kind": "parameter",
          "type": "SocialProvider",
          "enumValues": [
            {
              "name": "Google",
              "summary": "Sign in with Google."
            },
            {
              "name": "Microsoft",
              "summary": "Sign in with Microsoft."
            },
            {
              "name": "Apple",
              "summary": "Sign in with Apple."
            },
            {
              "name": "GitHub",
              "summary": "Sign in with GitHub."
            },
            {
              "name": "Facebook",
              "summary": "Sign in with Facebook."
            },
            {
              "name": "Passkey",
              "summary": "Sign in with a passkey (WebAuthn)."
            }
          ],
          "default": "Google",
          "required": false,
          "summary": "Which provider's brand mark + label to render."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Override the button label (default \"Continuar com {provider}\")."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSplitButton",
      "category": "Buttons",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Split button: ação primária à esquerda + chevron de dropdown à direita.",
      "source": "src/Omni.Blazor/Components/Buttons/OmniSplitButton.razor",
      "parameters": [
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Desabilita ambos os botões."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Ícone do botão primário."
        },
        {
          "name": "Loading",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Loading state — desabilita ambos e mostra spinner no primário."
        },
        {
          "name": "LoadingText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto alternativo do botão primário enquanto Loading."
        },
        {
          "name": "MenuAlignEnd",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Alinha o popover ao FIM (direita) do chevron — extende para a esquerda embaixo do conjunto (primário + chevron). Útil quando o SplitButton está perto da borda direita da tela e o menu padrão (alinhado à esquerda do chevron) sairia da viewport. Default false."
        },
        {
          "name": "MenuAriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label do chevron. Default \"Mais opções\"."
        },
        {
          "name": "MenuPosition",
          "kind": "parameter",
          "type": "PopoverPosition",
          "enumValues": [
            {
              "name": "Top",
              "summary": "Acima do alvo."
            },
            {
              "name": "Bottom",
              "summary": "Abaixo do alvo."
            },
            {
              "name": "Left",
              "summary": "À esquerda do alvo."
            },
            {
              "name": "Right",
              "summary": "À direita do alvo."
            }
          ],
          "default": "Bottom",
          "required": false,
          "summary": "Posição do popover. Default Bottom."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Click no botão primário (ação default)."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho (compartilhado)."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto do botão primário."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Variante visual (compartilhada por ambos os botões)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniToggleButton",
      "category": "Buttons",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Botão com estado liga/desliga (pressed/unpressed).",
      "source": "src/Omni.Blazor/Components/Buttons/OmniToggleButton.razor",
      "parameters": [
        {
          "name": "Active",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Estado pressed (true) / unpressed (false). Two-way: @bind-Active."
        },
        {
          "name": "ActiveChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Desabilita interação."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Ícone antes do texto."
        },
        {
          "name": "IconOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Renderiza só o ícone (sem texto). Bom para toolbars."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Callback de click adicional (além do toggle automático)."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto do botão."
        },
        {
          "name": "TrailingIcon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Ícone após o texto."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "ToggleVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Superfície neutra padrão."
            },
            {
              "name": "Primary",
              "summary": "Estilo da ação primária."
            },
            {
              "name": "Accent",
              "summary": "Cor accent do tema."
            },
            {
              "name": "Ghost",
              "summary": "Transparente — fundo só quando ativo/hover."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Variante visual quando ativo. Default = accent suave."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniChat",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "OmniChat — self-contained chat UI (RadzenChat port): header (title + roster + clear), a scrollable message list (avatar + bubble, aligned by author), and a compose box (Enter sends, Shift+Enter newline).",
      "source": "src/Omni.Blazor/Components/Data/Chat/OmniChat.razor",
      "parameters": [
        {
          "name": "ChatCleared",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Fired when the chat is cleared."
        },
        {
          "name": "ClearButtonText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label for the clear button. Default \"Limpar\"."
        },
        {
          "name": "CurrentUserId",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "The id of the current user — their messages align right; others' align left."
        },
        {
          "name": "DateSeparatorFormat",
          "kind": "parameter",
          "type": "string",
          "default": "D",
          "required": false,
          "summary": "Date format for the day separators. Default \"D\"."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disables the whole chat (compose box, send, clear). Default false."
        },
        {
          "name": "EmptyMessage",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when there are no messages. Default \"Nenhuma mensagem ainda. Comece a conversa!\"."
        },
        {
          "name": "EmptyTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom empty-state content. Overrides EmptyMessage when set."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "default": "480px",
          "required": false,
          "summary": "Height of the chat (CSS). Default 480px."
        },
        {
          "name": "InputLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Mensagem",
          "required": false,
          "summary": "Accessible label (aria-label) for the compose textarea — describes the field, not the send action. Default \"Mensagem\"."
        },
        {
          "name": "MaxMessages",
          "kind": "parameter",
          "type": "int",
          "default": "200",
          "required": false,
          "summary": "Max messages kept; older ones are trimmed once exceeded. Default 200."
        },
        {
          "name": "MaxVisibleUsers",
          "kind": "parameter",
          "type": "int",
          "default": "5",
          "required": false,
          "summary": "Max roster avatars shown before a \"+N\" overflow badge. Default 5."
        },
        {
          "name": "MessageAdded",
          "kind": "event",
          "type": "EventCallback<OmniChatMessage>",
          "required": false,
          "summary": "Fired whenever a message is appended to the list."
        },
        {
          "name": "MessageSent",
          "kind": "event",
          "type": "EventCallback<OmniChatMessage>",
          "required": false,
          "summary": "Fired when the local user sends a message."
        },
        {
          "name": "MessageTemplate",
          "kind": "slot",
          "type": "RenderFragment<OmniChatMessage>",
          "contextType": "OmniChatMessage",
          "required": false,
          "summary": "Custom render template for a message bubble. Receives the OmniChatMessage."
        },
        {
          "name": "Messages",
          "kind": "parameter",
          "type": "IEnumerable<OmniChatMessage>",
          "required": false,
          "summary": "The messages to render (two-way via MessagesChanged)."
        },
        {
          "name": "MessagesChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<OmniChatMessage>>",
          "required": false,
          "summary": "Fired with the new list whenever messages change (consumer assigns it back)."
        },
        {
          "name": "MessagesLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Mensagens",
          "required": false,
          "summary": "Accessible label (aria-label) for the message log region. Default \"Mensagens\"."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Compose-box placeholder. Default \"Digite uma mensagem...\"."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Read-only mode — messages render but the compose box is disabled. Default false."
        },
        {
          "name": "RenderMarkdown",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Render bubble content as Markdown (default) or plain text."
        },
        {
          "name": "SendLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label / tooltip for the send button. Default \"Enviar\"."
        },
        {
          "name": "ShowClearButton",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Shows the \"clear chat\" button in the header. Default true."
        },
        {
          "name": "ShowDateSeparator",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Inserts a date separator between messages from different days. Default true."
        },
        {
          "name": "ShowTypingIndicator",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Shows a typing indicator when remote users are typing (see SetUserTypingAsync). Default false."
        },
        {
          "name": "ShowUserNames",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Shows each (other) user's name above their bubble. Default true."
        },
        {
          "name": "ShowUsers",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Shows the participant roster (avatars) in the header. Default true."
        },
        {
          "name": "TimestampFormat",
          "kind": "parameter",
          "type": "string",
          "default": "HH:mm",
          "required": false,
          "summary": "Time format for each message's timestamp. Default \"HH:mm\"."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Header title text. Empty hides the title."
        },
        {
          "name": "TypingChanged",
          "kind": "event",
          "type": "EventCallback<OmniChatTypingEventArgs>",
          "required": false,
          "summary": "Fired when the local user starts/stops typing — relay to remote peers."
        },
        {
          "name": "TypingTimeout",
          "kind": "parameter",
          "type": "int",
          "default": "1500",
          "required": false,
          "summary": "Idle time (ms) after the last keystroke before the local \"typing\" state clears. Default 1500."
        },
        {
          "name": "Users",
          "kind": "parameter",
          "type": "IEnumerable<OmniChatUser>",
          "required": false,
          "summary": "The chat participants (avatars/names/colors)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDataFilter",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "OmniDataFilter — a typed visual query builder.",
      "source": "src/Omni.Blazor/Components/Data/DataFilter/OmniDataFilter.razor",
      "parameters": [
        {
          "name": "AddFilterText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the \"add condition\" button. Default \"Adicionar condição\"."
        },
        {
          "name": "AddGroupText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the \"add group\" button. Default \"Adicionar grupo\"."
        },
        {
          "name": "AllowGroups",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Allow nested groups (the \"add group\" button). Default true."
        },
        {
          "name": "AllowSqlMode",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show the Visual/SQL toggle, enabling an editable SQL view of the filter. Default false."
        },
        {
          "name": "AndOperatorText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the AND logic toggle. Default \"E\"."
        },
        {
          "name": "ApplyFilterText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the apply button (shown when Auto is false). Default \"Aplicar\"."
        },
        {
          "name": "ApplySqlText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the \"apply SQL to filter\" button. Default \"Aplicar ao filtro\"."
        },
        {
          "name": "Auto",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Re-filter and raise Filter on every change. Default true."
        },
        {
          "name": "ClearFilterText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the \"clear all\" button. Default \"Limpar tudo\"."
        },
        {
          "name": "CopyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the copy button. Default \"Copiar\"."
        },
        {
          "name": "Data",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "The items to filter."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disable the whole builder."
        },
        {
          "name": "FieldsLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label preceding the available-fields chips in SQL mode. Default \"Campos\"."
        },
        {
          "name": "Filter",
          "kind": "event",
          "type": "EventCallback<IEnumerable<TItem>>",
          "required": false,
          "summary": "Raised with the filtered items (Auto mode, or when ApplyFilterAsync runs)."
        },
        {
          "name": "Logic",
          "kind": "parameter",
          "type": "FilterLogic",
          "enumValues": [
            {
              "name": "And",
              "summary": "Todas as condições devem ser verdadeiras (E)."
            },
            {
              "name": "Or",
              "summary": "Ao menos uma condição deve ser verdadeira (OU)."
            }
          ],
          "required": false,
          "summary": "Logic combining the root rules. Two-way bindable."
        },
        {
          "name": "LogicChanged",
          "kind": "event",
          "type": "EventCallback<FilterLogic>",
          "required": false,
          "summary": "Fired when the root logic changes (paired with Logic for two-way binding)."
        },
        {
          "name": "OrOperatorText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the OR logic toggle. Default \"OU\"."
        },
        {
          "name": "Query",
          "kind": "parameter",
          "type": "DataFilterQuery<TItem>",
          "required": false,
          "summary": "Immutable, versioned query snapshot."
        },
        {
          "name": "QueryChanged",
          "kind": "event",
          "type": "EventCallback<DataFilterQuery<TItem>>",
          "required": false,
          "summary": "Raised with a fresh immutable query after a visual edit."
        },
        {
          "name": "RemoveFilterText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Title/aria-label of the remove-condition button. Default \"Remover\"."
        },
        {
          "name": "Rules",
          "kind": "parameter",
          "type": "List<OmniFilterRule>",
          "required": false,
          "summary": "Root list of rules. Two-way bindable."
        },
        {
          "name": "RulesChanged",
          "kind": "event",
          "type": "EventCallback<List<OmniFilterRule>>",
          "required": false,
          "summary": "Fired when the rule tree changes (paired with Rules for two-way binding)."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "DataFilterSchema<TItem>",
          "required": true,
          "summary": "Immutable strongly typed field schema used by the visual builder and query serialization."
        },
        {
          "name": "ShowSqlPreview",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show a read-only \"generated SQL\" disclosure under the visual builder. Default false."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "required": false,
          "summary": "Height/typography of every field (selects, inputs, date & list editors). Default Sm."
        },
        {
          "name": "SqlModeText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the SQL-mode toggle. Default \"SQL\"."
        },
        {
          "name": "SqlPlaceholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder of the SQL textarea. Default an example expression."
        },
        {
          "name": "SqlPreviewLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Summary label of the generated-SQL disclosure. Default \"SQL gerado\"."
        },
        {
          "name": "SqlValidText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Status text shown when the typed SQL is valid. Default \"SQL válido\"."
        },
        {
          "name": "ValuePlaceholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder of the condition value inputs. Default \"valor\"."
        },
        {
          "name": "ViewChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<TItem>>",
          "required": false,
          "summary": "Raised with the filtered items alongside Filter (binding-friendly)."
        },
        {
          "name": "VisualModeText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the visual-mode toggle. Default \"Visual\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDataFilterItem",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "OmniDataFilterItem — one node of an <OmniDataFilter> tree.",
      "source": "src/Omni.Blazor/Components/Data/DataFilter/OmniDataFilterItem.razor",
      "parameters": [
        {
          "name": "IsRoot",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "True for the top-level group (hides the remove button, no group border)."
        },
        {
          "name": "ParentRules",
          "kind": "parameter",
          "type": "List<OmniFilterRule>",
          "required": false,
          "summary": "The list that contains Rule (so it can remove itself). Null at the root."
        },
        {
          "name": "Rule",
          "kind": "parameter",
          "type": "OmniFilterRule",
          "required": true,
          "summary": "The rule this item renders (condition or group)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDataGrid",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Rich data grid with sorting, filtering, grouping, editing, virtualization and optional hierarchical rows.",
      "source": "src/Omni.Blazor/Components/Data/OmniDataGrid.razor",
      "parameters": [
        {
          "name": "AllowColumnFilter",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Habilita uma linha de filtros por coluna abaixo do header. Só colunas com Filterable exibem o input."
        },
        {
          "name": "AllowColumnResize",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Lets the user resize columns by dragging the right edge of a header cell."
        },
        {
          "name": "AllowColumnVisibility",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the column visibility menu in the toolbar."
        },
        {
          "name": "AllowExport",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows an export action that streams the filtered dataset as a bounded CSV."
        },
        {
          "name": "AllowGrouping",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Enables row grouping. Shows a drop panel above the grid; drag a column's grip there (column must be Groupable) — or call GroupByAsync — to group rows by that column. Multiple columns nest."
        },
        {
          "name": "AllowMultiSelection",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Habilita uma coluna de checkbox à esquerda para seleção múltipla."
        },
        {
          "name": "AllowPaging",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Liga a paginação no rodapé. Default true. Ignorado quando Virtualize está ativo."
        },
        {
          "name": "AllowSearch",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Mostra o campo de busca textual na toolbar. Default false."
        },
        {
          "name": "AllowSorting",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Permite ordenar clicando no header das colunas Sortable. Default true."
        },
        {
          "name": "AutoCollapseGroupsThreshold",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Acima de quantos grupos de primeiro nível o agrupamento nasce COLAPSADO. Default 100. Sem isso, o primeiro render depois de arrastar uma coluna é sempre o conjunto inteiro aberto — agrupar 200 mil linhas por dia significa achatar as 200 mil de uma vez só para o usuário fechar tudo em seguida. Valores <= 0 desligam o auto-colapso."
        },
        {
          "name": "Children",
          "kind": "parameter",
          "type": "Func<TItem, IEnumerable<TItem>>",
          "required": false,
          "summary": "Synchronous child selector that enables hierarchy mode for in-memory trees."
        },
        {
          "name": "ChildrenProvider",
          "kind": "parameter",
          "type": "HierarchyChildrenProvider<TItem>",
          "required": false,
          "summary": "Asynchronous, cancellable child source that enables lazy hierarchy mode."
        },
        {
          "name": "CollapseText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for collapsing a hierarchy row."
        },
        {
          "name": "ColumnResized",
          "kind": "event",
          "type": "EventCallback<DataGridColumnResizedEventArgs>",
          "required": false,
          "summary": "Fired after a column is resized (drag of the header handle finished)."
        },
        {
          "name": "Columns",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Definição das colunas (<OmniDataGridColumn>). Registradas via cascading."
        },
        {
          "name": "Count",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override do total quando server-side (caso o consumidor não preencha TotalCount no resultado)."
        },
        {
          "name": "Data",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "Fonte de dados in-memory. Ignorado se DataProvider for setado. Filtro/ordenação/agrupamento são memoizados por referência e contagem: trocar a coleção ou acrescentar itens reprocessa sozinho; para itens MUTADOS no lugar (mesma coleção, mesma contagem), chame RefreshAsync()."
        },
        {
          "name": "DataProvider",
          "kind": "parameter",
          "type": "GridDataProvider<TItem>",
          "required": false,
          "summary": "Callback server-side. Quando setado, o DataGrid delega filter/sort/page ao consumidor. O retorno é a janela de items a renderizar + total count."
        },
        {
          "name": "DebounceMs",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Debounce (ms) entre keystrokes na busca antes de chamar DataProvider."
        },
        {
          "name": "DetailTemplate",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Template renderizado abaixo da linha quando ela está expandida."
        },
        {
          "name": "EditMode",
          "kind": "parameter",
          "type": "DataGridEditMode",
          "enumValues": [
            {
              "name": "None",
              "summary": "Edição desabilitada."
            },
            {
              "name": "Cell",
              "summary": "Edita uma célula por vez."
            },
            {
              "name": "Row",
              "summary": "Edita a linha inteira de uma vez."
            }
          ],
          "required": false,
          "summary": "Enables inline editing. Each column needs an EditTemplate to be editable."
        },
        {
          "name": "Embed",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "When true, renders without outer border/radius and stretches to fill its parent (flex:1 + min-height:0). Internal toolbar is hidden — render your own OmniPaneHeader/OmniPaneToolbar above."
        },
        {
          "name": "EmptyTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Slot custom para o estado vazio. Substitui o EmptyText quando setado. Permite ícone + título + CTA ricos."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto exibido quando não há registros. Default \"Nenhum registro encontrado.\"."
        },
        {
          "name": "ExpandMode",
          "kind": "parameter",
          "type": "ExpandMode",
          "enumValues": [
            {
              "name": "Single",
              "summary": "Só uma linha expandida por vez."
            },
            {
              "name": "Multi",
              "summary": "Várias linhas expandidas simultaneamente."
            }
          ],
          "required": false,
          "summary": "Single = apenas uma linha expandida por vez; Multi = quantas o usuário quiser."
        },
        {
          "name": "ExpandText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for expanding a hierarchy row."
        },
        {
          "name": "ExpandedKeys",
          "kind": "parameter",
          "type": "IReadOnlyCollection<object>",
          "required": false,
          "summary": "Externally controlled expanded key set. Replace the collection when updating it."
        },
        {
          "name": "ExpandedKeysChanged",
          "kind": "event",
          "type": "EventCallback<IReadOnlyCollection<object>>",
          "required": false,
          "summary": "Raised with an immutable snapshot after hierarchy expansion changes."
        },
        {
          "name": "ExportBatchSize",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Page size used while exporting through DataProvider."
        },
        {
          "name": "ExportFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised when an uncancelled export fails."
        },
        {
          "name": "ExportFilename",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome do arquivo gerado pelo export CSV. Default \"export.csv\"."
        },
        {
          "name": "ExportProvider",
          "kind": "parameter",
          "type": "GridExportProvider<TItem>",
          "required": false,
          "summary": "Optional streaming source used only by CSV export. When omitted, the grid pages through DataProvider or exports its in-memory source."
        },
        {
          "name": "ExportTruncated",
          "kind": "event",
          "type": "EventCallback<int>",
          "required": false,
          "summary": "Raised when an export reaches MaxExportRows."
        },
        {
          "name": "GroupLimitReachedText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Aviso exibido quando MaxGroups é atingido; {0} é o teto."
        },
        {
          "name": "GroupPanelText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder text shown in the (empty) group panel."
        },
        {
          "name": "Grouped",
          "kind": "event",
          "type": "EventCallback<IReadOnlyList<string>>",
          "required": false,
          "summary": "Fired whenever the grouping changes; carries the ordered grouped property names."
        },
        {
          "name": "HasChildren",
          "kind": "parameter",
          "type": "Func<TItem, bool>",
          "required": false,
          "summary": "Predicate indicating whether a hierarchy item can be expanded."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Altura do scroller. Obrigatória quando virtualize ativo (default 520px é aplicado automaticamente se não setado)."
        },
        {
          "name": "HideGroupedColumn",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Hides a column from the table once it is used as a grouping key (its value shows in the group header instead)."
        },
        {
          "name": "HierarchyAriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label used when the table is rendered as a tree grid."
        },
        {
          "name": "HierarchyLimitReachedText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Message displayed when the configured hierarchy row limit is reached."
        },
        {
          "name": "HierarchyLoadErrorText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Message displayed when lazy child loading fails."
        },
        {
          "name": "HierarchyLoadFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised when an uncancelled lazy hierarchy load fails."
        },
        {
          "name": "HierarchyRetryText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label for retrying a failed lazy hierarchy load."
        },
        {
          "name": "IndentSize",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Pixels of indentation per hierarchy level."
        },
        {
          "name": "InitiallyExpanded",
          "kind": "parameter",
          "type": "Func<TItem, bool>",
          "required": false,
          "summary": "Optional predicate applied once when the hierarchy source changes."
        },
        {
          "name": "KeySelector",
          "kind": "parameter",
          "type": "Func<TItem, object>",
          "required": false,
          "summary": "Stable unique key selector used by hierarchy expansion, cache and loading state."
        },
        {
          "name": "LoadingSkeleton",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true e LoadingTemplate não está setado, renderiza linhas de OmniSkeleton em vez do spinner — mais elegante para listas longas."
        },
        {
          "name": "LoadingTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Slot custom para o overlay de loading. Substitui o spinner default quando setado."
        },
        {
          "name": "MaxCachedItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum total lazy-loaded child items retained in the LRU cache."
        },
        {
          "name": "MaxCachedNodes",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum lazy-loaded parent nodes retained in the LRU cache."
        },
        {
          "name": "MaxChildrenPerNode",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum children retained from one lazy-load response."
        },
        {
          "name": "MaxConcurrentLoads",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum number of lazy child requests executed concurrently."
        },
        {
          "name": "MaxDepth",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum hierarchy depth traversed, protecting against cycles and pathological input."
        },
        {
          "name": "MaxExportRows",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Hard cap applied to every export, including custom streaming providers."
        },
        {
          "name": "MaxGroups",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Teto de nós de grupo montados numa passada (todos os níveis somados). Default 10.000. Agrupar por uma coluna quase-única — um id, um timestamp com segundos — renderia um grupo por linha, e a árvore de grupos passaria a custar mais que os próprios dados. Ao estourar, a árvore é cortada e a UI avisa, no mesmo desenho do MaxVisibleRows da hierarquia. Valores <= 0 são tratados como 1."
        },
        {
          "name": "MaxVisibleRows",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum hierarchy rows flattened before rendering or virtualization."
        },
        {
          "name": "OnRowClick",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Emitido quando uma linha é clicada (fora do modo edição)."
        },
        {
          "name": "OnRowCollapse",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Emitido quando uma linha é colapsada."
        },
        {
          "name": "OnRowExpand",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Emitido quando uma linha é expandida."
        },
        {
          "name": "OverscanCount",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Linhas extras renderizadas fora do viewport. Default 4."
        },
        {
          "name": "PageSize",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Quantidade de linhas por página. Default 10."
        },
        {
          "name": "PersistKey",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional stable local-storage key for automatic view-state restore. Column PropertyName values must be unique and stable. Null disables browser persistence."
        },
        {
          "name": "RowClass",
          "kind": "parameter",
          "type": "Func<TItem, string>",
          "required": false,
          "summary": "Função opcional que retorna classes CSS extras por linha — útil para destacar linhas específicas (ex: \"linha atual\", \"registro com pendência\"). Aplicado em conjunto com as classes internas (selecionado, edição, etc.)."
        },
        {
          "name": "RowHeight",
          "kind": "parameter",
          "type": "float",
          "required": false,
          "summary": "Altura fixa (px) por linha quando virtualize ativo. Default 44."
        },
        {
          "name": "RowUpdated",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Fired when the user confirms an inline edit (clicks check). Use to persist changes."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "DataGridSchema<TItem>",
          "required": false,
          "summary": "Optional immutable typed schema. Schema columns are rendered before declarative Columns and its structural feature defaults take precedence while supplied."
        },
        {
          "name": "SearchPlaceholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder do campo de busca. Default \"Buscar...\"."
        },
        {
          "name": "SelectedItems",
          "kind": "parameter",
          "type": "HashSet<TItem>",
          "required": false,
          "summary": "Itens selecionados. Quando setado pelo consumidor (via @bind-SelectedItems), o DataGrid usa essa referência diretamente."
        },
        {
          "name": "SelectedItemsChanged",
          "kind": "event",
          "type": "EventCallback<HashSet<TItem>>",
          "required": false,
          "summary": "Emitido quando a seleção muda. O argumento é o set atual."
        },
        {
          "name": "ShowAggregateRow",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Renderiza uma linha de agregação (<tfoot>) somando/contando/etc. colunas que definam Aggregate. Em modo server-side, valores vêm de Aggregates; client-side, calculados sobre o dataset filtrado completo (não só a página atual)."
        },
        {
          "name": "ShowGroupFooters",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Renders a per-group aggregate footer row (reuses each column's Aggregate). Requires aggregated columns."
        },
        {
          "name": "ToolbarContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Conteúdo extra na toolbar (entre a busca e os botões à direita)."
        },
        {
          "name": "ViewState",
          "kind": "parameter",
          "type": "DataGridViewState",
          "required": false,
          "summary": "Controlled view preferences. Replace the record instance when changing it; row data, selection and hierarchy expansion are intentionally outside this state."
        },
        {
          "name": "ViewStateChanged",
          "kind": "event",
          "type": "EventCallback<DataGridViewState>",
          "required": false,
          "summary": "Raised with a normalized snapshot after a user changes persisted view preferences."
        },
        {
          "name": "Virtualize",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Liga a virtualização do <tbody>: somente as linhas visíveis (e um overscan pequeno) são montadas no DOM. **Ignora AllowPaging** — paging e virtualize são mutuamente exclusivos. Requer Height definido (default 520px). Implementação via OmniVirtualize com SpacerElement=\"tr\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDataGridColumn",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Column definition for an <OmniDataGrid> — declares title, value selector, templates, sorting/filtering/aggregation/grouping/freezing behavior.",
      "source": "src/Omni.Blazor/Components/Data/OmniDataGridColumn.razor",
      "parameters": [
        {
          "name": "Aggregate",
          "kind": "parameter",
          "type": "AggregateFunction",
          "enumValues": [
            {
              "name": "Sum",
              "summary": "Soma dos valores."
            },
            {
              "name": "Average",
              "summary": "Média dos valores."
            },
            {
              "name": "Count",
              "summary": "Contagem de itens."
            },
            {
              "name": "Min",
              "summary": "Menor valor."
            },
            {
              "name": "Max",
              "summary": "Maior valor."
            }
          ],
          "required": false,
          "summary": "Função agregadora aplicada nesta coluna no footer (e em group footers)."
        },
        {
          "name": "AggregateFormat",
          "kind": "parameter",
          "type": "Func<object, string>",
          "required": false,
          "summary": "Formatador opcional do valor agregado (ex: v => $\"R$ {v:N2}\")."
        },
        {
          "name": "AggregateProperty",
          "kind": "parameter",
          "type": "Func<TItem, decimal>",
          "required": false,
          "summary": "Selector específico p/ agregação (default: usa Property)."
        },
        {
          "name": "CanHide",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether the user can hide this column via the visibility menu. Default true."
        },
        {
          "name": "EditTemplate",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Editor render fragment used when the row/cell is in edit mode. If null, the column is treated as read-only even when EditMode is active."
        },
        {
          "name": "FilterOperators",
          "kind": "parameter",
          "type": "FilterOperator[]",
          "required": false,
          "summary": "Override dos operadores oferecidos (default depende de FilterType)."
        },
        {
          "name": "FilterSelectOptions",
          "kind": "parameter",
          "type": "IEnumerable<object>",
          "required": false,
          "summary": "Opções para FilterType=Select."
        },
        {
          "name": "FilterType",
          "kind": "parameter",
          "type": "ColumnFilterType",
          "enumValues": [
            {
              "name": "Text",
              "summary": "Filtro de texto."
            },
            {
              "name": "Number",
              "summary": "Filtro numérico."
            },
            {
              "name": "Date",
              "summary": "Filtro de data."
            },
            {
              "name": "Boolean",
              "summary": "Filtro booleano (sim/não)."
            },
            {
              "name": "Select",
              "summary": "Filtro de seleção (lista de valores)."
            }
          ],
          "required": false,
          "summary": "Tipo de UI/operadores oferecidos. Default: Text."
        },
        {
          "name": "Filterable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Liga o filtro por coluna nesta coluna. Requer AllowColumnFilter no DataGrid."
        },
        {
          "name": "Frozen",
          "kind": "parameter",
          "type": "FrozenPosition",
          "enumValues": [
            {
              "name": "Left",
              "summary": "Congelada à esquerda."
            },
            {
              "name": "Right",
              "summary": "Congelada à direita."
            }
          ],
          "required": false,
          "summary": "Congela esta coluna no scroll horizontal. null = não congelada."
        },
        {
          "name": "GroupHierarchy",
          "kind": "parameter",
          "type": "IReadOnlyList<DateGroupInterval>",
          "required": false,
          "summary": "Desdobra esta coluna em vários níveis de agrupamento por data. Agrupar uma coluna de data pelo valor exato rende um grupo por linha — o instante nunca se repete —, então aqui se declara a granularidade de cada nível: GroupHierarchy=\"@DateGroupHierarchy.YearMonthDay\" dá Ano › Mês › Dia com um único arrasto. Um nível só (new[] { DateGroupInterval.Month }) agrupa por mês, sem hierarquia. null (padrão) mantém o agrupamento pelo valor exato, e itens cujo valor não é uma data caem num grupo vazio."
        },
        {
          "name": "Groupable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Permite arrastar esta coluna para a group zone do DataGrid."
        },
        {
          "name": "IsHierarchyAnchor",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca esta coluna como o \"âncora\" da hierarquia — receberá o chevron de expand/collapse + indentação por nível. Quando nenhuma coluna marca, o grid usa a primeira coluna visível."
        },
        {
          "name": "Property",
          "kind": "parameter",
          "type": "Func<TItem, object>",
          "required": false,
          "summary": "Selector for the column's raw value — used for cell text, sorting, and filtering."
        },
        {
          "name": "PropertyName",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome canônico da propriedade (usado para serializar em SortDescriptor, FilterDescriptor e GroupBy). Quando ausente, cai no Title. Em modo server-side é altamente recomendado definir explicitamente."
        },
        {
          "name": "Resizable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether this column can be resized when the grid has AllowColumnResize. Default true."
        },
        {
          "name": "Sortable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether clicking the header sorts by this column (requires the grid's AllowSorting). Default true."
        },
        {
          "name": "Template",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Custom cell render template. Receives the row item as @context. Falls back to the cell text."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TItem, string>",
          "required": false,
          "summary": "Selector for the displayed cell text. Overrides Property's ToString() when set."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Header text for this column."
        },
        {
          "name": "Visible",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Initial visibility. Toggled via the grid's column-visibility menu when AllowColumnVisibility is enabled."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "CSS width of the column (e.g. \"120px\"). Null = auto."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDataGridForm",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Coordinates a generated OmniDataGrid`1, detached OmniDataForm`1 drafts and cancellable CRUD persistence.",
      "source": "src/Omni.Blazor/Components/Data/OmniDataGridForm.razor",
      "parameters": [
        {
          "name": "ActionsFrozen",
          "kind": "parameter",
          "type": "FrozenPosition",
          "enumValues": [
            {
              "name": "Left",
              "summary": "Congelada à esquerda."
            },
            {
              "name": "Right",
              "summary": "Congelada à direita."
            }
          ],
          "required": false,
          "summary": "Optionally freezes the generated row-actions column on the left or right edge."
        },
        {
          "name": "ActionsMenuAriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for the row overflow-menu button."
        },
        {
          "name": "ActionsMenuIcon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional runtime icon override for the row overflow-menu button."
        },
        {
          "name": "ActionsMenuText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional visible label for the row overflow-menu button. The default is icon-only."
        },
        {
          "name": "ActionsResizable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Optional runtime override for the generated row-actions column resizer."
        },
        {
          "name": "ActionsWidth",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional runtime width override for the generated row-actions column."
        },
        {
          "name": "AllowCreate",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Allows the schema-defined create workflow. Default true."
        },
        {
          "name": "AllowDelete",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Allows the schema-defined delete workflow. Default true."
        },
        {
          "name": "AllowEdit",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Allows the schema-defined edit workflow. Default true."
        },
        {
          "name": "AllowReorder",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows move-up and move-down actions in local-list mode."
        },
        {
          "name": "ConfirmDiscardChanges",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Asks for confirmation before closing a modified generated editor. Default true."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables every generated operation and editor."
        },
        {
          "name": "EmptyTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom empty-state content."
        },
        {
          "name": "GuardNavigationWithUnsavedChanges",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Protects route changes and browser unload while the generated editor is modified. Default true."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IList<TItem>",
          "required": false,
          "summary": "Mutable local source. Use either Items or Provider, never both. Local create/edit/delete operations mutate this list only after validation succeeds."
        },
        {
          "name": "ItemsChanged",
          "kind": "event",
          "type": "EventCallback<IList<TItem>>",
          "required": false,
          "summary": "Raised after a local collection mutation."
        },
        {
          "name": "LoadingTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom DataGrid loading content."
        },
        {
          "name": "MaximumItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum local item count enforced before creation. Default unlimited."
        },
        {
          "name": "MaximumSelectedItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum items accepted in one bulk-action snapshot. Default 1,000."
        },
        {
          "name": "MinimumItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Minimum local item count enforced before deletion. Default zero."
        },
        {
          "name": "OperationCompleted",
          "kind": "event",
          "type": "EventCallback<DataGridFormOperationEventArgs<TItem, TKey>>",
          "required": false,
          "summary": "Raised after create, edit, delete or custom action success."
        },
        {
          "name": "OperationErrorTemplate",
          "kind": "slot",
          "type": "RenderFragment<DataGridFormOperationFailedEventArgs<TItem, TKey>>",
          "contextType": "DataGridFormOperationFailedEventArgs<TItem, TKey>",
          "required": false,
          "summary": "Custom renderer for the latest structured operation failure."
        },
        {
          "name": "OperationFailed",
          "kind": "event",
          "type": "EventCallback<DataGridFormOperationFailedEventArgs<TItem, TKey>>",
          "required": false,
          "summary": "Raised after a handled operation failure."
        },
        {
          "name": "PersistViewStateKey",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional stable local-storage key used to restore generated DataGrid preferences."
        },
        {
          "name": "Provider",
          "kind": "parameter",
          "type": "IDataGridFormProvider<TItem, TKey>",
          "required": false,
          "summary": "Cancellable server-side source and CRUD persistence provider."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Makes data read-only while preserving grid navigation and inspection."
        },
        {
          "name": "RenderEditorFormElement",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Renders the semantic editor form element. Disable when this component is embedded inside another form to avoid nested HTML forms. Default true."
        },
        {
          "name": "ReorderActionsPlacement",
          "kind": "parameter",
          "type": "DataGridFormActionPlacement",
          "enumValues": [
            {
              "name": "Inline",
              "summary": "Renders the action as a button directly in the actions column."
            },
            {
              "name": "Menu",
              "summary": "Renders the action in the row's overflow menu."
            },
            {
              "name": "Auto",
              "summary": "Lets the configured overflow policy choose inline or menu placement."
            }
          ],
          "required": false,
          "summary": "Optionally overrides generated move-up and move-down action placement."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "DataGridFormSchema<TItem, TKey>",
          "required": true,
          "summary": "Immutable form, grid and operation schema."
        },
        {
          "name": "SelectedItems",
          "kind": "parameter",
          "type": "HashSet<TItem>",
          "required": false,
          "summary": "Externally controlled selected-item set used by schema-defined bulk actions."
        },
        {
          "name": "SelectedItemsChanged",
          "kind": "event",
          "type": "EventCallback<HashSet<TItem>>",
          "required": false,
          "summary": "Raised after the DataGrid selection or a bulk action clears the selected set."
        },
        {
          "name": "ShowOperationErrors",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows operation failures in the component. Default true."
        },
        {
          "name": "ToolbarContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Additional content rendered in the DataGrid toolbar."
        },
        {
          "name": "ViewState",
          "kind": "parameter",
          "type": "DataGridViewState",
          "required": false,
          "summary": "Controlled DataGrid layout, sort, filter, grouping and search preferences."
        },
        {
          "name": "ViewStateChanged",
          "kind": "event",
          "type": "EventCallback<DataGridViewState>",
          "required": false,
          "summary": "Raised after the generated DataGrid view preferences change."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDataImport",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Reads bounded delimited text incrementally, maps it to a typed schema and exposes only validated snapshots to cancellable persistence handlers.",
      "source": "src/Omni.Blazor/Components/Data/OmniDataImport.razor",
      "parameters": [
        {
          "name": "Accept",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "HTML file input accept filter."
        },
        {
          "name": "AllowPartialImport",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Allows valid rows to be imported while other rows are invalid."
        },
        {
          "name": "ClearText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the clear action text."
        },
        {
          "name": "Culture",
          "kind": "parameter",
          "type": "CultureInfo",
          "required": false,
          "summary": "Culture used by built-in numeric and date parsers. Defaults to current culture."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables file selection, mapping and import."
        },
        {
          "name": "Failed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised after an observed load, conversion or persistence failure."
        },
        {
          "name": "Handler",
          "kind": "parameter",
          "type": "DataImportHandler<TItem>",
          "required": false,
          "summary": "Optional cancellable destination for accepted typed rows."
        },
        {
          "name": "ImportText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the import action text."
        },
        {
          "name": "Imported",
          "kind": "event",
          "type": "EventCallback<DataImportCompletedEventArgs<TItem>>",
          "required": false,
          "summary": "Raised after Handler succeeds, or directly when no Handler is supplied."
        },
        {
          "name": "LoadingTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom loading content."
        },
        {
          "name": "MappingTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the mapping section title."
        },
        {
          "name": "MaxFileSize",
          "kind": "parameter",
          "type": "long",
          "required": false,
          "summary": "Maximum input size in bytes. Default 5 MB."
        },
        {
          "name": "MaximumCellLength",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum characters accepted in one cell. Default 32,768."
        },
        {
          "name": "MaximumColumns",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum source columns per row. Default 256."
        },
        {
          "name": "MaximumRows",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum data rows retained in memory. Default 10,000."
        },
        {
          "name": "PreviewRowCount",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum processed rows rendered in the preview. Default 25."
        },
        {
          "name": "PreviewTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the preview section title."
        },
        {
          "name": "RowTemplate",
          "kind": "slot",
          "type": "RenderFragment<DataImportRow<TItem>>",
          "contextType": "DataImportRow<TItem>",
          "required": false,
          "summary": "Custom preview row cells. The fragment must render cells matching the component header structure."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "DataImportSchema<TItem>",
          "required": true,
          "summary": "Immutable target schema containing typed property mappings and parsers."
        },
        {
          "name": "UploadText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the file-selection text."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDayView",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Single-day view with time slots.",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniDayView.razor",
      "parameters": [
        {
          "name": "EndTime",
          "kind": "parameter",
          "type": "TimeSpan",
          "required": false,
          "summary": "Last time slot of the day (exclusive). Default 24:00."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "clock",
          "required": false,
          "summary": "Icon name shown on this view's switch tab. Default \"clock\"."
        },
        {
          "name": "MinutesPerSlot",
          "kind": "parameter",
          "type": "int",
          "default": "30",
          "required": false,
          "summary": "Minutes per slot row. Default 30."
        },
        {
          "name": "StartTime",
          "kind": "parameter",
          "type": "TimeSpan",
          "required": false,
          "summary": "First time slot of the day. Default 08:00."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Dia",
          "required": false,
          "summary": "Label shown on this view's switch tab. Default \"Dia\"."
        },
        {
          "name": "TimeFormat",
          "kind": "parameter",
          "type": "string",
          "default": "HH:mm",
          "required": false,
          "summary": "Time format for slot labels. Default \"HH:mm\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDiagramCanvas",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniDiagramCanvas — generic infinite graph editor: pan/zoom, dotted grid, nodes with named ports, bezier edges, drag-to-connect, marquee selection, minimap, zoom controls and auto-layout.",
      "source": "src/Omni.Blazor/Components/Data/Diagram/OmniDiagramCanvas.razor",
      "parameters": [
        {
          "name": "AutoLayoutText",
          "kind": "parameter",
          "type": "string",
          "default": "Auto-layout (organizar)",
          "required": false,
          "summary": "Tooltip text for the auto-layout button."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Extra overlay content (hints, run bars...) rendered inside the canvas."
        },
        {
          "name": "DropPayloadFormat",
          "kind": "parameter",
          "type": "string",
          "default": "application/x-omni-diagram",
          "required": false,
          "summary": "HTML5 drag payload format accepted by OnExternalDrop."
        },
        {
          "name": "Edges",
          "kind": "parameter",
          "type": "IReadOnlyList<DiagramEdge>",
          "required": false,
          "summary": "Graph edges."
        },
        {
          "name": "EmptyContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Rendered centered when the graph has no nodes."
        },
        {
          "name": "FitOnMount",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Fits the graph into view once, on first render with nodes."
        },
        {
          "name": "FitText",
          "kind": "parameter",
          "type": "string",
          "default": "Ajustar à tela",
          "required": false,
          "summary": "Tooltip text for the fit button."
        },
        {
          "name": "NodeTemplate",
          "kind": "slot",
          "type": "RenderFragment<DiagramNode>",
          "contextType": "DiagramNode",
          "required": false,
          "summary": "Replaces the default node card content. Ports are always rendered by the canvas."
        },
        {
          "name": "Nodes",
          "kind": "parameter",
          "type": "IReadOnlyList<DiagramNode>",
          "required": false,
          "summary": "Graph nodes (world coordinates)."
        },
        {
          "name": "NodesMoved",
          "kind": "event",
          "type": "EventCallback<IReadOnlyList<DiagramNodeMove>>",
          "required": false,
          "summary": "Raised when a node drag (possibly multi-node) or auto-layout commits."
        },
        {
          "name": "OnConnect",
          "kind": "event",
          "type": "EventCallback<DiagramConnectEventArgs>",
          "required": false,
          "summary": "Raised when the user finishes a drag-to-connect between two ports."
        },
        {
          "name": "OnDeleteRequested",
          "kind": "event",
          "type": "EventCallback<DiagramSelection>",
          "required": false,
          "summary": "Raised when Delete/Backspace is pressed with the canvas focused."
        },
        {
          "name": "OnExternalDrop",
          "kind": "event",
          "type": "EventCallback<DiagramExternalDropEventArgs>",
          "required": false,
          "summary": "Raised when an external item is dropped on the canvas (world coords)."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disables editing gestures (drag, connect, marquee, delete, drop). Pan/zoom stay enabled."
        },
        {
          "name": "RunState",
          "kind": "parameter",
          "type": "DiagramRunState",
          "required": false,
          "summary": "Optional execution overlay (current/done/faulted/taken edges...)."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "DiagramSchema",
          "required": false,
          "summary": "Optional immutable fluent schema for graph structure and canvas defaults."
        },
        {
          "name": "Selection",
          "kind": "parameter",
          "type": "DiagramSelection",
          "required": false,
          "summary": "Current selection. Two-way bindable."
        },
        {
          "name": "SelectionChanged",
          "kind": "event",
          "type": "EventCallback<DiagramSelection>",
          "required": false,
          "summary": "Raised when the user changes the selection (click, marquee)."
        },
        {
          "name": "ShowAutoLayout",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Shows the auto-layout button inside the controls."
        },
        {
          "name": "ShowControls",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Shows the zoom control group (bottom-left)."
        },
        {
          "name": "ShowMinimap",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Shows the minimap (bottom-right)."
        },
        {
          "name": "Viewport",
          "kind": "parameter",
          "type": "DiagramViewport",
          "required": false,
          "summary": "Viewport (offset + zoom). Two-way bindable; committed after gestures."
        },
        {
          "name": "ViewportChanged",
          "kind": "event",
          "type": "EventCallback<DiagramViewport>",
          "required": false,
          "summary": "Raised when a gesture commits a new viewport."
        },
        {
          "name": "ZoomInText",
          "kind": "parameter",
          "type": "string",
          "default": "Aumentar zoom",
          "required": false,
          "summary": "Tooltip text for the zoom-in button."
        },
        {
          "name": "ZoomOutText",
          "kind": "parameter",
          "type": "string",
          "default": "Diminuir zoom",
          "required": false,
          "summary": "Tooltip text for the zoom-out button."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDropZone",
      "category": "Data",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single drop bucket.",
      "source": "src/Omni.Blazor/Components/Data/OmniDropZone.razor",
      "parameters": [
        {
          "name": "Footer",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional footer rendered below the items (e.g. an \"+ Add\" button)."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Opaque value the container's ItemSelector uses to bucket items into this zone (e.g. a status enum)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDropZoneContainer",
      "category": "Data",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Kanban-style drag-and-drop container.",
      "source": "src/Omni.Blazor/Components/Data/OmniDropZoneContainer.razor",
      "parameters": [
        {
          "name": "CanDrop",
          "kind": "parameter",
          "type": "Func<DropZoneItemEventArgs<TItem>, bool>",
          "required": false,
          "summary": "Returns whether the current drag is allowed to drop on the target zone/item."
        },
        {
          "name": "Data",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "Backing data list. Each OmniDropZone`1 filters this via ItemSelector."
        },
        {
          "name": "DragEnd",
          "kind": "event",
          "type": "EventCallback<DropZoneItemEventArgs<TItem>>",
          "required": false,
          "summary": "Fires when the drag ends (with or without a drop)."
        },
        {
          "name": "DragStart",
          "kind": "event",
          "type": "EventCallback<DropZoneItemEventArgs<TItem>>",
          "required": false,
          "summary": "Fires when the user starts dragging an item."
        },
        {
          "name": "Drop",
          "kind": "event",
          "type": "EventCallback<DropZoneItemEventArgs<TItem>>",
          "required": false,
          "summary": "Fires when an item is dropped on a zone (or another item)."
        },
        {
          "name": "ItemRender",
          "kind": "parameter",
          "type": "Action<DropZoneItemRenderEventArgs<TItem>>",
          "required": false,
          "summary": "Per-item render hook — set attributes or hide individual items."
        },
        {
          "name": "ItemSelector",
          "kind": "parameter",
          "type": "Func<TItem, OmniDropZone<TItem>, bool>",
          "required": false,
          "summary": "Returns true when an item belongs in the given zone."
        },
        {
          "name": "Template",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Render template for each item. Receives the item as @context."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDropZoneItem",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Internal draggable item rendered by <OmniDropZone>.",
      "source": "src/Omni.Blazor/Components/Data/OmniDropZoneItem.razor",
      "parameters": [
        {
          "name": "ItemAttributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "ItemAttributes contributed by the container's ItemRender hook."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniFileManager",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Provider-backed file manager with bounded loading, navigation and guarded mutations.",
      "source": "src/Omni.Blazor/Components/Data/OmniFileManager.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Gerenciador de arquivos",
          "required": false,
          "summary": "Accessible label for the component."
        },
        {
          "name": "BreadcrumbLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Localização",
          "required": false,
          "summary": "Accessible label for breadcrumb navigation."
        },
        {
          "name": "CancelText",
          "kind": "parameter",
          "type": "string",
          "default": "Cancelar",
          "required": false,
          "summary": "Label for cancelling a pending action."
        },
        {
          "name": "Capabilities",
          "kind": "parameter",
          "type": "FileManagerCapabilities",
          "enumValues": [
            {
              "name": "Browse",
              "summary": "Read-only browsing."
            },
            {
              "name": "CreateFolder",
              "summary": "Create folders."
            },
            {
              "name": "Rename",
              "summary": "Rename files and folders."
            },
            {
              "name": "Delete",
              "summary": "Delete files and folders."
            },
            {
              "name": "Upload",
              "summary": "Upload browser files."
            },
            {
              "name": "Download",
              "summary": "Request a download through the consumer callback."
            },
            {
              "name": "All",
              "summary": "All optional operations."
            }
          ],
          "default": "Browse",
          "required": false,
          "summary": "Enabled optional operations. Browse is always available."
        },
        {
          "name": "ConfirmText",
          "kind": "parameter",
          "type": "string",
          "default": "Confirmar",
          "required": false,
          "summary": "Label for confirming deletion."
        },
        {
          "name": "DeleteConfirmationText",
          "kind": "parameter",
          "type": "string",
          "default": "Excluir “{0}”?",
          "required": false,
          "summary": "Delete confirmation template. Placeholder zero receives the entry name."
        },
        {
          "name": "DeleteText",
          "kind": "parameter",
          "type": "string",
          "default": "Excluir",
          "required": false,
          "summary": "Label for the delete action."
        },
        {
          "name": "DirectoryOpened",
          "kind": "event",
          "type": "EventCallback<FileManagerEntry>",
          "required": false,
          "summary": "Raised after a directory is opened and its path changes."
        },
        {
          "name": "DownloadRequested",
          "kind": "event",
          "type": "EventCallback<FileManagerEntry>",
          "required": false,
          "summary": "Raised when the user requests download of a file."
        },
        {
          "name": "DownloadText",
          "kind": "parameter",
          "type": "string",
          "default": "Baixar",
          "required": false,
          "summary": "Label for the download action."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "default": "Esta pasta está vazia.",
          "required": false,
          "summary": "Message shown when the directory is empty."
        },
        {
          "name": "ErrorText",
          "kind": "parameter",
          "type": "string",
          "default": "Não foi possível concluir a operação.",
          "required": false,
          "summary": "Message shown after a provider failure."
        },
        {
          "name": "GridViewText",
          "kind": "parameter",
          "type": "string",
          "default": "Exibição em grade",
          "required": false,
          "summary": "Label for grid view."
        },
        {
          "name": "ItemTemplate",
          "kind": "slot",
          "type": "RenderFragment<FileManagerEntry>",
          "contextType": "FileManagerEntry",
          "required": false,
          "summary": "Optional custom renderer for each entry."
        },
        {
          "name": "ItemsChanged",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Raised after a provider operation changes the directory contents."
        },
        {
          "name": "ItemsCountText",
          "kind": "parameter",
          "type": "string",
          "default": "{0} de {1} itens",
          "required": false,
          "summary": "Footer template for visible and total item counts."
        },
        {
          "name": "LimitText",
          "kind": "parameter",
          "type": "string",
          "default": "Limite de {0} itens",
          "required": false,
          "summary": "Footer template shown when the configured item limit was reached."
        },
        {
          "name": "ListViewText",
          "kind": "parameter",
          "type": "string",
          "default": "Exibição em lista",
          "required": false,
          "summary": "Label for list view."
        },
        {
          "name": "LoadingText",
          "kind": "parameter",
          "type": "string",
          "default": "Carregando arquivos...",
          "required": false,
          "summary": "Message shown while the initial listing loads."
        },
        {
          "name": "MaxItems",
          "kind": "parameter",
          "type": "int",
          "default": "1000",
          "required": false,
          "summary": "Maximum entries requested, retained and rendered per directory."
        },
        {
          "name": "MaxUploadFiles",
          "kind": "parameter",
          "type": "int",
          "default": "20",
          "required": false,
          "summary": "Maximum files accepted in one upload selection."
        },
        {
          "name": "NewFolderPlaceholder",
          "kind": "parameter",
          "type": "string",
          "default": "Nome da pasta",
          "required": false,
          "summary": "Placeholder for a new folder name."
        },
        {
          "name": "NewFolderText",
          "kind": "parameter",
          "type": "string",
          "default": "Nova pasta",
          "required": false,
          "summary": "Label for the create-folder action."
        },
        {
          "name": "OperationFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised when an uncancelled provider operation fails."
        },
        {
          "name": "Path",
          "kind": "parameter",
          "type": "string",
          "default": "/",
          "required": false,
          "summary": "Current logical path for two-way binding. Paths use forward slashes."
        },
        {
          "name": "PathChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Raised when Path changes."
        },
        {
          "name": "Provider",
          "kind": "parameter",
          "type": "IOmniFileManagerProvider",
          "required": true,
          "summary": "Backend responsible for browsing and optional mutations."
        },
        {
          "name": "RefreshText",
          "kind": "parameter",
          "type": "string",
          "default": "Atualizar",
          "required": false,
          "summary": "Label for the refresh action."
        },
        {
          "name": "RenamePlaceholder",
          "kind": "parameter",
          "type": "string",
          "default": "Novo nome",
          "required": false,
          "summary": "Placeholder for a new entry name."
        },
        {
          "name": "RenameText",
          "kind": "parameter",
          "type": "string",
          "default": "Renomear",
          "required": false,
          "summary": "Label for the rename action."
        },
        {
          "name": "SaveText",
          "kind": "parameter",
          "type": "string",
          "default": "Salvar",
          "required": false,
          "summary": "Label for saving an inline edit."
        },
        {
          "name": "SearchDebounce",
          "kind": "parameter",
          "type": "int",
          "default": "250",
          "required": false,
          "summary": "Delay before provider-side text searches, in milliseconds."
        },
        {
          "name": "SearchPlaceholder",
          "kind": "parameter",
          "type": "string",
          "default": "Buscar nesta pasta",
          "required": false,
          "summary": "Provider-side search placeholder."
        },
        {
          "name": "SearchText",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "Current provider-side search text for two-way binding."
        },
        {
          "name": "SearchTextChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Raised when SearchText changes."
        },
        {
          "name": "SelectedItem",
          "kind": "parameter",
          "type": "FileManagerEntry",
          "required": false,
          "summary": "Currently selected entry for two-way binding."
        },
        {
          "name": "SelectedItemChanged",
          "kind": "event",
          "type": "EventCallback<FileManagerEntry>",
          "required": false,
          "summary": "Raised when SelectedItem changes."
        },
        {
          "name": "UploadText",
          "kind": "parameter",
          "type": "string",
          "default": "Enviar",
          "required": false,
          "summary": "Label for the upload action."
        },
        {
          "name": "View",
          "kind": "parameter",
          "type": "FileManagerView",
          "enumValues": [
            {
              "name": "List",
              "summary": "Compact tabular rows."
            },
            {
              "name": "Grid",
              "summary": "Responsive icon cards."
            }
          ],
          "default": "List",
          "required": false,
          "summary": "Current list or grid layout for two-way binding."
        },
        {
          "name": "ViewChanged",
          "kind": "event",
          "type": "EventCallback<FileManagerView>",
          "required": false,
          "summary": "Raised when View changes."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniGantt",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniGantt — project timeline inspired by RadzenGantt.",
      "source": "src/Omni.Blazor/Components/Data/Gantt/OmniGantt.razor",
      "parameters": [
        {
          "name": "AllowColumnResize",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Lets the user resize left-pane columns by dragging the right edge of a header cell. Default true."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Left-pane column definitions (OmniGanttColumn) — pass them as child content."
        },
        {
          "name": "ColumnResized",
          "kind": "event",
          "type": "EventCallback<GanttColumnResizedEventArgs>",
          "required": false,
          "summary": "Fired after a left-pane column is resized (drag of the header handle finished)."
        },
        {
          "name": "Data",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "The task source."
        },
        {
          "name": "Dependencies",
          "kind": "parameter",
          "type": "IEnumerable<GanttDependency<TItem>>",
          "required": false,
          "summary": "Typed task dependencies rendered as arrows."
        },
        {
          "name": "LeftPaneWidth",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Fallback width for the left task pane when no columns are declared. When columns exist the pane auto-sizes to the sum of their (effective) widths, so a column never overflows into the timeline."
        },
        {
          "name": "Markers",
          "kind": "parameter",
          "type": "IEnumerable<GanttMarker>",
          "required": false,
          "summary": "Optional vertical date markers (e.g. deadlines) drawn on the timeline."
        },
        {
          "name": "NonWorkingDays",
          "kind": "parameter",
          "type": "IEnumerable<DayOfWeek>",
          "required": false,
          "summary": "Which days count as non-working (shaded). Default Saturday + Sunday."
        },
        {
          "name": "RowClick",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Fired when a left-pane row is clicked."
        },
        {
          "name": "RowHeightPx",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Height (px) of each task row. Default 34."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "GanttSchema<TItem>",
          "required": true,
          "summary": "Immutable typed task projection and presentation schema."
        },
        {
          "name": "ShowCriticalPath",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Computes and highlights the critical path (CPM). Requires dependencies. Default false."
        },
        {
          "name": "ShowNavigation",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the top navigation bar (title + zoom controls). Default true."
        },
        {
          "name": "ShowTodayLine",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Draws a vertical line at the current date/time. Default true."
        },
        {
          "name": "ShowWeekends",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shades non-working days (see NonWorkingDays) on the timeline. Default true."
        },
        {
          "name": "TaskClick",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Fired when a task bar is clicked."
        },
        {
          "name": "TaskMouseEnter",
          "kind": "event",
          "type": "EventCallback<GanttTaskMouseEventArgs<TItem>>",
          "required": false,
          "summary": "Fired when the pointer enters a task bar."
        },
        {
          "name": "TaskMouseLeave",
          "kind": "event",
          "type": "EventCallback<GanttTaskMouseEventArgs<TItem>>",
          "required": false,
          "summary": "Fired when the pointer leaves a task bar."
        },
        {
          "name": "TaskMove",
          "kind": "event",
          "type": "EventCallback<GanttTaskMovedEventArgs<TItem>>",
          "required": false,
          "summary": "Fired when a task is dragged to a new date range. Wiring it enables drag-to-move."
        },
        {
          "name": "TaskRender",
          "kind": "parameter",
          "type": "Action<GanttBarRenderEventArgs<TItem>>",
          "required": false,
          "summary": "Per-bar render hook (CSS class / inline style)."
        },
        {
          "name": "TaskResize",
          "kind": "event",
          "type": "EventCallback<GanttTaskMovedEventArgs<TItem>>",
          "required": false,
          "summary": "Fired when a task is resized via its edge handles. Wiring it enables resizing."
        },
        {
          "name": "TaskTemplate",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Custom content inside each task bar (replaces progress + label)."
        },
        {
          "name": "ViewEnd",
          "kind": "parameter",
          "type": "DateTime",
          "required": false,
          "summary": "Forces the timeline end date. Null = auto from the latest task."
        },
        {
          "name": "ViewStart",
          "kind": "parameter",
          "type": "DateTime",
          "required": false,
          "summary": "Forces the timeline start date. Null = auto from the earliest task."
        },
        {
          "name": "ZoomLevel",
          "kind": "parameter",
          "type": "GanttZoomLevel",
          "enumValues": [
            {
              "name": "Day",
              "summary": "One wide cell per day."
            },
            {
              "name": "Week",
              "summary": "Day cells, sized for a few weeks."
            },
            {
              "name": "Month",
              "summary": "Narrow day cells, sized for a few months."
            },
            {
              "name": "Year",
              "summary": "Very narrow day cells, sized for a year+."
            }
          ],
          "required": false,
          "summary": "Timeline granularity (Day/Week/Month/Year). Default Week."
        },
        {
          "name": "ZoomToFitText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Tooltip for the zoom-to-fit button. Default \"Ajustar à tela\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniGanttColumn",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Left-pane column for an OmniGantt.",
      "source": "src/Omni.Blazor/Components/Data/Gantt/OmniGanttColumn.razor",
      "parameters": [
        {
          "name": "FormatString",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional composite format string (e.g. \"{0:d}\", \"{0:P0}\")."
        },
        {
          "name": "MinWidth",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Minimum width (e.g. \"60px\") the user can drag this column down to. Default 60px."
        },
        {
          "name": "Property",
          "kind": "parameter",
          "type": "Func<TItem, object>",
          "required": false,
          "summary": "Value selector for the cell content."
        },
        {
          "name": "Resizable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether this column can be resized when the gantt has AllowColumnResize. Default true."
        },
        {
          "name": "Template",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Optional custom cell template (overrides Property)."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Header text."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "CSS width of the column (e.g. \"200px\"). Default \"140px\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniGanttForm",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "CRUD-enabled Gantt that edits detached tasks through OmniDataForm and the shared headless entity coordinator.",
      "source": "src/Omni.Blazor/Components/Data/Gantt/OmniGanttForm.razor",
      "parameters": [
        {
          "name": "ColumnResized",
          "kind": "event",
          "type": "EventCallback<GanttColumnResizedEventArgs>",
          "required": false,
          "summary": "Raised after a Gantt column resize."
        },
        {
          "name": "Columns",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Declarative left-pane Gantt columns."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables generated entity operations."
        },
        {
          "name": "EditorSchema",
          "kind": "parameter",
          "type": "EntityEditorSchema<TItem, TKey>",
          "required": true,
          "summary": "Reusable DataForm and CRUD definition."
        },
        {
          "name": "GanttClass",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Additional CSS class applied directly to the Gantt."
        },
        {
          "name": "GanttSchema",
          "kind": "parameter",
          "type": "GanttSchema<TItem>",
          "required": true,
          "summary": "Strongly typed task projection and Gantt defaults."
        },
        {
          "name": "GanttStyle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Additional inline styles applied directly to the Gantt."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IList<TItem>",
          "required": true,
          "summary": "Mutable task snapshot rendered by the Gantt."
        },
        {
          "name": "ItemsChanged",
          "kind": "event",
          "type": "EventCallback<IList<TItem>>",
          "required": false,
          "summary": "Raised after a successful local mutation."
        },
        {
          "name": "MaximumItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum local task count."
        },
        {
          "name": "MinimumItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Minimum local task count."
        },
        {
          "name": "OperationCompleted",
          "kind": "event",
          "type": "EventCallback<EntityEditorOperationEventArgs<TItem, TKey>>",
          "required": false,
          "summary": "Raised after a successful generated CRUD operation."
        },
        {
          "name": "OperationFailed",
          "kind": "event",
          "type": "EventCallback<EntityEditorOperationFailedEventArgs<TItem, TKey>>",
          "required": false,
          "summary": "Raised after a handled generated CRUD failure."
        },
        {
          "name": "Provider",
          "kind": "parameter",
          "type": "IOmniEntityMutationProvider<TItem, TKey>",
          "required": false,
          "summary": "Optional persistence provider."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Makes generated entity operations read-only."
        },
        {
          "name": "RefreshRequested",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Requests that the owner reload provider-backed Items."
        },
        {
          "name": "RowClick",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Raised after a left-pane row is selected."
        },
        {
          "name": "TaskClick",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Raised after a task bar is selected."
        },
        {
          "name": "TaskMove",
          "kind": "event",
          "type": "EventCallback<GanttTaskMovedEventArgs<TItem>>",
          "required": false,
          "summary": "Raised after a task move gesture."
        },
        {
          "name": "TaskResize",
          "kind": "event",
          "type": "EventCallback<GanttTaskMovedEventArgs<TItem>>",
          "required": false,
          "summary": "Raised after a task resize gesture."
        },
        {
          "name": "TaskTemplate",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Typed task-bar content."
        },
        {
          "name": "ToolbarContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Additional generated toolbar content."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniHtmlEditor",
      "category": "Data",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": true,
      "source": "src/Omni.Blazor/Components/Data/HtmlEditor/OmniHtmlEditor.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom toolbar content (OmniHtmlEditorButton tools). When null, a default toolbar renders."
        },
        {
          "name": "Execute",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Fired whenever a command runs (carries the execCommand name)."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "default": "320px",
          "required": false,
          "summary": "Height of the editor surface (CSS). Default 320px."
        },
        {
          "name": "Input",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Fired on every content change in design mode (per keystroke)."
        },
        {
          "name": "Mode",
          "kind": "parameter",
          "type": "HtmlEditorMode",
          "enumValues": [
            {
              "name": "Design",
              "summary": "WYSIWYG — edição visual."
            },
            {
              "name": "Source",
              "summary": "HTML cru — edição do markup."
            }
          ],
          "default": "Design",
          "required": false,
          "summary": "Design (WYSIWYG) or Source (raw HTML) view. Default Design."
        },
        {
          "name": "ShowToolbar",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Shows the formatting toolbar. Default true."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniHtmlEditorButton",
      "category": "Data",
      "baseType": "ComponentBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "A toolbar tool for OmniHtmlEditor.",
      "source": "src/Omni.Blazor/Components/Data/HtmlEditor/OmniHtmlEditorButton.razor",
      "parameters": [
        {
          "name": "Command",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "The execCommand name (e.g. bold, justifyCenter, insertOrderedList)."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Icon name (Omni icon library)."
        },
        {
          "name": "Shortcut",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional keyboard shortcut (e.g. Ctrl+B) registered with the editor."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Tooltip / accessible title."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional command value (e.g. a color, or a block tag for formatBlock)."
        }
      ]
    },
    {
      "name": "OmniKanban",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "OmniKanban — quadro de colunas com cards arrastáveis.",
      "source": "src/Omni.Blazor/Components/Data/OmniKanban.razor",
      "parameters": [
        {
          "name": "AddCardText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label do botão de adicionar card. Default \"Adicionar card\"."
        },
        {
          "name": "AgeStaleDays",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "A partir de quantos dias o card fica \"vermelho\". Default 5."
        },
        {
          "name": "AgeWarnDays",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "A partir de quantos dias o card fica \"amarelo\". Default 3."
        },
        {
          "name": "AllowAddCard",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Mostra o botão \"adicionar card\" no rodapé das colunas. Default false."
        },
        {
          "name": "AllowColumnReorder",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Permite arrastar o cabeçalho da coluna para reordená-las. Default false."
        },
        {
          "name": "CardAction",
          "kind": "event",
          "type": "EventCallback<KanbanCardActionEventArgs<TCard>>",
          "required": false,
          "summary": "Disparado quando uma ação do menu \"…\" é selecionada."
        },
        {
          "name": "CardActions",
          "kind": "parameter",
          "type": "Func<TCard, IEnumerable<KanbanCardAction>>",
          "required": false,
          "summary": "Ações do menu \"…\" do card (atribuir, mover, sinalizar, etc.). Quando definido, mostra o botão \"…\"; o menu é renderizado num portal (escapa o overflow da coluna)."
        },
        {
          "name": "CardAge",
          "kind": "parameter",
          "type": "Func<TCard, int>",
          "required": false,
          "summary": "Dias que o card está na coluna (o consumidor calcula). null = oculto."
        },
        {
          "name": "CardAssignee",
          "kind": "parameter",
          "type": "Func<TCard, string>",
          "required": false,
          "summary": "Nome do responsável — vira avatar (iniciais) no rodapé do card."
        },
        {
          "name": "CardAvatar",
          "kind": "parameter",
          "type": "Func<TCard, string>",
          "required": false,
          "summary": "URL da imagem do avatar do responsável (senão usa as iniciais)."
        },
        {
          "name": "CardClick",
          "kind": "event",
          "type": "EventCallback<TCard>",
          "required": false,
          "summary": "Disparado ao clicar num card."
        },
        {
          "name": "CardColor",
          "kind": "parameter",
          "type": "Func<TCard, string>",
          "required": false,
          "summary": "Cor (CSS) da faixa lateral do card — por tipo, prioridade, etc. null = sem faixa."
        },
        {
          "name": "CardDueDate",
          "kind": "parameter",
          "type": "Func<TCard, DateTime>",
          "required": false,
          "summary": "Prazo do card — badge de data (fica vermelho se vencido)."
        },
        {
          "name": "CardEstimate",
          "kind": "parameter",
          "type": "Func<TCard, string>",
          "required": false,
          "summary": "Estimativa (texto livre: \"5\", \"3h\", \"8pts\") — badge."
        },
        {
          "name": "CardFields",
          "kind": "parameter",
          "type": "Func<TCard, IEnumerable<KanbanField>>",
          "required": false,
          "summary": "Campos extras (rótulo + valor) exibidos no card — no máx. 3."
        },
        {
          "name": "CardId",
          "kind": "parameter",
          "type": "Func<TCard, object>",
          "required": false,
          "summary": "Chave estável do card (recomendado): @@key, foco por teclado, igualdade."
        },
        {
          "name": "CardMoved",
          "kind": "event",
          "type": "EventCallback<KanbanCardMovedEventArgs<TCard>>",
          "required": false,
          "summary": "Disparado após mover um card (coluna/raia de origem e destino + índices)."
        },
        {
          "name": "CardPriority",
          "kind": "parameter",
          "type": "Func<TCard, KanbanPriority>",
          "required": false,
          "summary": "Prioridade do card — ícone/cor no topo."
        },
        {
          "name": "CardSubtasks",
          "kind": "parameter",
          "type": "Func<TCard, ValueTuple<int, int>>",
          "required": false,
          "summary": "Progresso de subtarefas (concluídas, total) — badge ✓ d/t."
        },
        {
          "name": "CardTemplate",
          "kind": "slot",
          "type": "RenderFragment<TCard>",
          "contextType": "TCard",
          "required": false,
          "summary": "Template completo do card — substitui o card padrão (e todos os seletores Card*)."
        },
        {
          "name": "CardTitle",
          "kind": "parameter",
          "type": "Func<TCard, string>",
          "required": false,
          "summary": "Card → título exibido no card padrão. Default: ToString() do card."
        },
        {
          "name": "Collapsible",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Permite recolher colunas. Default true."
        },
        {
          "name": "ColumnFooterTemplate",
          "kind": "slot",
          "type": "RenderFragment<KanbanColumn>",
          "contextType": "KanbanColumn",
          "required": false,
          "summary": "Template do rodapé da coluna (substitui o botão \"adicionar card\"). Recebe a KanbanColumn."
        },
        {
          "name": "ColumnHeaderTemplate",
          "kind": "slot",
          "type": "RenderFragment<KanbanColumn>",
          "contextType": "KanbanColumn",
          "required": false,
          "summary": "Template do cabeçalho da coluna. Recebe a KanbanColumn."
        },
        {
          "name": "ColumnMoved",
          "kind": "event",
          "type": "EventCallback<KanbanColumnMovedEventArgs>",
          "required": false,
          "summary": "Disparado após reordenar colunas (coluna + índices)."
        },
        {
          "name": "ColumnSelector",
          "kind": "parameter",
          "type": "Func<TCard, string>",
          "required": false,
          "summary": "Card → Id da coluna (obrigatório)."
        },
        {
          "name": "ColumnSetter",
          "kind": "parameter",
          "type": "Action<TCard, string>",
          "required": false,
          "summary": "Grava a nova coluna no card ao mover entre colunas."
        },
        {
          "name": "ColumnWidth",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Largura CSS de cada coluna (define --omni-kanban-col-w). Null = largura padrão."
        },
        {
          "name": "Columns",
          "kind": "parameter",
          "type": "IEnumerable<KanbanColumn>",
          "required": false,
          "summary": "Definição das colunas (ordem = ordem de exibição)."
        },
        {
          "name": "ColumnsChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<KanbanColumn>>",
          "required": false,
          "summary": "Two-way: @@bind-Columns — recebe a nova ordem ao reordenar."
        },
        {
          "name": "DragDisabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Desabilita o drag-and-drop (mouse e teclado). Default false."
        },
        {
          "name": "DueDateFormat",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Formato do prazo. Default \"dd MMM\"."
        },
        {
          "name": "EmptyColumnTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Conteúdo exibido numa coluna sem cards. Default: \"Sem cards\"."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<TCard>",
          "required": false,
          "summary": "Lista plana de cards. Two-way (@bind-Items) — reordenada ao mover."
        },
        {
          "name": "ItemsChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<TCard>>",
          "required": false,
          "summary": "Disparado com a nova lista ao mover/reordenar cards (par de @bind-Items)."
        },
        {
          "name": "OnAddCard",
          "kind": "event",
          "type": "EventCallback<KanbanColumn>",
          "required": false,
          "summary": "Disparado ao clicar no botão \"adicionar card\" de uma coluna."
        },
        {
          "name": "QuickFilters",
          "kind": "parameter",
          "type": "IEnumerable<KanbanQuickFilter<TCard>>",
          "required": false,
          "summary": "Chips de filtro rápido (combinam em E). Cards que falham num filtro ativo são ocultados."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "KanbanSchema<TCard>",
          "required": false,
          "summary": "Optional immutable typed board schema."
        },
        {
          "name": "SearchPlaceholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder da busca."
        },
        {
          "name": "SearchSelector",
          "kind": "parameter",
          "type": "Func<TCard, string>",
          "required": false,
          "summary": "Texto a pesquisar por card. Default = título do card."
        },
        {
          "name": "ShowCardAge",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Exibe o indicador de envelhecimento (pontos)."
        },
        {
          "name": "ShowCount",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Mostra a contagem de cards (ou n/limite com WIP) no cabeçalho. Default true."
        },
        {
          "name": "ShowSearch",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Exibe uma barra de busca textual."
        },
        {
          "name": "SwimlaneSelector",
          "kind": "parameter",
          "type": "Func<TCard, string>",
          "required": false,
          "summary": "Card → Id da raia."
        },
        {
          "name": "SwimlaneSetter",
          "kind": "parameter",
          "type": "Action<TCard, string>",
          "required": false,
          "summary": "Grava a nova raia no card ao mover entre raias."
        },
        {
          "name": "Swimlanes",
          "kind": "parameter",
          "type": "IEnumerable<KanbanSwimlane>",
          "required": false,
          "summary": "Definição das raias. Quando presente (+ SwimlaneSelector), o board agrupa em linhas."
        },
        {
          "name": "SwimlanesCollapsible",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Permite recolher raias. Default true."
        },
        {
          "name": "WipLimitMode",
          "kind": "parameter",
          "type": "WipLimitMode",
          "enumValues": [
            {
              "name": "Warn",
              "summary": "Permite ultrapassar; só sinaliza visualmente (badge vermelho)."
            },
            {
              "name": "Enforce",
              "summary": "Bloqueia o drop que ultrapassaria o limite."
            }
          ],
          "required": false,
          "summary": "Comportamento do limite de WIP: avisa (Warn) ou bloqueia a entrada (Enforce). Default Warn."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniKanbanForm",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "CRUD-enabled Kanban that edits detached cards through OmniDataForm and the shared headless entity coordinator.",
      "source": "src/Omni.Blazor/Components/Data/OmniKanbanForm.razor",
      "parameters": [
        {
          "name": "AddCard",
          "kind": "event",
          "type": "EventCallback<KanbanColumn>",
          "required": false,
          "summary": "Raised after a column add action is requested."
        },
        {
          "name": "BoardClass",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Additional CSS class applied directly to the board."
        },
        {
          "name": "BoardStyle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Additional inline styles applied directly to the board."
        },
        {
          "name": "CardClick",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Raised after a card is selected for editing."
        },
        {
          "name": "CardMoved",
          "kind": "event",
          "type": "EventCallback<KanbanCardMovedEventArgs<TItem>>",
          "required": false,
          "summary": "Raised after a card is moved between board positions."
        },
        {
          "name": "CardTemplate",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Custom card content."
        },
        {
          "name": "ColumnFactory",
          "kind": "parameter",
          "type": "Func<KanbanColumn, TItem>",
          "required": false,
          "summary": "Creates a prefilled card for the selected Kanban column."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables generated entity operations."
        },
        {
          "name": "EditorSchema",
          "kind": "parameter",
          "type": "EntityEditorSchema<TItem, TKey>",
          "required": true,
          "summary": "Reusable DataForm and CRUD definition."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IList<TItem>",
          "required": true,
          "summary": "Mutable card snapshot rendered by the Kanban."
        },
        {
          "name": "ItemsChanged",
          "kind": "event",
          "type": "EventCallback<IList<TItem>>",
          "required": false,
          "summary": "Raised after CRUD or board movement changes the local source."
        },
        {
          "name": "KanbanSchema",
          "kind": "parameter",
          "type": "KanbanSchema<TItem>",
          "required": true,
          "summary": "Strongly typed board and card schema."
        },
        {
          "name": "MaximumItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum local card count."
        },
        {
          "name": "MinimumItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Minimum local card count."
        },
        {
          "name": "OperationCompleted",
          "kind": "event",
          "type": "EventCallback<EntityEditorOperationEventArgs<TItem, TKey>>",
          "required": false,
          "summary": "Raised after a successful generated CRUD operation."
        },
        {
          "name": "OperationFailed",
          "kind": "event",
          "type": "EventCallback<EntityEditorOperationFailedEventArgs<TItem, TKey>>",
          "required": false,
          "summary": "Raised after a handled generated CRUD failure."
        },
        {
          "name": "Provider",
          "kind": "parameter",
          "type": "IOmniEntityMutationProvider<TItem, TKey>",
          "required": false,
          "summary": "Optional persistence provider."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Makes generated entity operations read-only."
        },
        {
          "name": "RefreshRequested",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Requests that the owner reload provider-backed Items."
        },
        {
          "name": "ToolbarContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Additional generated toolbar content."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMonthView",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Month grid (6 weeks × 7 days).",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniMonthView.razor",
      "parameters": [
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "grid",
          "required": false,
          "summary": "Icon name shown on this view's switch tab. Default \"grid\"."
        },
        {
          "name": "MaxAppointmentsInSlot",
          "kind": "parameter",
          "type": "int",
          "default": "3",
          "required": false,
          "summary": "Max appointments rendered per day before a \"+N more\" link appears. Null = unlimited."
        },
        {
          "name": "MoreText",
          "kind": "parameter",
          "type": "string",
          "default": "+ {0} mais",
          "required": false,
          "summary": "Overflow link text. {0} is replaced with the hidden count. Default \"+ {0} mais\"."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Mês",
          "required": false,
          "summary": "Label shown on this view's switch tab. Default \"Mês\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMultiDayView",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "N consecutive days side-by-side with time slots (mirrors RadzenMultiDayView).",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniMultiDayView.razor",
      "parameters": [
        {
          "name": "AdvanceDays",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "How many days the next/prev buttons advance. Default 1."
        },
        {
          "name": "EndTime",
          "kind": "parameter",
          "type": "TimeSpan",
          "required": false,
          "summary": "Last time slot of the day (exclusive). Default 24:00."
        },
        {
          "name": "HeaderFormat",
          "kind": "parameter",
          "type": "string",
          "default": "ddd",
          "required": false,
          "summary": "Format for the day-of-week header. Default \"ddd\"."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "columns",
          "required": false,
          "summary": "Icon name shown on this view's switch tab. Default \"columns\"."
        },
        {
          "name": "MinutesPerSlot",
          "kind": "parameter",
          "type": "int",
          "default": "30",
          "required": false,
          "summary": "Minutes per slot row. Default 30."
        },
        {
          "name": "NumberOfDays",
          "kind": "parameter",
          "type": "int",
          "default": "2",
          "required": false,
          "summary": "How many days to render side-by-side. Default 2."
        },
        {
          "name": "StartTime",
          "kind": "parameter",
          "type": "TimeSpan",
          "required": false,
          "summary": "First time slot of the day. Default 08:00."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Multi-dias",
          "required": false,
          "summary": "Label shown on this view's switch tab. Default \"Multi-dias\"."
        },
        {
          "name": "TimeFormat",
          "kind": "parameter",
          "type": "string",
          "default": "HH:mm",
          "required": false,
          "summary": "Time format for slot labels. Default \"HH:mm\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPivotColumn",
      "category": "Data",
      "baseType": "OmniPivotFieldBase<TItem>",
      "isInput": false,
      "hasChildContent": false,
      "summary": "A column dimension of an OmniPivotGrid`1. Multiple nest.",
      "source": "src/Omni.Blazor/Components/Data/Pivot/OmniPivotColumn.cs",
      "parameters": [
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional fixed width for the value columns under this group."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Header text.",
          "inheritedFrom": "OmniPivotFieldBase"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "Func<TItem, object>",
          "required": true,
          "summary": "Strongly typed value selector for this dimension or measure.",
          "inheritedFrom": "OmniPivotFieldBase"
        }
      ]
    },
    {
      "name": "OmniPivotGrid",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "OmniPivotGrid — pivot table (RadzenPivotDataGrid port).",
      "source": "src/Omni.Blazor/Components/Data/Pivot/OmniPivotGrid.razor",
      "parameters": [
        {
          "name": "AllowDrillDown",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Lets the user expand/collapse row and column groups. Default true."
        },
        {
          "name": "Columns",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Column dimension declarations (OmniPivotColumn)."
        },
        {
          "name": "Data",
          "kind": "parameter",
          "type": "IReadOnlyList<TItem>",
          "required": false,
          "summary": "Flat data source to pivot."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when there's nothing to pivot."
        },
        {
          "name": "GrandTotalText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the grand-total footer cell."
        },
        {
          "name": "Rows",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Row dimension declarations (OmniPivotRow)."
        },
        {
          "name": "ShowColumnTotals",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows a bottom totals row (per measure, per column group) + grand total."
        },
        {
          "name": "ShowRowTotals",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows a right-hand totals column (per measure, per row group)."
        },
        {
          "name": "TotalsText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the totals column/row headers."
        },
        {
          "name": "Values",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Value/measure declarations (OmniPivotValue)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPivotRow",
      "category": "Data",
      "baseType": "OmniPivotFieldBase<TItem>",
      "isInput": false,
      "hasChildContent": false,
      "summary": "A row dimension of an OmniPivotGrid`1. Multiple nest.",
      "source": "src/Omni.Blazor/Components/Data/Pivot/OmniPivotRow.cs",
      "parameters": [
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Header text.",
          "inheritedFrom": "OmniPivotFieldBase"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "Func<TItem, object>",
          "required": true,
          "summary": "Strongly typed value selector for this dimension or measure.",
          "inheritedFrom": "OmniPivotFieldBase"
        }
      ]
    },
    {
      "name": "OmniPivotValue",
      "category": "Data",
      "baseType": "OmniPivotFieldBase<TItem>",
      "isInput": false,
      "hasChildContent": false,
      "summary": "A value/measure of an OmniPivotGrid`1 — an aggregate (AggregateFunction) of a property computed at each row×column intersection. Multiple values render side-by-side under every column group.",
      "source": "src/Omni.Blazor/Components/Data/Pivot/OmniPivotValue.cs",
      "parameters": [
        {
          "name": "Aggregate",
          "kind": "parameter",
          "type": "AggregateFunction",
          "enumValues": [
            {
              "name": "Sum",
              "summary": "Soma dos valores."
            },
            {
              "name": "Average",
              "summary": "Média dos valores."
            },
            {
              "name": "Count",
              "summary": "Contagem de itens."
            },
            {
              "name": "Min",
              "summary": "Menor valor."
            },
            {
              "name": "Max",
              "summary": "Maior valor."
            }
          ],
          "required": false,
          "summary": "Aggregate function. Default Sum."
        },
        {
          "name": "Align",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "CSS text-align for the value cells. Default right."
        },
        {
          "name": "FormatString",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Composite format string for the cell value (e.g. \"{0:C}\", \"{0:P0}\")."
        },
        {
          "name": "Template",
          "kind": "slot",
          "type": "RenderFragment<object>",
          "contextType": "object",
          "required": false,
          "summary": "Optional cell template (receives the aggregated value)."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Header text.",
          "inheritedFrom": "OmniPivotFieldBase"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "Func<TItem, object>",
          "required": true,
          "summary": "Strongly typed value selector for this dimension or measure.",
          "inheritedFrom": "OmniPivotFieldBase"
        }
      ]
    },
    {
      "name": "OmniScheduler",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniScheduler — calendar/agenda component inspired by RadzenScheduler.",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniScheduler.razor",
      "parameters": [
        {
          "name": "AppointmentMouseEnter",
          "kind": "event",
          "type": "EventCallback<SchedulerAppointmentMouseEventArgs<TItem>>",
          "required": false,
          "summary": "Fires when the pointer enters an appointment. Wiring it enables hover handling."
        },
        {
          "name": "AppointmentMouseLeave",
          "kind": "event",
          "type": "EventCallback<SchedulerAppointmentMouseEventArgs<TItem>>",
          "required": false,
          "summary": "Fires when the pointer leaves an appointment."
        },
        {
          "name": "AppointmentMove",
          "kind": "event",
          "type": "EventCallback<SchedulerAppointmentMoveEventArgs>",
          "required": false,
          "summary": "Fires when an appointment is dropped on a slot. Wiring it enables drag-and-drop."
        },
        {
          "name": "AppointmentRender",
          "kind": "parameter",
          "type": "Action<SchedulerAppointmentRenderEventArgs<TItem>>",
          "required": false,
          "summary": "Sync per-appointment render hook (add CSS classes / styles / data-* attributes)."
        },
        {
          "name": "AppointmentSelect",
          "kind": "event",
          "type": "EventCallback<SchedulerAppointmentSelectEventArgs<TItem>>",
          "required": false,
          "summary": "Fires when an appointment is clicked."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "The views (e.g. <OmniDayView/> <OmniWeekView/> <OmniMonthView/>)."
        },
        {
          "name": "Culture",
          "kind": "parameter",
          "type": "CultureInfo",
          "required": false,
          "summary": "Culture for date formatting and first-day-of-week. Default CurrentCulture."
        },
        {
          "name": "Data",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "The appointment source."
        },
        {
          "name": "Date",
          "kind": "parameter",
          "type": "DateTime",
          "required": false,
          "summary": "Initial date shown. Two-way bindable via DateChanged. Default today."
        },
        {
          "name": "DateChanged",
          "kind": "event",
          "type": "EventCallback<DateTime>",
          "required": false,
          "summary": "Fires when the displayed date changes (navigation / today)."
        },
        {
          "name": "DaySelect",
          "kind": "event",
          "type": "EventCallback<SchedulerDaySelectEventArgs>",
          "required": false,
          "summary": "Fires when a day header / day number is clicked."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "CSS height of the scheduler. Default \"600px\"."
        },
        {
          "name": "LoadData",
          "kind": "event",
          "type": "EventCallback<SchedulerLoadDataEventArgs>",
          "required": false,
          "summary": "Fires when the visible range changes — hook for server-side appointment loading."
        },
        {
          "name": "MonthSelect",
          "kind": "event",
          "type": "EventCallback<SchedulerMonthSelectEventArgs>",
          "required": false,
          "summary": "Fires when a month header is clicked (year-style views)."
        },
        {
          "name": "MoreSelect",
          "kind": "event",
          "type": "EventCallback<SchedulerMoreSelectEventArgs>",
          "required": false,
          "summary": "Fires when the \"+N more\" overflow link is clicked."
        },
        {
          "name": "NavigationTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Replaces the entire built-in navigation bar."
        },
        {
          "name": "NextText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Title/aria-label for the next-range arrow. Default \"Próximo\"."
        },
        {
          "name": "PrevText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Title/aria-label for the previous-range arrow. Default \"Anterior\"."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "SchedulerSchema<TItem>",
          "required": true,
          "summary": "Immutable typed appointment projection and presentation schema."
        },
        {
          "name": "SelectedIndex",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Index of the initially selected view. Default 0."
        },
        {
          "name": "ShowDateTitle",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the current-range title in the header. Default true."
        },
        {
          "name": "ShowHeader",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the navigation/view-switch header bar. Default true."
        },
        {
          "name": "ShowNavigationButtons",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the prev/next arrow buttons in the header. Default true."
        },
        {
          "name": "ShowTodayButton",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the \"today\" button in the header. Default true."
        },
        {
          "name": "SlotRender",
          "kind": "parameter",
          "type": "Action<SchedulerSlotRenderEventArgs>",
          "required": false,
          "summary": "Sync per-slot render hook."
        },
        {
          "name": "SlotSelect",
          "kind": "event",
          "type": "EventCallback<SchedulerSlotSelectEventArgs>",
          "required": false,
          "summary": "Fires when an empty time slot is clicked."
        },
        {
          "name": "Template",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Custom appointment content. Receives the original TItem. Falls back to the projected text."
        },
        {
          "name": "TodaySelect",
          "kind": "event",
          "type": "EventCallback<SchedulerTodaySelectEventArgs>",
          "required": false,
          "summary": "Fires when the \"today\" button is clicked (before the date moves)."
        },
        {
          "name": "TodayText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label for the \"today\" button. Default \"Hoje\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSchedulerForm",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "CRUD-enabled Scheduler that edits detached drafts through OmniDataForm and the shared headless entity coordinator.",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniSchedulerForm.razor",
      "parameters": [
        {
          "name": "AppointmentMouseEnter",
          "kind": "event",
          "type": "EventCallback<SchedulerAppointmentMouseEventArgs<TItem>>",
          "required": false,
          "summary": "Raised when the pointer enters an appointment."
        },
        {
          "name": "AppointmentMouseLeave",
          "kind": "event",
          "type": "EventCallback<SchedulerAppointmentMouseEventArgs<TItem>>",
          "required": false,
          "summary": "Raised when the pointer leaves an appointment."
        },
        {
          "name": "AppointmentMove",
          "kind": "event",
          "type": "EventCallback<SchedulerAppointmentMoveEventArgs>",
          "required": false,
          "summary": "Raised when an appointment is moved."
        },
        {
          "name": "AppointmentRender",
          "kind": "parameter",
          "type": "Action<SchedulerAppointmentRenderEventArgs<TItem>>",
          "required": false,
          "summary": "Per-appointment render hook."
        },
        {
          "name": "AppointmentSelect",
          "kind": "event",
          "type": "EventCallback<SchedulerAppointmentSelectEventArgs<TItem>>",
          "required": false,
          "summary": "Raised after an appointment is selected for editing."
        },
        {
          "name": "AppointmentTemplate",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Typed appointment content."
        },
        {
          "name": "Date",
          "kind": "parameter",
          "type": "DateTime",
          "required": false,
          "summary": "Current Scheduler date."
        },
        {
          "name": "DateChanged",
          "kind": "event",
          "type": "EventCallback<DateTime>",
          "required": false,
          "summary": "Raised when Scheduler navigation changes the date."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables generated entity operations."
        },
        {
          "name": "EditorSchema",
          "kind": "parameter",
          "type": "EntityEditorSchema<TItem, TKey>",
          "required": true,
          "summary": "Reusable DataForm and CRUD definition."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IList<TItem>",
          "required": true,
          "summary": "Mutable appointment snapshot rendered by the Scheduler."
        },
        {
          "name": "ItemsChanged",
          "kind": "event",
          "type": "EventCallback<IList<TItem>>",
          "required": false,
          "summary": "Raised after a successful local mutation."
        },
        {
          "name": "LoadData",
          "kind": "event",
          "type": "EventCallback<SchedulerLoadDataEventArgs>",
          "required": false,
          "summary": "Raised when the visible Scheduler range changes."
        },
        {
          "name": "MaximumItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum local appointment count."
        },
        {
          "name": "MinimumItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Minimum local appointment count."
        },
        {
          "name": "NavigationTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom Scheduler navigation content."
        },
        {
          "name": "OperationCompleted",
          "kind": "event",
          "type": "EventCallback<EntityEditorOperationEventArgs<TItem, TKey>>",
          "required": false,
          "summary": "Raised after a successful generated CRUD operation."
        },
        {
          "name": "OperationFailed",
          "kind": "event",
          "type": "EventCallback<EntityEditorOperationFailedEventArgs<TItem, TKey>>",
          "required": false,
          "summary": "Raised after a handled generated CRUD failure."
        },
        {
          "name": "Provider",
          "kind": "parameter",
          "type": "IOmniEntityMutationProvider<TItem, TKey>",
          "required": false,
          "summary": "Optional persistence provider. The owner refreshes Items when requested."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Makes generated entity operations read-only."
        },
        {
          "name": "RefreshRequested",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Requests that the owner reload provider-backed Items."
        },
        {
          "name": "SchedulerClass",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Additional CSS class applied directly to the Scheduler."
        },
        {
          "name": "SchedulerSchema",
          "kind": "parameter",
          "type": "SchedulerSchema<TItem>",
          "required": true,
          "summary": "Strongly typed appointment projection and Scheduler defaults."
        },
        {
          "name": "SchedulerStyle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Additional inline styles applied directly to the Scheduler."
        },
        {
          "name": "SelectedIndex",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Initially selected Scheduler view index."
        },
        {
          "name": "SlotFactory",
          "kind": "parameter",
          "type": "Func<SchedulerSlotSelectEventArgs, TItem>",
          "required": false,
          "summary": "Creates a prefilled draft from an empty Scheduler slot."
        },
        {
          "name": "SlotRender",
          "kind": "parameter",
          "type": "Action<SchedulerSlotRenderEventArgs>",
          "required": false,
          "summary": "Per-slot render hook."
        },
        {
          "name": "SlotSelect",
          "kind": "event",
          "type": "EventCallback<SchedulerSlotSelectEventArgs>",
          "required": false,
          "summary": "Raised after an empty slot is selected."
        },
        {
          "name": "ToolbarContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Additional editor toolbar content."
        },
        {
          "name": "Views",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Scheduler view declarations. Day, Week and Month are generated when omitted."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTree",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniTree — hierarchical tree view (RadzenTree port).",
      "source": "src/Omni.Blazor/Components/Data/Tree/OmniTree.razor",
      "parameters": [
        {
          "name": "AllowCheckChildren",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "When checking a node also checks all its descendants. Default true."
        },
        {
          "name": "AllowCheckParents",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "When all children of a node are checked, the parent auto-checks. Default true."
        },
        {
          "name": "AllowCheckboxes",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Shows a tri-state checkbox on every node."
        },
        {
          "name": "CheckedValues",
          "kind": "parameter",
          "type": "IEnumerable<object>",
          "required": false,
          "summary": "The set of checked values (two-way bindable)."
        },
        {
          "name": "CheckedValuesChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<object>>",
          "required": false,
          "summary": "Fired when the checked set changes (paired with CheckedValues for two-way binding)."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Inline content: OmniTreeItem and/or OmniTreeLevel."
        },
        {
          "name": "Collapsed",
          "kind": "event",
          "type": "EventCallback<TreeEventArgs>",
          "required": false,
          "summary": "Fired after a node collapses."
        },
        {
          "name": "Data",
          "kind": "parameter",
          "type": "IEnumerable",
          "required": false,
          "summary": "Data source for a data-bound tree (used with OmniTreeLevel)."
        },
        {
          "name": "Expand",
          "kind": "event",
          "type": "EventCallback<TreeExpandEventArgs>",
          "required": false,
          "summary": "Fired when a node is expanded — set args.Children here to lazy-load."
        },
        {
          "name": "Expanded",
          "kind": "event",
          "type": "EventCallback<TreeEventArgs>",
          "required": false,
          "summary": "Fired after a node expands (post-load)."
        },
        {
          "name": "SelectionChanged",
          "kind": "event",
          "type": "EventCallback<TreeEventArgs>",
          "required": false,
          "summary": "Fired when the selection changes (carries value + text)."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "The currently selected node's value (two-way bindable)."
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<object>",
          "required": false,
          "summary": "Fired when the selected value changes (paired with Value for two-way binding)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTreeGrid",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Accessible hierarchical data table with bounded lazy loading and selection.",
      "source": "src/Omni.Blazor/Components/Data/OmniTreeGrid.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for the tree grid."
        },
        {
          "name": "Children",
          "kind": "parameter",
          "type": "Func<TItem, IEnumerable<TItem>>",
          "required": false,
          "summary": "Synchronous child selector for fully in-memory trees."
        },
        {
          "name": "ChildrenProvider",
          "kind": "parameter",
          "type": "HierarchyChildrenProvider<TItem>",
          "required": false,
          "summary": "Asynchronous, cancellable lazy child source."
        },
        {
          "name": "CollapseText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for collapsing a row."
        },
        {
          "name": "Columns",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Declarative OmniTreeGridColumn definitions."
        },
        {
          "name": "EmptyTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional empty-state content."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Empty-state text."
        },
        {
          "name": "ExpandOnRowDoubleClick",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether a row double-click toggles its expansion state."
        },
        {
          "name": "ExpandText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for expanding a row."
        },
        {
          "name": "ExpandedKeys",
          "kind": "parameter",
          "type": "IReadOnlyCollection<object>",
          "required": false,
          "summary": "Externally controlled expanded key set. Replace the collection when updating it."
        },
        {
          "name": "ExpandedKeysChanged",
          "kind": "event",
          "type": "EventCallback<IReadOnlyCollection<object>>",
          "required": false,
          "summary": "Raised with an immutable snapshot after expansion changes."
        },
        {
          "name": "HasChildren",
          "kind": "parameter",
          "type": "Func<TItem, bool>",
          "required": false,
          "summary": "Predicate indicating whether an item can be expanded."
        },
        {
          "name": "IndentSize",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Indentation per hierarchy level in CSS pixels."
        },
        {
          "name": "InitiallyExpanded",
          "kind": "parameter",
          "type": "Func<TItem, bool>",
          "required": false,
          "summary": "Optional predicate applied once when a data source is reset."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "Root items in the hierarchy."
        },
        {
          "name": "KeySelector",
          "kind": "parameter",
          "type": "Func<TItem, object>",
          "required": false,
          "summary": "Stable unique key selector. Keys identify expansion, cache and loading state; changing an item's key requires ReloadAsync."
        },
        {
          "name": "LimitReachedText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Template shown when the visible-row limit is reached."
        },
        {
          "name": "LoadErrorText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Message shown when lazy child loading fails."
        },
        {
          "name": "LoadFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised when an uncancelled lazy-load operation fails."
        },
        {
          "name": "MaxCachedItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum total lazy-loaded child items retained in the LRU cache."
        },
        {
          "name": "MaxCachedNodes",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum lazy-loaded parent nodes retained in the LRU cache."
        },
        {
          "name": "MaxChildrenPerNode",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum children retained from a single lazy-load response."
        },
        {
          "name": "MaxConcurrentLoads",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum number of lazy child requests executed concurrently."
        },
        {
          "name": "MaxDepth",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum traversed hierarchy depth, protecting against cycles and pathological input."
        },
        {
          "name": "MaxVisibleRows",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum rows flattened and rendered at once."
        },
        {
          "name": "RetryText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label for retrying a failed lazy load."
        },
        {
          "name": "RowClass",
          "kind": "parameter",
          "type": "Func<TItem, string>",
          "required": false,
          "summary": "Optional row CSS class selector."
        },
        {
          "name": "RowSelected",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Raised after a row is selected."
        },
        {
          "name": "SelectedItem",
          "kind": "parameter",
          "type": "TItem",
          "required": false,
          "summary": "Currently selected row item for two-way binding."
        },
        {
          "name": "SelectedItemChanged",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Raised when SelectedItem changes."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTreeGridColumn",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Declarative column definition registered with a parent OmniTreeGrid.",
      "source": "src/Omni.Blazor/Components/Data/OmniTreeGridColumn.razor",
      "parameters": [
        {
          "name": "Align",
          "kind": "parameter",
          "type": "TreeGridColumnAlign",
          "enumValues": [
            {
              "name": "Start",
              "summary": "Aligns content to the inline start."
            },
            {
              "name": "Center",
              "summary": "Centers content."
            },
            {
              "name": "End",
              "summary": "Aligns content to the inline end."
            }
          ],
          "required": false,
          "summary": "Horizontal cell alignment."
        },
        {
          "name": "IsHierarchyAnchor",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marks this column as the hierarchy indentation/expansion anchor."
        },
        {
          "name": "Property",
          "kind": "parameter",
          "type": "Func<TItem, object>",
          "required": false,
          "summary": "Raw value selector used by the default cell renderer."
        },
        {
          "name": "Template",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Custom cell template receiving the row item."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TItem, string>",
          "required": false,
          "summary": "Text selector overriding Property formatting."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Column header text."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "CSS width such as 240px or 30%."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTreeItem",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single node of an OmniTree.",
      "source": "src/Omni.Blazor/Components/Data/Tree/OmniTreeItem.razor",
      "parameters": [
        {
          "name": "Checkable",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Whether this node's checkbox is enabled. Default true."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Nested child nodes (inline) or data-bound children render fragment."
        },
        {
          "name": "Expanded",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Whether this node starts expanded."
        },
        {
          "name": "HasChildren",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Whether this node has children — shows the chevron even before children load (lazy)."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional leading icon name (Omni icon library)."
        },
        {
          "name": "Selected",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Whether this node starts selected."
        },
        {
          "name": "Template",
          "kind": "slot",
          "type": "RenderFragment<OmniTreeItem>",
          "contextType": "OmniTreeItem",
          "required": false,
          "summary": "Custom template (receives this item — use context.Value/context.Text)."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "The node's text (used when no Template)."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "The value bound to this node (passed to events / selection / checks)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTreeLevel",
      "category": "Data",
      "baseType": "ComponentBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Declarative binding for one depth of a data-bound OmniTree.",
      "source": "src/Omni.Blazor/Components/Data/Tree/OmniTreeLevel.razor",
      "parameters": [
        {
          "name": "Checkable",
          "kind": "parameter",
          "type": "Func<object, bool>",
          "required": false,
          "summary": "Whether a node's checkbox is enabled. Default: all checkable."
        },
        {
          "name": "Children",
          "kind": "parameter",
          "type": "Func<object, IEnumerable>",
          "required": false,
          "summary": "Selector for the enumerable that holds each node's children."
        },
        {
          "name": "Expanded",
          "kind": "parameter",
          "type": "Func<object, bool>",
          "required": false,
          "summary": "Whether a node starts expanded."
        },
        {
          "name": "HasChildren",
          "kind": "parameter",
          "type": "Func<object, bool>",
          "required": false,
          "summary": "Whether a node has children (controls the chevron). Defaults to \"children non-empty\"."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "Func<object, string>",
          "required": false,
          "summary": "Leading-icon selector for each node."
        },
        {
          "name": "Selected",
          "kind": "parameter",
          "type": "Func<object, bool>",
          "required": false,
          "summary": "Whether a node starts selected."
        },
        {
          "name": "Template",
          "kind": "slot",
          "type": "RenderFragment<OmniTreeItem>",
          "contextType": "OmniTreeItem",
          "required": false,
          "summary": "Per-node template (receives the OmniTreeItem; use context.Value/context.Text)."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "Func<object, string>",
          "required": false,
          "summary": "Text selector for each node. Falls back to ToString()."
        }
      ]
    },
    {
      "name": "OmniVirtualize",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Thin wrapper over Blazor's built-in <Virtualize TItem=\"...\">.",
      "source": "src/Omni.Blazor/Components/Data/OmniVirtualize.razor",
      "parameters": [
        {
          "name": "DefaultEmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when Items is empty and EmptyContent isn't set."
        },
        {
          "name": "EmptyContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom empty state. If null, shows DefaultEmptyText."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Fixed height for the scrolling viewport (default 400px). Pass null to let the parent size the container — useful when the virtualize lives inside a flex/grid pane that already constrains height. Virtualize`1 requires a bounded height to virtualize correctly; without one it will render every item."
        },
        {
          "name": "ItemContent",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": true,
          "summary": "Template for each rendered item."
        },
        {
          "name": "ItemSize",
          "kind": "parameter",
          "type": "float",
          "required": false,
          "summary": "Estimated height of each row, in pixels. Default 50. Drives overscan + placeholder height."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "ICollection<TItem>",
          "required": false,
          "summary": "Synchronous data source. Mutually exclusive with ItemsProvider."
        },
        {
          "name": "ItemsProvider",
          "kind": "parameter",
          "type": "ItemsProviderDelegate<TItem>",
          "required": false,
          "summary": "Async/server-side data source. Mutually exclusive with Items."
        },
        {
          "name": "OverscanCount",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Number of extra items to render outside the viewport. Default 3 (Blazor default)."
        },
        {
          "name": "Placeholder",
          "kind": "slot",
          "type": "RenderFragment<PlaceholderContext>",
          "contextType": "PlaceholderContext",
          "required": false,
          "summary": "Template shown for items still being fetched (ItemsProvider mode)."
        },
        {
          "name": "SpacerElement",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "HTML tag usada para os placeholders/spacers do Virtualize`1. Default \"div\". Use \"tr\" quando virtualizar dentro de um <tbody> (mantém semântica de tabela)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniWeekView",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Seven-day week view with time slots.",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniWeekView.razor",
      "parameters": [
        {
          "name": "EndTime",
          "kind": "parameter",
          "type": "TimeSpan",
          "required": false,
          "summary": "Last time slot of the day (exclusive). Default 24:00."
        },
        {
          "name": "HeaderFormat",
          "kind": "parameter",
          "type": "string",
          "default": "ddd",
          "required": false,
          "summary": "Format for the day-of-week header. Default \"ddd\"."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "calendar",
          "required": false,
          "summary": "Icon name shown on this view's switch tab. Default \"calendar\"."
        },
        {
          "name": "MinutesPerSlot",
          "kind": "parameter",
          "type": "int",
          "default": "30",
          "required": false,
          "summary": "Minutes per slot row. Default 30."
        },
        {
          "name": "StartTime",
          "kind": "parameter",
          "type": "TimeSpan",
          "required": false,
          "summary": "First time slot of the day. Default 08:00."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Semana",
          "required": false,
          "summary": "Label shown on this view's switch tab. Default \"Semana\"."
        },
        {
          "name": "TimeFormat",
          "kind": "parameter",
          "type": "string",
          "default": "HH:mm",
          "required": false,
          "summary": "Time format for slot labels. Default \"HH:mm\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniWorkflowDesigner",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Workflow composition surface with Diagram editing, bounded undo/redo, graph validation and a typed PropertyGrid inspector.",
      "source": "src/Omni.Blazor/Components/Data/Diagram/OmniWorkflowDesigner.razor",
      "parameters": [
        {
          "name": "CanvasClass",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Additional CSS class applied to the Diagram canvas."
        },
        {
          "name": "CanvasStyle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Additional inline styles applied to the Diagram canvas."
        },
        {
          "name": "ConnectionFactory",
          "kind": "parameter",
          "type": "Func<DiagramConnectEventArgs, DiagramEdge>",
          "required": false,
          "summary": "Creates an edge for a completed connection. Omit to handle OnConnect externally."
        },
        {
          "name": "Edges",
          "kind": "parameter",
          "type": "IReadOnlyList<DiagramEdge>",
          "required": false,
          "summary": "Controlled workflow edge snapshot."
        },
        {
          "name": "EdgesChanged",
          "kind": "event",
          "type": "EventCallback<IReadOnlyList<DiagramEdge>>",
          "required": false,
          "summary": "Raised after workflow edges change."
        },
        {
          "name": "EmptyContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Content rendered when the workflow has no nodes."
        },
        {
          "name": "FitOnMount",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Fits the graph on first render."
        },
        {
          "name": "InspectorAriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible inspector label."
        },
        {
          "name": "InspectorChanged",
          "kind": "event",
          "type": "EventCallback<PropertyGridChangedEventArgs<TNode>>",
          "required": false,
          "summary": "Raised when an inspector property changes."
        },
        {
          "name": "InspectorEmptyContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom content shown when no typed node is selected."
        },
        {
          "name": "InspectorEmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inspector empty-state title."
        },
        {
          "name": "InspectorSchema",
          "kind": "parameter",
          "type": "DataFormSchema<TNode>",
          "required": false,
          "summary": "Typed inspector schema used when a selected node carries TNode data."
        },
        {
          "name": "InspectorTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inspector heading."
        },
        {
          "name": "MaximumHistory",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum retained undo entries. Default 50, maximum 200."
        },
        {
          "name": "NodeTemplate",
          "kind": "slot",
          "type": "RenderFragment<DiagramNode>",
          "contextType": "DiagramNode",
          "required": false,
          "summary": "Custom Diagram node content."
        },
        {
          "name": "Nodes",
          "kind": "parameter",
          "type": "IReadOnlyList<DiagramNode>",
          "required": false,
          "summary": "Controlled workflow node snapshot."
        },
        {
          "name": "NodesChanged",
          "kind": "event",
          "type": "EventCallback<IReadOnlyList<DiagramNode>>",
          "required": false,
          "summary": "Raised after workflow nodes change."
        },
        {
          "name": "OnConnect",
          "kind": "event",
          "type": "EventCallback<DiagramConnectEventArgs>",
          "required": false,
          "summary": "Raised for every completed connection gesture."
        },
        {
          "name": "OnExternalDrop",
          "kind": "event",
          "type": "EventCallback<DiagramExternalDropEventArgs>",
          "required": false,
          "summary": "Raised for external canvas drops."
        },
        {
          "name": "PaletteAriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible palette label."
        },
        {
          "name": "PaletteContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional left-side workflow palette."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables graph and inspector mutations."
        },
        {
          "name": "RedoText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Redo action text."
        },
        {
          "name": "RunState",
          "kind": "parameter",
          "type": "DiagramRunState",
          "required": false,
          "summary": "Optional execution-state overlay."
        },
        {
          "name": "Selection",
          "kind": "parameter",
          "type": "DiagramSelection",
          "required": false,
          "summary": "Controlled Diagram selection."
        },
        {
          "name": "SelectionChanged",
          "kind": "event",
          "type": "EventCallback<DiagramSelection>",
          "required": false,
          "summary": "Raised after selection changes."
        },
        {
          "name": "ShowAutoLayout",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the built-in auto-layout action."
        },
        {
          "name": "ShowControls",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows viewport controls."
        },
        {
          "name": "ShowMinimap",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the canvas minimap."
        },
        {
          "name": "ToolbarAriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible toolbar label."
        },
        {
          "name": "ToolbarContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Additional toolbar content."
        },
        {
          "name": "UndoText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Undo action text."
        },
        {
          "name": "UpdateNode",
          "kind": "parameter",
          "type": "Func<DiagramNode, TNode, DiagramNode>",
          "required": false,
          "summary": "Projects an edited typed payload back into its Diagram node."
        },
        {
          "name": "ValidationTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Graph validation heading."
        },
        {
          "name": "Validator",
          "kind": "parameter",
          "type": "Func<IReadOnlyList<DiagramNode>, IReadOnlyList<DiagramEdge>, IReadOnlyList<string>>",
          "required": false,
          "summary": "Bounded synchronous graph validator."
        },
        {
          "name": "Viewport",
          "kind": "parameter",
          "type": "DiagramViewport",
          "required": false,
          "summary": "Controlled Diagram viewport."
        },
        {
          "name": "ViewportChanged",
          "kind": "event",
          "type": "EventCallback<DiagramViewport>",
          "required": false,
          "summary": "Raised after the viewport changes."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniYearPlannerView",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Year planner: 12 month rows × day columns with appointment bars (mirrors RadzenYearPlannerView).",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniYearPlannerView.razor",
      "parameters": [
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "grid",
          "required": false,
          "summary": "Icon name shown on this view's switch tab. Default \"grid\"."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Planner",
          "required": false,
          "summary": "Label shown on this view's switch tab. Default \"Planner\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "StartMonth",
          "kind": "parameter",
          "type": "Month",
          "enumValues": [
            {
              "name": "January",
              "summary": "Janeiro."
            },
            {
              "name": "February",
              "summary": "Fevereiro."
            },
            {
              "name": "March",
              "summary": "Março."
            },
            {
              "name": "April",
              "summary": "Abril."
            },
            {
              "name": "May",
              "summary": "Maio."
            },
            {
              "name": "June",
              "summary": "Junho."
            },
            {
              "name": "July",
              "summary": "Julho."
            },
            {
              "name": "August",
              "summary": "Agosto."
            },
            {
              "name": "September",
              "summary": "Setembro."
            },
            {
              "name": "October",
              "summary": "Outubro."
            },
            {
              "name": "November",
              "summary": "Novembro."
            },
            {
              "name": "December",
              "summary": "Dezembro."
            }
          ],
          "default": "January",
          "required": false,
          "summary": "First month of the displayed year (fiscal start). Default January.",
          "inheritedFrom": "OmniYearViewBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniYearTimelineView",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Year timeline: 12 month rows × day columns, connected timeline styling (mirrors RadzenYearTimelineView).",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniYearTimelineView.razor",
      "parameters": [
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "trending-up",
          "required": false,
          "summary": "Icon name shown on this view's switch tab. Default \"trending-up\"."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Timeline",
          "required": false,
          "summary": "Label shown on this view's switch tab. Default \"Timeline\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "StartMonth",
          "kind": "parameter",
          "type": "Month",
          "enumValues": [
            {
              "name": "January",
              "summary": "Janeiro."
            },
            {
              "name": "February",
              "summary": "Fevereiro."
            },
            {
              "name": "March",
              "summary": "Março."
            },
            {
              "name": "April",
              "summary": "Abril."
            },
            {
              "name": "May",
              "summary": "Maio."
            },
            {
              "name": "June",
              "summary": "Junho."
            },
            {
              "name": "July",
              "summary": "Julho."
            },
            {
              "name": "August",
              "summary": "Agosto."
            },
            {
              "name": "September",
              "summary": "Setembro."
            },
            {
              "name": "October",
              "summary": "Outubro."
            },
            {
              "name": "November",
              "summary": "Novembro."
            },
            {
              "name": "December",
              "summary": "Dezembro."
            }
          ],
          "default": "January",
          "required": false,
          "summary": "First month of the displayed year (fiscal start). Default January.",
          "inheritedFrom": "OmniYearViewBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniYearView",
      "category": "Data",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Twelve mini-month calendars (mirrors RadzenYearView).",
      "source": "src/Omni.Blazor/Components/Data/Scheduler/OmniYearView.razor",
      "parameters": [
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "calendar",
          "required": false,
          "summary": "Icon name shown on this view's switch tab. Default \"calendar\"."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Ano",
          "required": false,
          "summary": "Label shown on this view's switch tab. Default \"Ano\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "StartMonth",
          "kind": "parameter",
          "type": "Month",
          "enumValues": [
            {
              "name": "January",
              "summary": "Janeiro."
            },
            {
              "name": "February",
              "summary": "Fevereiro."
            },
            {
              "name": "March",
              "summary": "Março."
            },
            {
              "name": "April",
              "summary": "Abril."
            },
            {
              "name": "May",
              "summary": "Maio."
            },
            {
              "name": "June",
              "summary": "Junho."
            },
            {
              "name": "July",
              "summary": "Julho."
            },
            {
              "name": "August",
              "summary": "Agosto."
            },
            {
              "name": "September",
              "summary": "Setembro."
            },
            {
              "name": "October",
              "summary": "Outubro."
            },
            {
              "name": "November",
              "summary": "Novembro."
            },
            {
              "name": "December",
              "summary": "Dezembro."
            }
          ],
          "default": "January",
          "required": false,
          "summary": "First month of the displayed year (fiscal start). Default January.",
          "inheritedFrom": "OmniYearViewBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAccordion",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Group of collapsible panels.",
      "source": "src/Omni.Blazor/Components/Display/OmniAccordion.razor",
      "parameters": [
        {
          "name": "Mode",
          "kind": "parameter",
          "type": "AccordionMode",
          "enumValues": [
            {
              "name": "Single",
              "summary": "Só um painel aberto por vez (abrir outro fecha o atual)."
            },
            {
              "name": "Multi",
              "summary": "Vários painéis abertos simultaneamente."
            }
          ],
          "default": "Single",
          "required": false,
          "summary": "Expansion behavior: Single (default) keeps only one item open at a time; Multi lets items expand independently."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAccordionItem",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single collapsible panel within an OmniAccordion, with a clickable header (icon + title) and an expandable body.",
      "source": "src/Omni.Blazor/Components/Display/OmniAccordionItem.razor",
      "parameters": [
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, the header is disabled and the item cannot be toggled."
        },
        {
          "name": "Expanded",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Initial/bound expanded state; supports two-way binding via ExpandedChanged."
        },
        {
          "name": "ExpandedChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Fired when the item expands or collapses, carrying the new expanded state."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon name rendered before the title in the header."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Plain-text header label, shown when TitleContent is not provided."
        },
        {
          "name": "TitleContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom header markup; takes precedence over Title when set."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAlert",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Inline banner — persists on the page (unlike Toast which auto-dismisses).",
      "source": "src/Omni.Blazor/Components/Display/OmniAlert.razor",
      "parameters": [
        {
          "name": "Actions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional action buttons/links rendered below the message."
        },
        {
          "name": "Dismissible",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, renders a close button that hides the alert."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the default severity-based leading icon."
        },
        {
          "name": "OnClosed",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Fired after the alert is dismissed via the close button."
        },
        {
          "name": "Severity",
          "kind": "parameter",
          "type": "NotificationSeverity",
          "enumValues": [
            {
              "name": "Info",
              "summary": "Informational (neutral/accent tone)."
            },
            {
              "name": "Success",
              "summary": "Success (good/green tone)."
            },
            {
              "name": "Warning",
              "summary": "Warning (warn/amber tone)."
            },
            {
              "name": "Error",
              "summary": "Error (danger/red tone)."
            }
          ],
          "default": "Info",
          "required": false,
          "summary": "Severity level (Info default) driving the color scheme and default icon."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional bold heading shown above the message."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAvatar",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Circular (or square) user avatar showing an image when available, otherwise fallback initials.",
      "source": "src/Omni.Blazor/Components/Display/OmniAvatar.razor",
      "parameters": [
        {
          "name": "ImageUrl",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "URL of the avatar image; when set, the image replaces the initials."
        },
        {
          "name": "Initials",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Fallback text (typically 1-2 letters) shown when no image is provided; also used as the image alt text."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "AvatarSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Pequeno."
            },
            {
              "name": "Md",
              "summary": "Médio (default)."
            },
            {
              "name": "Lg",
              "summary": "Grande."
            },
            {
              "name": "Xl",
              "summary": "Extra grande."
            },
            {
              "name": "XXl",
              "summary": "Gigante (2x extra grande)."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Avatar size (Md default): Sm, Md, Lg, Xl, or XXl."
        },
        {
          "name": "Square",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, renders a rounded-square avatar instead of a circle."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAvatarGroup",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Overlapping stack of avatars with an optional \"+N\" overflow chip — for member lists, assignees, participants.",
      "source": "src/Omni.Blazor/Components/Display/OmniAvatarGroup.razor",
      "parameters": [
        {
          "name": "More",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Overflow count rendered as a trailing \"+N\" chip."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "AvatarSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Pequeno."
            },
            {
              "name": "Md",
              "summary": "Médio (default)."
            },
            {
              "name": "Lg",
              "summary": "Grande."
            },
            {
              "name": "Xl",
              "summary": "Extra grande."
            },
            {
              "name": "XXl",
              "summary": "Gigante (2x extra grande)."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Sizes the overlap + \"+N\" chip to match the avatars. Default Md."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBadge",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Dual-mode badge:",
      "source": "src/Omni.Blazor/Components/Display/OmniBadge.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Override aria-label of the badge bubble."
        },
        {
          "name": "Bordered",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Adds a contrast ring around the badge so it visually separates from the child."
        },
        {
          "name": "Content",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Badge content — supports string or int. When int and value > Max, renders as \"Max+\" (e.g. \"99+\")."
        },
        {
          "name": "Dot",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Render as a small dot (no text/icon). Use for \"new notification\" indicators."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon at the start of the badge (or inside the overlay bubble)."
        },
        {
          "name": "Max",
          "kind": "parameter",
          "type": "int",
          "default": "99",
          "required": false,
          "summary": "Numeric cap. When Content is an int > Max, renders \"Max+\". Default 99."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Fires on click of the badge bubble (NOT the wrapped child)."
        },
        {
          "name": "Origin",
          "kind": "parameter",
          "type": "BadgeOrigin",
          "enumValues": [
            {
              "name": "TopEnd",
              "summary": "Topo, inline-end (top-right em LTR) — o \"dot de notificação\" clássico."
            },
            {
              "name": "TopStart",
              "summary": "Topo, inline-start (top-left em LTR)."
            },
            {
              "name": "BottomEnd",
              "summary": "Base, inline-end (bottom-right em LTR)."
            },
            {
              "name": "BottomStart",
              "summary": "Base, inline-start (bottom-left em LTR)."
            }
          ],
          "default": "TopEnd",
          "required": false,
          "summary": "Anchor corner. TopEnd (default) puts the badge in the top-right corner."
        },
        {
          "name": "Overlap",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Inset the badge over the wrapped child (recommended for round targets — avatars, icon buttons)."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Badge label (standalone mode). Ignored in overlay mode if Content is set."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "BadgeVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Cinza neutro (default)."
            },
            {
              "name": "Good",
              "summary": "Tom \"good\"/verde (sucesso)."
            },
            {
              "name": "Warn",
              "summary": "Tom \"warn\"/âmbar (atenção)."
            },
            {
              "name": "Danger",
              "summary": "Tom \"danger\"/vermelho (erro/crítico)."
            },
            {
              "name": "Info",
              "summary": "Tom \"info\"/azul (informativo)."
            },
            {
              "name": "Accent",
              "summary": "Cor accent do tema atual."
            },
            {
              "name": "Plain",
              "summary": "Sem fundo — só texto (plain)."
            },
            {
              "name": "Solid",
              "summary": "Fundo sólido de alto contraste."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Visual color variant."
        },
        {
          "name": "Visible",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Toggle badge visibility (the wrapped child still renders). Default true."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBarcode",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Renders a 1D barcode (Code128 / Code39 / EAN-13 / EAN-8 / UPC-A) as inline SVG.",
      "source": "src/Omni.Blazor/Components/Display/OmniBarcode.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label customizado. Default = Value."
        },
        {
          "name": "Background",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "Cor de fundo. Default vazio (transparente — herda o container)."
        },
        {
          "name": "BarHeight",
          "kind": "parameter",
          "type": "double",
          "default": "60",
          "required": false,
          "summary": "Altura das barras em unidades de viewBox. Default 60."
        },
        {
          "name": "FontSize",
          "kind": "parameter",
          "type": "double",
          "default": "10",
          "required": false,
          "summary": "Tamanho da fonte do texto inferior em unidades de viewBox. Default 10."
        },
        {
          "name": "Foreground",
          "kind": "parameter",
          "type": "string",
          "default": "var(--omni-fg)",
          "required": false,
          "summary": "Cor das barras (qualquer CSS color). Default --omni-fg."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "CSS height inline. Ex: \"80px\"."
        },
        {
          "name": "QuietZoneModules",
          "kind": "parameter",
          "type": "int",
          "default": "10",
          "required": false,
          "summary": "Margem em torno do código (em módulos). Default 10 (recomendação ISO)."
        },
        {
          "name": "ShowValue",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Exibir o valor decifrado embaixo do código. Default true."
        },
        {
          "name": "Stretch",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Esticar o SVG para preencher o container (preserveAspectRatio=none). Default true — permite controle exclusivo via CSS width/height."
        },
        {
          "name": "Type",
          "kind": "parameter",
          "type": "BarcodeType",
          "enumValues": [
            {
              "name": "Code128",
              "summary": "Alfanumérico, alta densidade (padrão)."
            },
            {
              "name": "Code39",
              "summary": "Letras maiúsculas, números, alguns símbolos. Auto-checksum."
            },
            {
              "name": "Ean13",
              "summary": "13 dígitos (12 + checksum). Padrão de varejo internacional."
            },
            {
              "name": "Ean8",
              "summary": "Versão curta do EAN-13 (8 dígitos)."
            },
            {
              "name": "UpcA",
              "summary": "12 dígitos, padrão de varejo norte-americano."
            }
          ],
          "default": "Code128",
          "required": false,
          "summary": "Símbologia. Default Code128."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Conteúdo a codificar. Vazio renderiza placeholder vazio."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "CSS width inline (atalho para style). Ex: \"240px\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCard",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Structural card container — a flex column whose direct children carry roles (header / body / media / footer), mirroring Bootstrap's `.card`.",
      "source": "src/Omni.Blazor/Components/Display/OmniCard.razor",
      "parameters": [
        {
          "name": "Clickable",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Applies pointer cursor + hover lift (card-as-link)."
        },
        {
          "name": "Elevated",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Adds a shadow to lift the card."
        },
        {
          "name": "Flat",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Removes the border — variant for secondary regions."
        },
        {
          "name": "FooterContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Footer content (CTAs, metadata)."
        },
        {
          "name": "HeaderActions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Actions rendered on the right side of the header."
        },
        {
          "name": "HeaderContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom header content (overrides Title/Subtitle)."
        },
        {
          "name": "Horizontal",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Lays the card out horizontally (media beside body)."
        },
        {
          "name": "MaxBodyHeight",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "When set, the body scrolls internally at this max height (scrollable card)."
        },
        {
          "name": "NoPadding",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Escape-hatch: forces the body flush (no padding) even for mixed content."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Raised when the card is clicked (also enables the clickable style)."
        },
        {
          "name": "Subtitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Subtitle shown below the title."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Title shown in the card header."
        },
        {
          "name": "Tone",
          "kind": "parameter",
          "type": "CardTone",
          "enumValues": [
            {
              "name": "None",
              "summary": "Sem cor temática (neutro padrão)."
            },
            {
              "name": "Accent",
              "summary": "Cor accent do tema."
            },
            {
              "name": "Neutral",
              "summary": "Tom neutro/cinza."
            },
            {
              "name": "Info",
              "summary": "Tom informativo (azul)."
            },
            {
              "name": "Success",
              "summary": "Tom de sucesso (verde)."
            },
            {
              "name": "Warning",
              "summary": "Tom de atenção (âmbar)."
            },
            {
              "name": "Danger",
              "summary": "Tom de perigo (vermelho)."
            }
          ],
          "default": "None",
          "required": false,
          "summary": "Thematic colour. Filled on the Default variant; border-only on Outline."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "CardVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Superfície elevada padrão."
            },
            {
              "name": "Accent",
              "summary": "Moldura/realce na cor accent."
            },
            {
              "name": "Outline",
              "summary": "Apenas contorno, sem fundo preenchido."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Visual variant: Default surface, Accent muted frame, or Outline."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCardBody",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Structural card part — an explicit padded body section.",
      "source": "src/Omni.Blazor/Components/Display/OmniCardBody.razor",
      "parameters": [
        {
          "name": "Divided",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Draws a divider line above this section (Metronic-style grouped card)."
        },
        {
          "name": "NoPadding",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Removes the section padding (flush content)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCardGroup",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniCardGroup — connects several <OmniCard> into one segmented set (RadzenCardGroup port): no gaps, squared inner corners, rounded outer ends, shared 1px dividers.",
      "source": "src/Omni.Blazor/Components/Display/OmniCardGroup.razor",
      "parameters": [
        {
          "name": "Orientation",
          "kind": "parameter",
          "type": "Orientation",
          "enumValues": [
            {
              "name": "Horizontal",
              "summary": "Horizontal."
            },
            {
              "name": "Vertical",
              "summary": "Vertical."
            }
          ],
          "default": "Horizontal",
          "required": false,
          "summary": "Layout direction. Horizontal (default) connects side by side; Vertical stacks."
        },
        {
          "name": "Responsive",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "When Horizontal, stack the cards once the group gets narrow. Default true."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCardMedia",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Structural card part — a flush image / media block.",
      "source": "src/Omni.Blazor/Components/Display/OmniCardMedia.razor",
      "parameters": [
        {
          "name": "Alt",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Alternative text for the image."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional fixed height (e.g. \"160px\")."
        },
        {
          "name": "Position",
          "kind": "parameter",
          "type": "CardMediaPosition",
          "enumValues": [
            {
              "name": "Top",
              "summary": "Mídia no topo do card."
            },
            {
              "name": "Bottom",
              "summary": "Mídia na base do card."
            },
            {
              "name": "Overlay",
              "summary": "Mídia em fundo, com o conteúdo sobreposto."
            },
            {
              "name": "Start",
              "summary": "Mídia ao lado inicial (inline-start)."
            },
            {
              "name": "End",
              "summary": "Mídia ao lado final (inline-end)."
            }
          ],
          "default": "Top",
          "required": false,
          "summary": "Where the media sits in the card. Default Top."
        },
        {
          "name": "Src",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Image URL. When set, renders an <img>."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCarousel",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniCarousel — a slideshow that cycles through <OmniCarouselItem> slides (RadzenCarousel port).",
      "source": "src/Omni.Blazor/Components/Display/OmniCarousel.razor",
      "parameters": [
        {
          "name": "AllowNavigation",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Whether the prev/next buttons are shown. Default true."
        },
        {
          "name": "AllowPaging",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Whether the pager dots are shown. Default true."
        },
        {
          "name": "AllowScroll",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Whether the user can scroll/swipe between slides. Default true."
        },
        {
          "name": "AnimationDuration",
          "kind": "parameter",
          "type": "double",
          "required": false,
          "summary": "Slide transition duration (ms). null = default smooth (~400ms), 0 = instant."
        },
        {
          "name": "Auto",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Whether the carousel auto-cycles. Default true."
        },
        {
          "name": "ButtonSize",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Lg",
          "required": false,
          "summary": "Size of the prev/next buttons. Default Lg."
        },
        {
          "name": "ButtonVariant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Ghost",
          "required": false,
          "summary": "Variant of the prev/next buttons. Default Ghost."
        },
        {
          "name": "Change",
          "kind": "event",
          "type": "EventCallback<int>",
          "required": false,
          "summary": "Raised when the active slide changes (general-purpose event)."
        },
        {
          "name": "Interval",
          "kind": "parameter",
          "type": "double",
          "default": "4000",
          "required": false,
          "summary": "Auto-cycle interval in milliseconds. Default 4000."
        },
        {
          "name": "ItemsPerPage",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Number of slides visible at once. Default 1."
        },
        {
          "name": "NextAriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for the next button. Default \"Próximo slide\"."
        },
        {
          "name": "NextIcon",
          "kind": "parameter",
          "type": "string",
          "default": "chevron-right",
          "required": false,
          "summary": "Next-button icon name. Default \"chevron-right\"."
        },
        {
          "name": "NextText",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "Optional next-button text."
        },
        {
          "name": "PagerButtonAriaLabelFormat",
          "kind": "parameter",
          "type": "string",
          "default": "Ir para o slide {0}",
          "required": false,
          "summary": "Format string for each pager dot's aria-label ({0} = 1-based page). Default \"Ir para o slide {0}\"."
        },
        {
          "name": "PagerOverlay",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Whether the pager overlays the slides (vs. sitting outside). Default true."
        },
        {
          "name": "PagerPosition",
          "kind": "parameter",
          "type": "CarouselPagerPosition",
          "enumValues": [
            {
              "name": "Top",
              "summary": "Dots acima dos slides."
            },
            {
              "name": "Bottom",
              "summary": "Dots abaixo dos slides (default)."
            },
            {
              "name": "TopAndBottom",
              "summary": "Dots nas duas extremidades."
            }
          ],
          "default": "Bottom",
          "required": false,
          "summary": "Pager (dots) position. Default Bottom."
        },
        {
          "name": "PrevAriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for the previous button. Default \"Slide anterior\"."
        },
        {
          "name": "PrevIcon",
          "kind": "parameter",
          "type": "string",
          "default": "chevron-left",
          "required": false,
          "summary": "Previous-button icon name. Default \"chevron-left\"."
        },
        {
          "name": "PrevText",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "Optional previous-button text (shown alongside / instead of the icon)."
        },
        {
          "name": "SelectedIndex",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Index of the active slide. Two-way bindable via @bind-SelectedIndex."
        },
        {
          "name": "SelectedIndexChanged",
          "kind": "event",
          "type": "EventCallback<int>",
          "required": false,
          "summary": "Raised when the active slide changes (binding callback)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCarouselItem",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniCarouselItem — a single slide inside an <OmniCarousel>.",
      "source": "src/Omni.Blazor/Components/Display/OmniCarouselItem.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "The slide content."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniChart",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "SVG chart supporting cartesian, stacked, scatter, bubble, radar, gauge, pie, donut and waterfall series.",
      "source": "src/Omni.Blazor/Components/Display/OmniChart.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label customizado."
        },
        {
          "name": "ColorScheme",
          "kind": "parameter",
          "type": "ChartColorScheme",
          "enumValues": [
            {
              "name": "Palette",
              "summary": "12 cores Tailwind-harmonizadas (default)."
            },
            {
              "name": "Accent",
              "summary": "Variações do --omni-accent atual (monocromática quente)."
            },
            {
              "name": "Pastel",
              "summary": "Cores suaves de baixa saturação."
            },
            {
              "name": "Semantic",
              "summary": "good, warn, danger, info, accent (5 cores)."
            }
          ],
          "default": "Palette",
          "required": false,
          "summary": "Esquema de cores das séries. Default Palette."
        },
        {
          "name": "DonutCenterLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Rótulo central de um chart Donut (linha superior, pequena)."
        },
        {
          "name": "DonutCenterValue",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor central de um chart Donut (linha inferior, grande)."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "default": "260px",
          "required": false,
          "summary": "Altura CSS do chart. Default \"260px\"."
        },
        {
          "name": "LegendPosition",
          "kind": "parameter",
          "type": "ChartLegendPosition",
          "enumValues": [
            {
              "name": "Top",
              "summary": "Acima do gráfico."
            },
            {
              "name": "Right",
              "summary": "À direita do gráfico."
            },
            {
              "name": "Bottom",
              "summary": "Abaixo do gráfico."
            },
            {
              "name": "Left",
              "summary": "À esquerda do gráfico."
            },
            {
              "name": "None",
              "summary": "Sem legenda."
            }
          ],
          "default": "Bottom",
          "required": false,
          "summary": "Posição da legenda. Default Bottom."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "ChartSchema",
          "required": false,
          "summary": "Optional immutable fluent schema. When supplied, it provides series and presentation defaults."
        },
        {
          "name": "Series",
          "kind": "parameter",
          "type": "IEnumerable<ChartSeries>",
          "required": false,
          "summary": "As séries do chart. Para Pie/Donut, apenas a primeira é usada."
        },
        {
          "name": "ShowGrid",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra as linhas horizontais de grid. Default true."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Título reservado para futuro header (atualmente não renderizado)."
        },
        {
          "name": "ValueFormatter",
          "kind": "parameter",
          "type": "Func<double, string>",
          "required": false,
          "summary": "Formatador customizado para o eixo de valores. Default v.ToString(\"0.##\")."
        },
        {
          "name": "ValueTicks",
          "kind": "parameter",
          "type": "int",
          "default": "5",
          "required": false,
          "summary": "Número desejado de ticks no eixo de valores. Default 5."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "default": "100%",
          "required": false,
          "summary": "Largura CSS do chart. Default \"100%\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniChip",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Compact pill/tag button — optional dot and icon, with active/accent/static visual states.",
      "source": "src/Omni.Blazor/Components/Display/OmniChip.razor",
      "parameters": [
        {
          "name": "Accent",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, applies the accent color styling."
        },
        {
          "name": "Active",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, applies the active/selected visual state."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon name rendered before the text."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Fired when the chip is clicked."
        },
        {
          "name": "ShowDot",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, shows a small leading status dot."
        },
        {
          "name": "Static",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, renders as a non-interactive (display-only) chip."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Chip label text, used when no ChildContent is supplied."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDescriptionItem",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single term/value pair for OmniDescriptionList.",
      "source": "src/Omni.Blazor/Components/Display/OmniDescriptionItem.razor",
      "parameters": [
        {
          "name": "Term",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "The label (term)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDescriptionList",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Read-only key/value detail layout (term + value pairs) — the standard \"detail / review / summary\" primitive for entity pages, settings summaries and review-before-submit.",
      "source": "src/Omni.Blazor/Components/Display/OmniDescriptionList.razor",
      "parameters": [
        {
          "name": "Bordered",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Wrap the list in a bordered card surface."
        },
        {
          "name": "Columns",
          "kind": "parameter",
          "type": "int",
          "default": "2",
          "required": false,
          "summary": "Term/value pairs per row on wide containers. Collapses to 1 when narrow. Default 2."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniEmptyState",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Empty / zero-data placeholder — for empty lists, no search results, first-run states, empty inboxes, cleared filters.",
      "source": "src/Omni.Blazor/Components/Display/OmniEmptyState.razor",
      "parameters": [
        {
          "name": "Actions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Action buttons row (e.g. \"Criar primeiro item\")."
        },
        {
          "name": "Compact",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Reduced padding for tight panels / dropdowns."
        },
        {
          "name": "Description",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Supporting text (plain). Ignored when DescriptionContent is set."
        },
        {
          "name": "DescriptionContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Rich supporting content (overrides Description)."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "inbox",
          "required": false,
          "summary": "Icon name (any OmniIcon). Default inbox."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Short headline (e.g. \"Nenhum resultado\")."
        },
        {
          "name": "Visual",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom figure/illustration replacing the default icon."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniIcon",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Render nothing when the icon name is unknown — emitting an empty wrapper span would (1) reserve layout space for a glyph that won't paint and (2) defeat CSS-only `:empty`/`:has()` consumers (e.g.",
      "source": "src/Omni.Blazor/Components/Display/OmniIcon.razor",
      "parameters": [
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Required icon name looked up in OmniIconLibrary; an unknown name renders nothing."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Icon size (Md default): Sm, Md, Lg, or Xl."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniImage",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "OmniImage — a thin, consistent <img> wrapper (RadzenImage port).",
      "source": "src/Omni.Blazor/Components/Display/OmniImage.razor",
      "parameters": [
        {
          "name": "Alt",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "Alt text — describe the image, or leave empty for purely decorative images."
        },
        {
          "name": "Click",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Makes the image interactive (renders as a button, Enter/Space activate)."
        },
        {
          "name": "Fit",
          "kind": "parameter",
          "type": "ObjectFit",
          "enumValues": [
            {
              "name": "Fill",
              "summary": "Estica para preencher, ignorando proporção (fill)."
            },
            {
              "name": "Contain",
              "summary": "Cabe inteira na caixa preservando proporção (contain)."
            },
            {
              "name": "Cover",
              "summary": "Cobre toda a caixa preservando proporção, recortando o excesso (cover)."
            },
            {
              "name": "None",
              "summary": "Tamanho intrínseco, sem redimensionar (none)."
            },
            {
              "name": "ScaleDown",
              "summary": "Menor entre none e contain (scale-down)."
            }
          ],
          "default": "Fill",
          "required": false,
          "summary": "How the image fills its box (CSS object-fit). Needs a sized box (width/height)."
        },
        {
          "name": "Lazy",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Native lazy loading (loading=\"lazy\"). Default true."
        },
        {
          "name": "Src",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Image source (URL, app path, or a data: URI)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniKbd",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Renders a keyboard key/shortcut as a styled <kbd> element.",
      "source": "src/Omni.Blazor/Components/Display/OmniKbd.razor",
      "parameters": [
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Key text to display, used when no ChildContent is supplied."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniLabel",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Standalone <label> element for cases where OmniFormField is overkill (custom controls, plain text + value pairs, group of segmented buttons, etc.).",
      "source": "src/Omni.Blazor/Components/Display/OmniLabel.razor",
      "parameters": [
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Estado desabilitado — só altera a aparência (label não é interativa)."
        },
        {
          "name": "For",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "ID do elemento associado (atributo for). Quando vazio, renderiza como <span> sem associação semântica."
        },
        {
          "name": "Helper",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto auxiliar exibido em linha separada abaixo (cor muted, fonte menor)."
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Exibe asterisco * em cor de erro depois do texto."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho do texto. Sm = 11px caixa alta (compacto, próximo de inputs). Md = 14px (default). Lg = 16px (destacado)."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto da label. Ignorado quando ChildContent é definido."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniLink",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Styled <a> tag for navigation/text links.",
      "source": "src/Omni.Blazor/Components/Display/OmniLink.razor",
      "parameters": [
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Estado desabilitado — renderiza como span sem href."
        },
        {
          "name": "Href",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "URL/path de destino. Para click handler puro sem navegação, use OnClick."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Ícone antes do texto."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Callback opcional. Quando definido, previne navegação default (href é só para fallback de a11y)."
        },
        {
          "name": "ShowExternalIcon",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra ícone de \"external-link\" automaticamente quando Target=\"_blank\". Default true."
        },
        {
          "name": "Target",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Atributo target da tag a. _blank ativa rel=\"noopener noreferrer\" automaticamente."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto do link. Ignorado quando ChildContent é definido."
        },
        {
          "name": "TrailingIcon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Ícone após o texto."
        },
        {
          "name": "Underline",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Sublinha o texto. Default false (sublinha só no hover)."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "LinkVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Cor accent (azul/âmbar conforme tema) — link normal."
            },
            {
              "name": "Muted",
              "summary": "Cor --omni-fg-soft — link secundário/discreto."
            },
            {
              "name": "Danger",
              "summary": "Cor --omni-danger — link destrutivo (ex: \"Excluir conta\")."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Variante visual: Default (accent), Muted (fg-soft), Danger."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMarkdown",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniMarkdown — renders CommonMark-ish Markdown as HTML (RadzenMarkdown port).",
      "source": "src/Omni.Blazor/Components/Display/OmniMarkdown.razor",
      "parameters": [
        {
          "name": "AllowHtml",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, embedded raw HTML is sanitized and rendered; when false (default) it is escaped and shown literally. Only enable for trusted content — the sanitizer is best-effort."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Markdown written raw between the tags (text frames are concatenated)."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "The markdown source. Takes precedence over ChildContent."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniOptionCard",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Selectable option card (radio-style) — for choosing one option among several: plans, payment methods, shipping options, account types.",
      "source": "src/Omni.Blazor/Components/Display/OmniOptionCard.razor",
      "parameters": [
        {
          "name": "Badge",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Small badge after the title (e.g. \"POPULAR\")."
        },
        {
          "name": "Description",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Supporting description."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disable the card."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Click handler — the consumer sets which card is selected."
        },
        {
          "name": "Price",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Price (mono)."
        },
        {
          "name": "PricePeriod",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Price period suffix (e.g. \"/mês\")."
        },
        {
          "name": "Selected",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Selected state (radio)."
        },
        {
          "name": "SelectedChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Convenience: fires true when the card is clicked."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Option name."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniProgress",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Horizontal progress bar, or a segmented variant (e.g.",
      "source": "src/Omni.Blazor/Components/Display/OmniProgress.razor",
      "parameters": [
        {
          "name": "Active",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Number of filled segments (segmented mode); also drives the strength color via omni-s1..s4."
        },
        {
          "name": "Color",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional arbitrary CSS colour for the bar (overrides Variant)."
        },
        {
          "name": "Max",
          "kind": "parameter",
          "type": "double",
          "default": "100",
          "required": false,
          "summary": "Value that represents 100% fill. Default 100."
        },
        {
          "name": "Segments",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "If > 0, render as segmented progress (used for password strength)."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Bar thickness (Md default): Sm, Md, or Lg."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Current progress value (relative to Max); clamped to 0-100% of the bar width."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "BadgeVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Cinza neutro (default)."
            },
            {
              "name": "Good",
              "summary": "Tom \"good\"/verde (sucesso)."
            },
            {
              "name": "Warn",
              "summary": "Tom \"warn\"/âmbar (atenção)."
            },
            {
              "name": "Danger",
              "summary": "Tom \"danger\"/vermelho (erro/crítico)."
            },
            {
              "name": "Info",
              "summary": "Tom \"info\"/azul (informativo)."
            },
            {
              "name": "Accent",
              "summary": "Cor accent do tema atual."
            },
            {
              "name": "Plain",
              "summary": "Sem fundo — só texto (plain)."
            },
            {
              "name": "Solid",
              "summary": "Fundo sólido de alto contraste."
            }
          ],
          "default": "Accent",
          "required": false,
          "summary": "Color variant of the bar fill (Accent default); Good/Warn/Danger map to semantic colors."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniProgressCircular",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniProgressCircular — an SVG ring progress indicator (RadzenProgressBarCircular port).",
      "source": "src/Omni.Blazor/Components/Display/OmniProgressCircular.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for the progressbar."
        },
        {
          "name": "Color",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional arbitrary CSS colour for the arc (overrides Variant)."
        },
        {
          "name": "Indeterminate",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Continuous indeterminate spinner (ignores Value). Default false."
        },
        {
          "name": "Max",
          "kind": "parameter",
          "type": "double",
          "default": "100",
          "required": false,
          "summary": "Maximum value. Default 100."
        },
        {
          "name": "Min",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Minimum value. Default 0."
        },
        {
          "name": "ShowValue",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Whether to show the centred value/label. Default true."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Ring size. Default Md."
        },
        {
          "name": "Unit",
          "kind": "parameter",
          "type": "string",
          "default": "%",
          "required": false,
          "summary": "Unit suffix appended after the value in the centre label. Default \"%\"."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Current progress value (between Min and Max)."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "BadgeVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Cinza neutro (default)."
            },
            {
              "name": "Good",
              "summary": "Tom \"good\"/verde (sucesso)."
            },
            {
              "name": "Warn",
              "summary": "Tom \"warn\"/âmbar (atenção)."
            },
            {
              "name": "Danger",
              "summary": "Tom \"danger\"/vermelho (erro/crítico)."
            },
            {
              "name": "Info",
              "summary": "Tom \"info\"/azul (informativo)."
            },
            {
              "name": "Accent",
              "summary": "Cor accent do tema atual."
            },
            {
              "name": "Plain",
              "summary": "Sem fundo — só texto (plain)."
            },
            {
              "name": "Solid",
              "summary": "Fundo sólido de alto contraste."
            }
          ],
          "default": "Accent",
          "required": false,
          "summary": "Semantic colour of the progress arc. Default Accent."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniQRCode",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Renders a QR code as inline SVG.",
      "source": "src/Omni.Blazor/Components/Display/OmniQRCode.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label customizado (default = Value)."
        },
        {
          "name": "Background",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "Cor de fundo (vazio = transparente)."
        },
        {
          "name": "Ecc",
          "kind": "parameter",
          "type": "QRCodeEcc",
          "enumValues": [
            {
              "name": "Low",
              "summary": "~7% de tolerância (default da maioria das libs)."
            },
            {
              "name": "Medium",
              "summary": "~15% (default Omni — bom para uso geral)."
            },
            {
              "name": "Quartile",
              "summary": "~25%."
            },
            {
              "name": "High",
              "summary": "~30% (use quando há logo no centro)."
            }
          ],
          "default": "Medium",
          "required": false,
          "summary": "Nível de correção de erro. Default Medium (~15% de tolerância)."
        },
        {
          "name": "EyeColor",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Cor opcional dos olhos (override do Foreground)."
        },
        {
          "name": "EyeShape",
          "kind": "parameter",
          "type": "QRCodeEyeShape",
          "enumValues": [
            {
              "name": "Square",
              "summary": "Marcadores quadrados (padrão)."
            },
            {
              "name": "Rounded",
              "summary": "Marcadores com cantos arredondados."
            },
            {
              "name": "Framed",
              "summary": "Marcadores com moldura externa destacada."
            }
          ],
          "default": "Square",
          "required": false,
          "summary": "Forma dos três \"olhos\" (finder patterns). Default Square."
        },
        {
          "name": "Foreground",
          "kind": "parameter",
          "type": "string",
          "default": "var(--omni-fg)",
          "required": false,
          "summary": "Cor dos módulos. Default --omni-fg."
        },
        {
          "name": "Image",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Imagem central (data URL ou caminho). Opcional."
        },
        {
          "name": "ImageBackground",
          "kind": "parameter",
          "type": "string",
          "default": "var(--omni-bg-elev)",
          "required": false,
          "summary": "Cor de fundo do recorte ao redor da imagem. Default --omni-bg-elev."
        },
        {
          "name": "ImagePadding",
          "kind": "parameter",
          "type": "double",
          "default": "1",
          "required": false,
          "summary": "Padding em módulos ao redor da imagem. Default 1."
        },
        {
          "name": "ImageSizePercent",
          "kind": "parameter",
          "type": "double",
          "default": "20",
          "required": false,
          "summary": "% do tamanho total ocupado pela imagem (5..50). Default 20."
        },
        {
          "name": "ModuleShape",
          "kind": "parameter",
          "type": "QRCodeModuleShape",
          "enumValues": [
            {
              "name": "Square",
              "summary": "Quadrados (padrão)."
            },
            {
              "name": "Rounded",
              "summary": "Quadrados com cantos arredondados."
            },
            {
              "name": "Circle",
              "summary": "Círculos."
            }
          ],
          "default": "Square",
          "required": false,
          "summary": "Forma dos módulos. Default Square."
        },
        {
          "name": "QuietZone",
          "kind": "parameter",
          "type": "int",
          "default": "4",
          "required": false,
          "summary": "Quiet zone em módulos. ISO recomenda 4. Default 4."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "string",
          "default": "200px",
          "required": false,
          "summary": "CSS size — aplicado como width=height. Default \"200px\"."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Conteúdo a codificar. UTF-8 / Byte mode (suporta acentos e qualquer Unicode)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniResult",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Full-page / full-panel status outcome block — the generic primitive behind 404 / 403 / 500 / \"access denied\" / \"payment complete\" / maintenance pages.",
      "source": "src/Omni.Blazor/Components/Display/OmniResult.razor",
      "parameters": [
        {
          "name": "Actions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Action buttons row rendered under the text."
        },
        {
          "name": "Compact",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Render with reduced padding (inside a card/panel rather than full-page)."
        },
        {
          "name": "Description",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Supporting text (plain). Ignored when DescriptionContent is set."
        },
        {
          "name": "DescriptionContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Rich supporting content (overrides Description)."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Override the status icon (any OmniIcon name)."
        },
        {
          "name": "Status",
          "kind": "parameter",
          "type": "ResultStatus",
          "enumValues": [
            {
              "name": "Info",
              "summary": "Informational outcome."
            },
            {
              "name": "Success",
              "summary": "Operation succeeded."
            },
            {
              "name": "Warning",
              "summary": "Succeeded with a caveat/warning."
            },
            {
              "name": "Error",
              "summary": "Operation failed."
            },
            {
              "name": "Forbidden",
              "summary": "HTTP 403 — access forbidden."
            },
            {
              "name": "NotFound",
              "summary": "HTTP 404 — resource not found."
            },
            {
              "name": "Maintenance",
              "summary": "Service under maintenance."
            }
          ],
          "default": "Info",
          "required": false,
          "summary": "Outcome status — drives the icon and color tone. Default Info."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Headline."
        },
        {
          "name": "Visual",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom figure/illustration replacing the default icon badge."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSkeleton",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Animated placeholder for loading content.",
      "source": "src/Omni.Blazor/Components/Display/OmniSkeleton.razor",
      "parameters": [
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline CSS height — only used by Rect/Circle variants. Optional."
        },
        {
          "name": "Lines",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Number of text lines (Text variant only). Default 1."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "SkeletonVariant",
          "enumValues": [
            {
              "name": "Text",
              "summary": "Linha(s) de texto."
            },
            {
              "name": "Rect",
              "summary": "Bloco retangular."
            },
            {
              "name": "Circle",
              "summary": "Círculo (ex.: avatar)."
            }
          ],
          "default": "Text",
          "required": false,
          "summary": "Placeholder shape (Text default): Text (line/paragraph), Rect (block), or Circle."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline CSS width — e.g. \"100%\", \"240px\", \"12rem\". Optional."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSparkline",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Mini chart inline em SVG — pra trends rápidos em Stat cards, células de tabela, headers de listas, parágrafos de texto.",
      "source": "src/Omni.Blazor/Components/Display/OmniSparkline.razor",
      "parameters": [
        {
          "name": "AreaOpacity",
          "kind": "parameter",
          "type": "double",
          "default": "0.18",
          "required": false,
          "summary": "Fill opacity for Area variant. 0–1, default 0.18."
        },
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label override. Defaults to \"Sparkline\"."
        },
        {
          "name": "BarGap",
          "kind": "parameter",
          "type": "double",
          "default": "2",
          "required": false,
          "summary": "Spacing between bars/columns in PIXELS. Default 2."
        },
        {
          "name": "Color",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stroke/fill color (any CSS color). Defaults to --omni-accent."
        },
        {
          "name": "Data",
          "kind": "parameter",
          "type": "IEnumerable<double>",
          "required": false,
          "summary": "Sequence of numbers to chart. Empty/null = nothing rendered."
        },
        {
          "name": "PieInnerRadius",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Raio interno do donut em Pie (0–0.9 do raio externo). 0 = pie sólido, 0.5 = donut médio. Default 0 (pie)."
        },
        {
          "name": "PiePalette",
          "kind": "parameter",
          "type": "IReadOnlyList<string>",
          "required": false,
          "summary": "Paleta de cores pro variant Pie. Se vazia, usa accent com variação de opacidade pra distinguir slices. Cores são repetidas ciclicamente se houver mais valores que cores."
        },
        {
          "name": "ShowAllMarkers",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Show dots at ALL data points (Line/Area only). Sobrescreve ShowMarker — se true, marca todos."
        },
        {
          "name": "ShowMarker",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Show a dot at the LAST data point (Line/Area only)."
        },
        {
          "name": "Smooth",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Suaviza a curva (Line/Area) usando monotone cubic Bezier — preserva monotonicidade dos dados (não inventa picos/vales). Mesmo algoritmo que RadzenLineSeries Smooth=\"true\" usa. Não tem efeito em Column/Bar/Pie. Default false."
        },
        {
          "name": "StrokeWidth",
          "kind": "parameter",
          "type": "double",
          "default": "1.8",
          "required": false,
          "summary": "Stroke width em PIXELS. Default 1.8."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "SparklineVariant",
          "enumValues": [
            {
              "name": "Line",
              "summary": "Linha simples conectando pontos."
            },
            {
              "name": "Area",
              "summary": "Linha com preenchimento abaixo."
            },
            {
              "name": "Column",
              "summary": "Barras verticais (uma por ponto)."
            },
            {
              "name": "Bar",
              "summary": "Barras horizontais."
            },
            {
              "name": "Pie",
              "summary": "Pizza/donut com slices proporcionais."
            }
          ],
          "default": "Line",
          "required": false,
          "summary": "Visual variant — Line, Area, Column, Bar, Pie."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSpinner",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Pure-CSS circular spinner.",
      "source": "src/Omni.Blazor/Components/Display/OmniSpinner.razor",
      "parameters": [
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for screen readers (aria-label). Defaults to \"Carregando\"."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Spinner size (Md default): Sm, Md, Lg, or Xl."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniStat",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "source": "src/Omni.Blazor/Components/Display/OmniStat.razor",
      "parameters": [
        {
          "name": "Card",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Wraps the stat in a bordered card surface."
        },
        {
          "name": "Delta",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Trend delta (e.g. \"+18,4%\"). Colour follows DeltaDown."
        },
        {
          "name": "DeltaCaption",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Neutral caption after the delta (e.g. \"vs ontem\")."
        },
        {
          "name": "DeltaDown",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Renders the delta in the \"down\" colour."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon shown in a chip next to the label."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Uppercase label above the value."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "The metric value (large)."
        },
        {
          "name": "Visual",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Decorative visual (e.g. a sparkline) anchored to the bottom-right."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniStatGroup",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Responsive KPI strip — lays out a set of OmniStat cards in an even grid that collapses (Columns → 2 → 1) as the container narrows (container query, so it reacts to its own width, not the viewport).",
      "source": "src/Omni.Blazor/Components/Display/OmniStatGroup.razor",
      "parameters": [
        {
          "name": "Columns",
          "kind": "parameter",
          "type": "int",
          "default": "4",
          "required": false,
          "summary": "Desired columns on wide containers. Collapses to 2 then 1 as it narrows. Default 4."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniStatusBadge",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Pílula compacta de status — primitivo do design system para indicar estado operacional (caixa aberto, API online, sincronizando, fila vazia, etc.).",
      "source": "src/Omni.Blazor/Components/Display/OmniStatusBadge.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Sinaliza ao screen-reader o significado do estado."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Conteúdo livre — alternativa ao parâmetro Label."
        },
        {
          "name": "Kind",
          "kind": "parameter",
          "type": "StatusBadgeKind",
          "enumValues": [
            {
              "name": "Neutral",
              "summary": "Neutro — mapeia para --omni-fg-muted."
            },
            {
              "name": "Accent",
              "summary": "Accent — mapeia para --omni-accent."
            },
            {
              "name": "Good",
              "summary": "Sucesso — mapeia para --omni-good."
            },
            {
              "name": "Warn",
              "summary": "Atenção — mapeia para --omni-warn."
            },
            {
              "name": "Danger",
              "summary": "Perigo — mapeia para --omni-danger."
            }
          ],
          "default": "Neutral",
          "required": false,
          "summary": "Intent semântico do estado."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Rótulo principal — destacado na cor do Kind."
        },
        {
          "name": "Meta",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto secundário (relógio, contador, percentual) — renderizado em monoespaçada apagada, separado do label por \"·\"."
        },
        {
          "name": "Pulse",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Anel pulsante no dot — use para indicar \"ao vivo\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTimeline",
      "category": "Display",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniTimeline — vertical/horizontal sequence of events along a connecting line, inspired by RadzenTimeline.",
      "source": "src/Omni.Blazor/Components/Display/OmniTimeline.razor",
      "parameters": [
        {
          "name": "LinePosition",
          "kind": "parameter",
          "type": "TimelineLinePosition",
          "enumValues": [
            {
              "name": "Center",
              "summary": "Linha no centro, conteúdo dos dois lados (default)."
            },
            {
              "name": "Start",
              "summary": "Linha na borda inicial; conteúdo só do lado final."
            },
            {
              "name": "End",
              "summary": "Linha na borda final; conteúdo só do lado inicial."
            },
            {
              "name": "Alternate",
              "summary": "Linha no centro; itens alternam de lado (zigue-zague)."
            }
          ],
          "default": "Center",
          "required": false,
          "summary": "Where the line sits relative to content (Center/Start/End/Alternate)."
        },
        {
          "name": "Orientation",
          "kind": "parameter",
          "type": "Orientation",
          "enumValues": [
            {
              "name": "Horizontal",
              "summary": "Horizontal."
            },
            {
              "name": "Vertical",
              "summary": "Vertical."
            }
          ],
          "default": "Vertical",
          "required": false,
          "summary": "Vertical (column, default) or Horizontal (row) flow."
        },
        {
          "name": "Reverse",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Reverses the visual side of content (swaps opposite/main)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTimelineItem",
      "category": "Display",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single event on an <OmniTimeline>.",
      "source": "src/Omni.Blazor/Components/Display/OmniTimelineItem.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Main content. Rendered before Text."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Opposite-side text shorthand (rendered after LabelContent)."
        },
        {
          "name": "LabelContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Opposite-side content (date/label). Rendered before Label."
        },
        {
          "name": "PointContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Content rendered inside the dot (icon, letter, avatar…)."
        },
        {
          "name": "PointSize",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Point size. Default Md."
        },
        {
          "name": "PointStyle",
          "kind": "parameter",
          "type": "TimelinePointStyle",
          "enumValues": [
            {
              "name": "Base",
              "summary": "Neutro — --omni-fg-muted."
            },
            {
              "name": "Accent",
              "summary": "Accent — --omni-accent."
            },
            {
              "name": "Good",
              "summary": "Sucesso — --omni-good."
            },
            {
              "name": "Warn",
              "summary": "Atenção — --omni-warn."
            },
            {
              "name": "Danger",
              "summary": "Perigo — --omni-danger."
            },
            {
              "name": "Info",
              "summary": "Informativo — --omni-info."
            }
          ],
          "default": "Base",
          "required": false,
          "summary": "Color/intent of the point. Default Base."
        },
        {
          "name": "PointVariant",
          "kind": "parameter",
          "type": "TimelinePointVariant",
          "enumValues": [
            {
              "name": "Filled",
              "summary": "Fundo sólido na cor do estilo (default)."
            },
            {
              "name": "Outlined",
              "summary": "Fundo neutro com anel interno colorido."
            },
            {
              "name": "Text",
              "summary": "Fundo neutro, sem anel — só o conteúdo (ícone/letra) colorido."
            }
          ],
          "default": "Filled",
          "required": false,
          "summary": "Fill variant of the point. Default Filled."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Main content text shorthand (rendered after ChildContent)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCompareValidator",
      "category": "Forms",
      "baseType": "OmniValidatorBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Compara o valor de um campo com outro campo (lookup por nome) OU com um valor literal. Caso clássico: \"confirmar senha\". Cuidado especial: revalida automaticamente quando o campo de referência muda (não só quando o próprio campo muda). <OmniTextBox Name=\"password\" @bind-Value=\"model.Password\" /> <OmniTextBox Name=\"confirm\" @bind-Value=\"model.Confirm\" /> <OmniCompareValidator Component=\"confirm\" Value=\"@model.Password\" Text=\"Senhas não conferem.\" />",
      "source": "src/Omni.Blazor/Components/Forms/Validators/OmniCompareValidator.cs",
      "parameters": [
        {
          "name": "Operator",
          "kind": "parameter",
          "type": "CompareOperator",
          "enumValues": [
            {
              "name": "Equal",
              "summary": "Igual ao valor de referência."
            },
            {
              "name": "NotEqual",
              "summary": "Diferente do valor de referência."
            },
            {
              "name": "LessThan",
              "summary": "Menor que o valor de referência."
            },
            {
              "name": "LessThanEqual",
              "summary": "Menor ou igual ao valor de referência."
            },
            {
              "name": "GreaterThan",
              "summary": "Maior que o valor de referência."
            },
            {
              "name": "GreaterThanEqual",
              "summary": "Maior ou igual ao valor de referência."
            }
          ],
          "default": "Equal",
          "required": false,
          "summary": "Operador. Default Equal."
        },
        {
          "name": "OtherComponent",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome de OUTRO componente cujo valor será comparado."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Valor literal a comparar. Use Value OU OtherComponent, não ambos."
        },
        {
          "name": "Component",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Nome do input alvo. Match com Name do OmniTextBox/etc.",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "ShowMessage",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, mostra a mensagem inline embaixo do form (default false — relies on OmniFormField/Summary).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Estilo inline opcional do span de mensagem (quando ShowMessage=true).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Valor inválido.",
          "required": false,
          "summary": "Mensagem exibida quando a validação falha.",
          "inheritedFrom": "OmniValidatorBase"
        }
      ]
    },
    {
      "name": "OmniCustomValidator",
      "category": "Forms",
      "baseType": "OmniValidatorBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Validator custom com delegate Func`2 tipado. Diferença pro RadzenCustomValidator: Radzen usa Func<bool> (sem o valor), forçando closure sobre o model. Aqui o delegate recebe o valor atual do campo já tipado, fica mais reutilizável e testável. <OmniCustomValidator TValue=\"string\" Component=\"username\" Validator=\"@IsAvailable\" Text=\"Usuário já existe.\" /> @code { bool IsAvailable(string? value) => !usedNames.Contains(value); } Pra lógica assíncrona (consulta server), prefira o Validation do FormComponent per-input que aceita Func<T, Task<string?>>.",
      "source": "src/Omni.Blazor/Components/Forms/Validators/OmniCustomValidator.cs",
      "parameters": [
        {
          "name": "Validator",
          "kind": "parameter",
          "type": "Func<TValue, bool>",
          "required": true,
          "summary": "Função de validação. Retorna true = OK, false = inválido."
        },
        {
          "name": "Component",
          "kind": "parameter",
          "type": "string",
          "required": true,
          "summary": "Nome do input alvo. Match com Name do OmniTextBox/etc.",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "ShowMessage",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, mostra a mensagem inline embaixo do form (default false — relies on OmniFormField/Summary).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Estilo inline opcional do span de mensagem (quando ShowMessage=true).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando a validação falha.",
          "inheritedFrom": "OmniValidatorBase"
        }
      ]
    },
    {
      "name": "OmniDataAnnotationValidator",
      "category": "Forms",
      "baseType": "OmniValidatorBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Valida um único campo do model contra TODOS os ValidationAttributes declarados na propriedade ([Required], [StringLength], [EmailAddress], etc.). Diferente do <DataAnnotationsValidator /> nativo do Blazor (que valida o model inteiro), este focaliza um único campo — útil quando você está montando regras campo a campo no markup, junto com outros validators irmãos.<OmniDataAnnotationValidator Component=\"email\" Property=\"@(() => model.Email)\" />O OmniForm já tem AddDataAnnotationsValidator=true por default — você raramente precisa deste validator individual. Use quando quiser desligar o DataAnnotationsValidator global e ter controle fino por campo.",
      "source": "src/Omni.Blazor/Components/Forms/Validators/OmniDataAnnotationValidator.cs",
      "parameters": [
        {
          "name": "MessageSeparator",
          "kind": "parameter",
          "type": "string",
          "default": "; ",
          "required": false,
          "summary": "Separador quando múltiplos atributos falham. Default \"; \"."
        },
        {
          "name": "Property",
          "kind": "parameter",
          "type": "Expression<Func<object>>",
          "required": true,
          "summary": "Expressão do campo que fornece, de forma trim-safe, a propriedade e os atributos declarados no modelo."
        },
        {
          "name": "Component",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Nome do input alvo. Match com Name do OmniTextBox/etc.",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "ShowMessage",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, mostra a mensagem inline embaixo do form (default false — relies on OmniFormField/Summary).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Estilo inline opcional do span de mensagem (quando ShowMessage=true).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Valor inválido.",
          "required": false,
          "summary": "Mensagem exibida quando a validação falha.",
          "inheritedFrom": "OmniValidatorBase"
        }
      ]
    },
    {
      "name": "OmniDataForm",
      "category": "Forms",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Metadata-driven form that composes a reusable strongly typed field schema, generated Omni inputs, Blazor's EditContext and data annotation validators.",
      "source": "src/Omni.Blazor/Components/Forms/OmniDataForm.razor",
      "parameters": [
        {
          "name": "Actions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom action area. When supplied, it replaces the built-in submit button."
        },
        {
          "name": "AddDataAnnotationsValidator",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Auto-attaches a DataAnnotationsValidator. Default true."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Additional content rendered inside the underlying form after generated fields."
        },
        {
          "name": "Columns",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Optional root column override. When null, the schema responsive layout is used. Values are clamped from 1 to 12."
        },
        {
          "name": "DiagnosticsChanged",
          "kind": "event",
          "type": "EventCallback<IReadOnlyList<DataFormDiagnostic>>",
          "required": false,
          "summary": "Invoked after schema diagnostics are rebuilt."
        },
        {
          "name": "DiagnosticsTemplate",
          "kind": "slot",
          "type": "RenderFragment<IReadOnlyList<DataFormDiagnostic>>",
          "contextType": "IReadOnlyList<DataFormDiagnostic>",
          "required": false,
          "summary": "Custom renderer for schema diagnostics."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables every generated editor and the default submit button."
        },
        {
          "name": "EditContext",
          "kind": "parameter",
          "type": "EditContext",
          "required": false,
          "summary": "Existing Blazor edit context. Supply either EditContext or Model, never both. Its model must be a TModel instance."
        },
        {
          "name": "FieldChanged",
          "kind": "event",
          "type": "EventCallback<DataFormFieldChangedEventArgs<TModel>>",
          "required": false,
          "summary": "Invoked after a generated editor writes a property value."
        },
        {
          "name": "FieldStateChanged",
          "kind": "event",
          "type": "EventCallback<DataFormFieldStateChangedEventArgs<TModel>>",
          "required": false,
          "summary": "Invoked with an immutable snapshot when one generated field state changes."
        },
        {
          "name": "FocusFirstInvalidOnSubmit",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Scrolls to and focuses the first invalid generated field after submit. Default true."
        },
        {
          "name": "IsTouched",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether any generated field has changed since the last touched reset."
        },
        {
          "name": "IsTouchedChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Callback for two-way binding of IsTouched."
        },
        {
          "name": "Model",
          "kind": "parameter",
          "type": "TModel",
          "required": false,
          "summary": "Model instance edited by the generated fields. Supply either Model or EditContext, never both."
        },
        {
          "name": "OnInvalidSubmit",
          "kind": "event",
          "type": "EventCallback<EditContext>",
          "required": false,
          "summary": "Invoked when the underlying OmniForm submission is invalid."
        },
        {
          "name": "OnValidSubmit",
          "kind": "event",
          "type": "EventCallback<EditContext>",
          "required": false,
          "summary": "Invoked when the underlying OmniForm submission is valid."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Makes every generated editor read-only."
        },
        {
          "name": "RenderFormElement",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Renders the semantic HTML form element. Disable for an embedded collection item subform to avoid nested forms. Default true."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "DataFormSchema<TModel>",
          "required": false,
          "summary": "Immutable, reusable field schema. When omitted, every supported model property is inferred from its type and data annotations."
        },
        {
          "name": "ShowDiagnostics",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows schema diagnostics in the rendered form. Intended for development. Default false."
        },
        {
          "name": "ShowSubmitButton",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the built-in submit button when Actions is null. Default true."
        },
        {
          "name": "ShowValidationSummary",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows OmniValidationSummary above the fields. Default true."
        },
        {
          "name": "SubmitText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text displayed by the built-in submit button. Null uses the localized OmniTexts value."
        },
        {
          "name": "Submitting",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Displays the loading state on the built-in submit button."
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "Action<EditContext, ValidationMessageStore>",
          "required": false,
          "summary": "Synchronous cross-field validation delegated to the underlying OmniForm."
        },
        {
          "name": "ValidationAsync",
          "kind": "parameter",
          "type": "Func<EditContext, ValidationMessageStore, Task>",
          "required": false,
          "summary": "Asynchronous validation delegated to the underlying OmniForm."
        },
        {
          "name": "ValidationAsyncWithCancellation",
          "kind": "parameter",
          "type": "Func<EditContext, ValidationMessageStore, CancellationToken, Task>",
          "required": false,
          "summary": "Preferred cancellable asynchronous validation callback."
        },
        {
          "name": "ValidationDelay",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Debounce in milliseconds for validation caused by field changes."
        },
        {
          "name": "ValidationStateChanged",
          "kind": "event",
          "type": "EventCallback<DataFormValidationStateChangedEventArgs<TModel>>",
          "required": false,
          "summary": "Invoked with the aggregate validation state after any field or message change."
        },
        {
          "name": "ValidationSummaryTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Heading used by the generated validation summary. Null uses the localized OmniTexts value."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDataFormWizard",
      "category": "Forms",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Coordinates explicit DataForm schemas as validated steps over one shared EditContext and cancellable navigation state.",
      "source": "src/Omni.Blazor/Components/Forms/OmniDataFormWizard.razor",
      "parameters": [
        {
          "name": "ActionsTemplate",
          "kind": "slot",
          "type": "RenderFragment<DataFormWizardTemplateContext<TModel>>",
          "contextType": "DataFormWizardTemplateContext<TModel>",
          "required": false,
          "summary": "Custom typed action area replacing Back, Next and Complete."
        },
        {
          "name": "ActiveStepIndex",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Zero-based visible step index."
        },
        {
          "name": "ActiveStepIndexChanged",
          "kind": "event",
          "type": "EventCallback<int>",
          "required": false,
          "summary": "Two-way binding callback for ActiveStepIndex."
        },
        {
          "name": "AllowStepNavigation",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Allows clicking accessible step navigation buttons. Default true."
        },
        {
          "name": "BackText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the Back action text."
        },
        {
          "name": "CompleteText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the Complete action text."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables generated fields and navigation actions."
        },
        {
          "name": "EditContext",
          "kind": "parameter",
          "type": "EditContext",
          "required": false,
          "summary": "Existing EditContext shared with the wizard. Supply EditContext or Model, never both."
        },
        {
          "name": "HeaderTemplate",
          "kind": "slot",
          "type": "RenderFragment<DataFormWizardTemplateContext<TModel>>",
          "contextType": "DataFormWizardTemplateContext<TModel>",
          "required": false,
          "summary": "Custom typed current-step heading."
        },
        {
          "name": "Linear",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Prevents jumping ahead of the furthest validated step. Default true."
        },
        {
          "name": "Model",
          "kind": "parameter",
          "type": "TModel",
          "required": false,
          "summary": "Model used to create an owned EditContext. Supply Model or EditContext, never both."
        },
        {
          "name": "NavigationLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible label for the step navigation."
        },
        {
          "name": "NextText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the Next action text."
        },
        {
          "name": "OnCompleted",
          "kind": "event",
          "type": "EventCallback<EditContext>",
          "required": false,
          "summary": "Raised after final synchronous, field and step validation succeeds."
        },
        {
          "name": "RenderFormElement",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether the active DataForm emits a semantic form element. Default true."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "DataFormWizardSchema<TModel>",
          "required": true,
          "summary": "Immutable ordered wizard schema."
        },
        {
          "name": "ShowValidationSummary",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows validation messages above the current step. Default true."
        },
        {
          "name": "StepChanged",
          "kind": "event",
          "type": "EventCallback<DataFormWizardStepChangedEventArgs<TModel>>",
          "required": false,
          "summary": "Raised after a successful step transition."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniEmailValidator",
      "category": "Forms",
      "baseType": "OmniValidatorBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Valida e-mail usando o mesmo motor do EmailAddressAttribute (suficientemente permissivo, RFC 5322 simplificado — o que [EmailAddress] usa). Vazio passa. <OmniEmailValidator Component=\"email\" Text=\"E-mail inválido.\" />",
      "source": "src/Omni.Blazor/Components/Forms/Validators/OmniEmailValidator.cs",
      "parameters": [
        {
          "name": "Component",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Nome do input alvo. Match com Name do OmniTextBox/etc.",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "ShowMessage",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, mostra a mensagem inline embaixo do form (default false — relies on OmniFormField/Summary).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Estilo inline opcional do span de mensagem (quando ShowMessage=true).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Valor inválido.",
          "required": false,
          "summary": "Mensagem exibida quando a validação falha.",
          "inheritedFrom": "OmniValidatorBase"
        }
      ]
    },
    {
      "name": "OmniForm",
      "category": "Forms",
      "baseType": "ComponentBase",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Async validation and submission orchestration for OmniForm`1. Kept out of the Razor file so cancellation, latest-wins and exception-safety invariants remain reviewable independently from the markup.",
      "source": "src/Omni.Blazor/Components/Forms/OmniForm.razor",
      "parameters": [
        {
          "name": "AddDataAnnotationsValidator",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Auto-attach a DataAnnotationsValidator inside the form. Default true."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Form content — inputs, validators, and submit controls."
        },
        {
          "name": "EditContext",
          "kind": "parameter",
          "type": "EditContext",
          "required": false,
          "summary": "Existing Blazor edit context. Supply either EditContext or Model, never both. Its model must be a TModel instance."
        },
        {
          "name": "IsTouched",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Fired the first time a field changes; stays true until reset. Bound parameter — write a backing field with @bind-IsTouched."
        },
        {
          "name": "IsTouchedChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Callback for two-way binding of IsTouched."
        },
        {
          "name": "Model",
          "kind": "parameter",
          "type": "TModel",
          "required": false,
          "summary": "Model instance edited by the form. Supply either Model or EditContext, never both."
        },
        {
          "name": "OnInvalidSubmit",
          "kind": "event",
          "type": "EventCallback<EditContext>",
          "required": false,
          "summary": "Invoked when the form is submitted but validation fails."
        },
        {
          "name": "OnValidSubmit",
          "kind": "event",
          "type": "EventCallback<EditContext>",
          "required": false,
          "summary": "Invoked when the form is submitted and passes validation."
        },
        {
          "name": "RenderFormElement",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Renders the semantic HTML form element. Disable only when composing an embedded subform inside another form. Default true."
        },
        {
          "name": "SnapshotFactory",
          "kind": "parameter",
          "type": "Func<TModel, TModel>",
          "required": false,
          "summary": "Optional AOT-safe deep-clone strategy used by Snapshot. Without it, OmniForm captures a shallow snapshot of writable public properties."
        },
        {
          "name": "SnapshotRestorer",
          "kind": "parameter",
          "type": "Action<TModel, TModel>",
          "required": false,
          "summary": "Optional restore strategy paired with SnapshotFactory. It receives the current model first and the captured snapshot second."
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "Action<EditContext, ValidationMessageStore>",
          "required": false,
          "summary": "Synchronous custom validation. Invoked on submit and on every field change (subject to ValidationDelay). Add messages to ValidationMessageStore directly, keyed by FieldIdentifier."
        },
        {
          "name": "ValidationAsync",
          "kind": "parameter",
          "type": "Func<EditContext, ValidationMessageStore, Task>",
          "required": false,
          "summary": "Async custom validation — typically a server round-trip. Runs in the same lifecycle as Validation but awaited. On submit it is awaited fully before deciding valid/invalid; during field-change debounce, it runs on the trailing edge."
        },
        {
          "name": "ValidationAsyncWithCancellation",
          "kind": "parameter",
          "type": "Func<EditContext, ValidationMessageStore, CancellationToken, Task>",
          "required": false,
          "summary": "Preferred cancellable async validation callback. It receives a token that is cancelled when a newer validation supersedes the current pass or when the form is disposed."
        },
        {
          "name": "ValidationDelay",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Debounce (ms) applied to custom-validation firings caused by OnFieldChanged. Default 0 = no debounce (current behavior). Submits and explicit ValidateAsync calls bypass the delay."
        }
      ]
    },
    {
      "name": "OmniLengthValidator",
      "category": "Forms",
      "baseType": "OmniValidatorBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Valida comprimento de string (ou tamanho de coleção ICollection). Vazio passa — componha com OmniRequiredValidator quando ambos forem necessários. <OmniLengthValidator Component=\"cnpj\" Min=\"14\" Max=\"14\" Text=\"CNPJ deve ter 14 dígitos.\" />",
      "source": "src/Omni.Blazor/Components/Forms/Validators/OmniLengthValidator.cs",
      "parameters": [
        {
          "name": "Max",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Comprimento máximo (inclusive). Null = sem limite superior."
        },
        {
          "name": "Min",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Comprimento mínimo (inclusive). Null = sem limite inferior."
        },
        {
          "name": "Component",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Nome do input alvo. Match com Name do OmniTextBox/etc.",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "ShowMessage",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, mostra a mensagem inline embaixo do form (default false — relies on OmniFormField/Summary).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Estilo inline opcional do span de mensagem (quando ShowMessage=true).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Valor inválido.",
          "required": false,
          "summary": "Mensagem exibida quando a validação falha.",
          "inheritedFrom": "OmniValidatorBase"
        }
      ]
    },
    {
      "name": "OmniPropertyGrid",
      "category": "Forms",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Compact metadata-driven property inspector built on OmniDataForm and its typed schema extensibility.",
      "source": "src/Omni.Blazor/Components/Forms/OmniPropertyGrid.razor",
      "parameters": [
        {
          "name": "Actions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional generated-form actions."
        },
        {
          "name": "AddDataAnnotationsValidator",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Adds DataAnnotations validation to the inspector."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables every generated property editor."
        },
        {
          "name": "EditContext",
          "kind": "parameter",
          "type": "EditContext",
          "required": false,
          "summary": "Optional externally owned editing context."
        },
        {
          "name": "Editable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether property editors are interactive. Default false."
        },
        {
          "name": "HeaderContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Content rendered beside the heading."
        },
        {
          "name": "Model",
          "kind": "parameter",
          "type": "TModel",
          "required": true,
          "summary": "Inspected model."
        },
        {
          "name": "OnInvalidSubmit",
          "kind": "event",
          "type": "EventCallback<EditContext>",
          "required": false,
          "summary": "Raised after an invalid explicit submission."
        },
        {
          "name": "OnValidSubmit",
          "kind": "event",
          "type": "EventCallback<EditContext>",
          "required": false,
          "summary": "Raised after a valid explicit submission."
        },
        {
          "name": "PropertyChanged",
          "kind": "event",
          "type": "EventCallback<PropertyGridChangedEventArgs<TModel>>",
          "required": false,
          "summary": "Raised for each property change observed through the active EditContext."
        },
        {
          "name": "RenderFormElement",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Renders the semantic form element. Default false for inspector embedding."
        },
        {
          "name": "Schema",
          "kind": "parameter",
          "type": "DataFormSchema<TModel>",
          "required": false,
          "summary": "Optional reusable DataForm schema. Metadata inference is used when omitted."
        },
        {
          "name": "ShowValidationSummary",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Shows the generated validation summary."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional inspector heading."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniRangeValidator",
      "category": "Forms",
      "baseType": "OmniValidatorBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Valida faixa numérica (int / double / decimal / DateTime). Aceita qualquer tipo que implemente IComparable. Vazio passa — componha com Required quando precisar. <OmniRangeValidator Component=\"idade\" Min=\"18\" Max=\"120\" Text=\"Idade entre 18 e 120.\" />",
      "source": "src/Omni.Blazor/Components/Forms/Validators/OmniRangeValidator.cs",
      "parameters": [
        {
          "name": "Max",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Valor máximo (inclusive)."
        },
        {
          "name": "Min",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Valor mínimo (inclusive)."
        },
        {
          "name": "Component",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Nome do input alvo. Match com Name do OmniTextBox/etc.",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "ShowMessage",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, mostra a mensagem inline embaixo do form (default false — relies on OmniFormField/Summary).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Estilo inline opcional do span de mensagem (quando ShowMessage=true).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Valor inválido.",
          "required": false,
          "summary": "Mensagem exibida quando a validação falha.",
          "inheritedFrom": "OmniValidatorBase"
        }
      ]
    },
    {
      "name": "OmniRegexValidator",
      "category": "Forms",
      "baseType": "OmniValidatorBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Valida string contra um padrão regex. Vazio passa. <OmniRegexValidator Component=\"cep\" Pattern=\"^\\\\d{5}-\\\\d{3}$\" Text=\"CEP deve ser 00000-000.\" />",
      "source": "src/Omni.Blazor/Components/Forms/Validators/OmniRegexValidator.cs",
      "parameters": [
        {
          "name": "Options",
          "kind": "parameter",
          "type": "RegexOptions",
          "enumValues": [
            {
              "name": "None"
            },
            {
              "name": "IgnoreCase"
            },
            {
              "name": "Multiline"
            },
            {
              "name": "ExplicitCapture"
            },
            {
              "name": "Compiled"
            },
            {
              "name": "Singleline"
            },
            {
              "name": "IgnorePatternWhitespace"
            },
            {
              "name": "RightToLeft"
            },
            {
              "name": "ECMAScript"
            },
            {
              "name": "CultureInvariant"
            },
            {
              "name": "NonBacktracking"
            }
          ],
          "default": "None",
          "required": false,
          "summary": "Opções do regex. Default None."
        },
        {
          "name": "Pattern",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Pattern regex. .NET regex syntax (não JS)."
        },
        {
          "name": "Component",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Nome do input alvo. Match com Name do OmniTextBox/etc.",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "ShowMessage",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, mostra a mensagem inline embaixo do form (default false — relies on OmniFormField/Summary).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Estilo inline opcional do span de mensagem (quando ShowMessage=true).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Valor inválido.",
          "required": false,
          "summary": "Mensagem exibida quando a validação falha.",
          "inheritedFrom": "OmniValidatorBase"
        }
      ]
    },
    {
      "name": "OmniRequiredValidator",
      "category": "Forms",
      "baseType": "OmniValidatorBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Falha quando o campo está vazio. Verifica via HasValue — que cobre null, string vazia, e default(T) pra structs. <OmniRequiredValidator Component=\"email\" Text=\"Informe o e-mail.\" />",
      "source": "src/Omni.Blazor/Components/Forms/Validators/OmniRequiredValidator.cs",
      "parameters": [
        {
          "name": "DefaultValue",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Valor \"default\" customizado. Útil quando você quer que 0 seja válido pra um campo numérico (default), mas -1 não."
        },
        {
          "name": "Component",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Nome do input alvo. Match com Name do OmniTextBox/etc.",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "ShowMessage",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, mostra a mensagem inline embaixo do form (default false — relies on OmniFormField/Summary).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Estilo inline opcional do span de mensagem (quando ShowMessage=true).",
          "inheritedFrom": "OmniValidatorBase"
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Valor inválido.",
          "required": false,
          "summary": "Mensagem exibida quando a validação falha.",
          "inheritedFrom": "OmniValidatorBase"
        }
      ]
    },
    {
      "name": "OmniValidationMessage",
      "category": "Forms",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Per-field error display.",
      "source": "src/Omni.Blazor/Components/Forms/OmniValidationMessage.razor",
      "parameters": [
        {
          "name": "For",
          "kind": "parameter",
          "type": "Expression<Func<TValue>>",
          "required": true,
          "summary": "Lambda pointing at the field, e.g. () => model.Email."
        },
        {
          "name": "ShowAll",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Render all messages (default) or just the first."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniValidationSummary",
      "category": "Forms",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Styled validation summary — like Blazor's <ValidationSummary> but uses the `omni-alert omni-alert-danger` look.",
      "source": "src/Omni.Blazor/Components/Forms/OmniValidationSummary.razor",
      "parameters": [
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "default": "Corrija os erros abaixo:",
          "required": false,
          "summary": "Heading shown above the error list; null/empty hides it. Default \"Corrija os erros abaixo:\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAutoComplete",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "Search-as-you-type selection with bounded local or cancellable server-side data.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniAutoComplete.razor",
      "parameters": [
        {
          "name": "Clearable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether to show a clear button when a value is selected."
        },
        {
          "name": "DebounceMs",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Debounce window applied to asynchronous searches."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when no option matches."
        },
        {
          "name": "ItemTemplate",
          "kind": "slot",
          "type": "RenderFragment<TItem>",
          "contextType": "TItem",
          "required": false,
          "summary": "Optional option template."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "Synchronous option source. Mutually exclusive with ItemsProvider."
        },
        {
          "name": "ItemsProvider",
          "kind": "parameter",
          "type": "OmniItemsProvider<TItem>",
          "required": false,
          "summary": "Asynchronous, cancellable and paged option source."
        },
        {
          "name": "ItemsProviderFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised when an uncancelled provider request fails."
        },
        {
          "name": "LoadErrorText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when the asynchronous provider fails."
        },
        {
          "name": "LoadMoreText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text of the action that requests the next provider page."
        },
        {
          "name": "LoadingText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown while an asynchronous page is loading."
        },
        {
          "name": "MaxProviderItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Hard limit for options retained from one provider search."
        },
        {
          "name": "MinSearchLength",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Minimum characters required before searching."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder text shown in the search input."
        },
        {
          "name": "ProviderPageSize",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum number of options requested per provider page."
        },
        {
          "name": "RetryText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text of the provider retry action."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "required": false,
          "summary": "Visual size of the input."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TItem, string>",
          "required": true,
          "summary": "Required mapping from an option to its display text."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TItem",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<TItem>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniCalendar",
      "category": "Inputs",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Calendar grid.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniCalendar.razor",
      "parameters": [
        {
          "name": "AutoFocus",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Auto-focus the grid on first render so keyboard nav works without a click. Set to false when the calendar is rendered statically on the page (Inline mode without an opening trigger)."
        },
        {
          "name": "DateRender",
          "kind": "parameter",
          "type": "Action<DateRenderEventArgs>",
          "required": false,
          "summary": "Per-day render hook. Lets the consumer add a CSS class, set HTML attributes, or mark a date disabled — without touching the bound model. Mirrors Radzen's DateRender callback. Use it for holiday highlights, tooltips, anniversary markers, etc."
        },
        {
          "name": "DisableWeekends",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, Saturdays and Sundays are disabled. Default false."
        },
        {
          "name": "DisabledDates",
          "kind": "parameter",
          "type": "Func<DateOnly, bool>",
          "required": false,
          "summary": "Predicate returning true to disable a specific day. Default null (none disabled)."
        },
        {
          "name": "FirstDayOfWeek",
          "kind": "parameter",
          "type": "DayOfWeek",
          "enumValues": [
            {
              "name": "Sunday"
            },
            {
              "name": "Monday"
            },
            {
              "name": "Tuesday"
            },
            {
              "name": "Wednesday"
            },
            {
              "name": "Thursday"
            },
            {
              "name": "Friday"
            },
            {
              "name": "Saturday"
            }
          ],
          "required": false,
          "summary": "Which day starts the week. null respects the current culture (default for pt-BR is Sunday). Set explicitly for Monday-start in EU formats."
        },
        {
          "name": "Footer",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Slot rendered below the day grid (e.g. a \"Today\" button)."
        },
        {
          "name": "InitialViewDate",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Initial month/year to show when the calendar first mounts. Wins over Selected on the first render but does not override later navigation by the user."
        },
        {
          "name": "MaxDate",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Latest selectable day; days after it are disabled."
        },
        {
          "name": "MinDate",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Earliest selectable day; days before it are disabled."
        },
        {
          "name": "OnDateSelected",
          "kind": "event",
          "type": "EventCallback<DateOnly>",
          "required": false,
          "summary": "Fires when the user picks a day (click or keyboard Enter/Space) that passes the disabled checks."
        },
        {
          "name": "OnDayHover",
          "kind": "event",
          "type": "EventCallback<DateOnly>",
          "required": false,
          "summary": "Fires as the mouse moves over (or leaves) day cells. Receives null on leave."
        },
        {
          "name": "OnEscape",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Fires when the user presses Escape on the grid."
        },
        {
          "name": "RangeEnd",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "End of the committed range; when both endpoints are set the band between them is painted solid."
        },
        {
          "name": "RangeHoverEnd",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Tentative end of range under the mouse pointer. When set together with RangeStart (and RangeEnd is null), the calendar paints a preview band between start and this day so the user can see the candidate range before committing."
        },
        {
          "name": "RangeStart",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Optional range — used by the date-range variant for hover/selection visuals."
        },
        {
          "name": "Selected",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Currently selected single date. (Range mode handled by parent.)"
        },
        {
          "name": "ShowNavButtons",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the prev/next month navigation chevrons. Default true."
        },
        {
          "name": "ShowNextButton",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the \"next month\" chevron. Useful to hide one side in a two-month layout."
        },
        {
          "name": "ShowPrevButton",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the \"previous month\" chevron. Useful to hide one side in a two-month layout."
        },
        {
          "name": "ShowWeekNumbers",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Show the ISO 8601 week number column on the left of the grid."
        },
        {
          "name": "ViewMonth",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Month being displayed. Defaults to today's month (or Selected's month)."
        },
        {
          "name": "ViewMonthChanged",
          "kind": "event",
          "type": "EventCallback<DateOnly>",
          "required": false,
          "summary": "Fires when the displayed month changes (navigation, year pick, or keyboard paging)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCheckBox",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": true,
      "source": "src/Omni.Blazor/Components/Inputs/OmniCheckBox.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible input name used when the checkbox has no visible label."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom label content; rendered instead of Label when provided."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text label shown next to the checkbox when no ChildContent is provided."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<bool>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniCheckBoxList",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": true,
      "source": "src/Omni.Blazor/Components/Inputs/OmniCheckBoxList.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label do grupo."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Conteúdo customizado adicional (renderizado APÓS os itens)."
        },
        {
          "name": "DescriptionSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Texto auxiliar opcional abaixo do label."
        },
        {
          "name": "DisabledSelector",
          "kind": "parameter",
          "type": "Func<TValue, bool>",
          "required": false,
          "summary": "Item-by-item: retorne true para desabilitar este item específico."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<TValue>",
          "required": false,
          "summary": "Conjunto de itens a renderizar."
        },
        {
          "name": "Orientation",
          "kind": "parameter",
          "type": "Orientation",
          "enumValues": [
            {
              "name": "Horizontal",
              "summary": "Horizontal."
            },
            {
              "name": "Vertical",
              "summary": "Vertical."
            }
          ],
          "required": false,
          "summary": "Orientação do layout. Default Vertical."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Texto principal de cada item. Default = item.ToString()."
        },
        {
          "name": "ValueSelector",
          "kind": "parameter",
          "type": "Func<TValue, TValue>",
          "required": false,
          "summary": "Extrai o valor a usar no bind. Default = o próprio item."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "IEnumerable<TValue>",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<TValue>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<IEnumerable<TValue>>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniColorPicker",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniColorPicker.razor",
      "parameters": [
        {
          "name": "DefaultColor",
          "kind": "parameter",
          "type": "string",
          "default": "#d97706",
          "required": false,
          "summary": "Cor usada quando Value é nulo/ inválido. Default #d97706 (amber)."
        },
        {
          "name": "Palette",
          "kind": "parameter",
          "type": "IEnumerable<string>",
          "required": false,
          "summary": "Cores de preset exibidas abaixo do seletor. Default = paleta do design system."
        },
        {
          "name": "ShowAlpha",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Habilita o slider de transparência e emite #rrggbbaa. Default false."
        },
        {
          "name": "ShowInput",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra o campo de entrada hexadecimal. Default true."
        },
        {
          "name": "ShowPresets",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra a paleta de presets. Default true."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho do trigger. Default Md (igual aos demais inputs)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniDatePicker",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniDatePicker.razor",
      "parameters": [
        {
          "name": "Clearable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show a clear (×) button when a value is set. Default true."
        },
        {
          "name": "DateFormat",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Date/time format used for display and parsing. Default \"dd/MM/yyyy\" (adapts when ShowTime is on)."
        },
        {
          "name": "DateRender",
          "kind": "parameter",
          "type": "Action<DateRenderEventArgs>",
          "required": false,
          "summary": "Per-day render hook (holidays, special markers, tooltips, ad-hoc disabling)."
        },
        {
          "name": "DisableWeekends",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disable Saturdays and Sundays. Default false."
        },
        {
          "name": "DisabledDates",
          "kind": "parameter",
          "type": "Func<DateOnly, bool>",
          "required": false,
          "summary": "Predicate returning true to disable a specific day. Default null (none disabled)."
        },
        {
          "name": "FirstDayOfWeek",
          "kind": "parameter",
          "type": "DayOfWeek",
          "enumValues": [
            {
              "name": "Sunday"
            },
            {
              "name": "Monday"
            },
            {
              "name": "Tuesday"
            },
            {
              "name": "Wednesday"
            },
            {
              "name": "Thursday"
            },
            {
              "name": "Friday"
            },
            {
              "name": "Saturday"
            }
          ],
          "required": false,
          "summary": "Override the first day of the week. Default = current culture."
        },
        {
          "name": "Footer",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Slot rendered below the day grid (e.g. a \"Hoje\" button)."
        },
        {
          "name": "HourFormat",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "\"24\" (default) or \"12\" with AM/PM toggle."
        },
        {
          "name": "InitialViewDate",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Month/year shown the first time the popover opens."
        },
        {
          "name": "Inline",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Render the calendar in place (no input/popover). Useful for filter panels or sidebars."
        },
        {
          "name": "MaxDate",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Latest selectable date; later days are disabled."
        },
        {
          "name": "MinDate",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Earliest selectable date; earlier days are disabled."
        },
        {
          "name": "MinutesStep",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Step for minutes spinner. Default 1."
        },
        {
          "name": "ParseInput",
          "kind": "parameter",
          "type": "Func<string, DateTime>",
          "required": false,
          "summary": "Custom string-to-DateTime parser. When set, replaces the default DateOnly.TryParseExact(DateFormat). Return null for invalid inputs. Useful for accepting multiple formats or natural-language dates."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder text for the input; falls back to a smart format-based default when null."
        },
        {
          "name": "SecondsStep",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Step for seconds spinner. Default 1."
        },
        {
          "name": "ShowSeconds",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show the seconds field next to hour/minute."
        },
        {
          "name": "ShowTime",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show hour/minute selector below the calendar (or alone when ShowTimeOnly)."
        },
        {
          "name": "ShowTimeOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Hide the calendar — picker shows time only. Auto-true when TValue is TimeOnly."
        },
        {
          "name": "ShowWeekNumbers",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show the ISO 8601 week number column."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "required": false,
          "summary": "Visual size of the input. Default Md."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TValue",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<TValue>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<TValue>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniDateRangePicker",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "Date range picker with a single combined input.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniDateRangePicker.razor",
      "parameters": [
        {
          "name": "ApplyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label for the apply button (shown when AutoApply is off). Default \"Aplicar\"."
        },
        {
          "name": "AutoApply",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "When true (default), the second click on a day commits and closes the picker immediately. When false, the popover stays open and Apply / Cancel buttons are shown so the user can preview before committing."
        },
        {
          "name": "CancelText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label for the cancel button (shown when AutoApply is off). Default \"Cancelar\"."
        },
        {
          "name": "ClearText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label for the clear button. Default \"Limpar\"."
        },
        {
          "name": "DateFormat",
          "kind": "parameter",
          "type": "string",
          "default": "dd/MM/yyyy",
          "required": false,
          "summary": "Format used to display the From/To dates in the input. Default \"dd/MM/yyyy\"."
        },
        {
          "name": "DateRender",
          "kind": "parameter",
          "type": "Action<DateRenderEventArgs>",
          "required": false,
          "summary": "Per-day render hook applied to both calendars (holidays, markers, tooltips)."
        },
        {
          "name": "DisableWeekends",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disable Saturdays and Sundays on both calendars. Default false."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disables the whole control. Default false."
        },
        {
          "name": "DisabledDates",
          "kind": "parameter",
          "type": "Func<DateOnly, bool>",
          "required": false,
          "summary": "Predicate returning true to disable a specific day on both calendars. Default null."
        },
        {
          "name": "FirstDayOfWeek",
          "kind": "parameter",
          "type": "DayOfWeek",
          "enumValues": [
            {
              "name": "Sunday"
            },
            {
              "name": "Monday"
            },
            {
              "name": "Tuesday"
            },
            {
              "name": "Wednesday"
            },
            {
              "name": "Thursday"
            },
            {
              "name": "Friday"
            },
            {
              "name": "Saturday"
            }
          ],
          "required": false,
          "summary": "Override the first day of the week on both calendars."
        },
        {
          "name": "From",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Start of the selected range. Bind via @bind-From."
        },
        {
          "name": "FromChanged",
          "kind": "event",
          "type": "EventCallback<DateOnly>",
          "required": false,
          "summary": "Fires when the range start changes. Two-way via @bind-From."
        },
        {
          "name": "FromExpression",
          "kind": "parameter",
          "type": "Expression<Func<DateOnly>>",
          "required": false,
          "summary": "Expression para integração com EditContext (registra com OmniForm). Aponte pro campo From do model; o validator vai receber o tuple (From, To)."
        },
        {
          "name": "MaxDate",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Latest selectable date on both calendars; later days are disabled."
        },
        {
          "name": "MinDate",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "Earliest selectable date on both calendars; earlier days are disabled."
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico — registra com OmniForm para validators irmãos. (<OmniRequiredValidator Component=\"periodo\" />)"
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "default": "Selecionar período",
          "required": false,
          "summary": "Text shown in the input when no range is selected. Default \"Selecionar período\"."
        },
        {
          "name": "Presets",
          "kind": "parameter",
          "type": "IReadOnlyList<DateRangePreset>",
          "required": false,
          "summary": "Quick-select shortcuts shown in the popover sidebar. Each preset is a label plus a function returning the (from, to) tuple at the moment it's clicked. Default set covers the most common business reporting periods."
        },
        {
          "name": "ShowClearButton",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the \"Limpar\" button in the popover footer."
        },
        {
          "name": "ShowWeekNumbers",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Show the ISO 8601 week number column on both calendars."
        },
        {
          "name": "To",
          "kind": "parameter",
          "type": "DateOnly",
          "required": false,
          "summary": "End of the selected range. Bind via @bind-To."
        },
        {
          "name": "ToChanged",
          "kind": "event",
          "type": "EventCallback<DateOnly>",
          "required": false,
          "summary": "Fires when the range end changes. Two-way via @bind-To."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniEntityPicker",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "Selects a local or server-side entity through OmniDataGrid`1 while binding only its stable key to the surrounding EditContext.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniEntityPicker.razor",
      "parameters": [
        {
          "name": "AllowClear",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether the selected value can be cleared. Default true."
        },
        {
          "name": "AllowPaging",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether the entity grid exposes paging. Default true."
        },
        {
          "name": "AllowSearch",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether the entity grid exposes search. Default true."
        },
        {
          "name": "ClearText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the clear action text."
        },
        {
          "name": "CloseText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Overrides the close action text."
        },
        {
          "name": "ColumnTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Generated default column title."
        },
        {
          "name": "Columns",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom typed DataGrid columns. A text column is generated when omitted."
        },
        {
          "name": "DataProvider",
          "kind": "parameter",
          "type": "GridDataProvider<TItem>",
          "required": false,
          "summary": "Cancellable server-side DataGrid source. Supply either DataProvider or Items."
        },
        {
          "name": "EmptyKey",
          "kind": "parameter",
          "type": "Func<TKey, bool>",
          "required": false,
          "summary": "Determines whether a key represents no selection. Defaults to default(TKey)."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "DataGrid empty-state text."
        },
        {
          "name": "GridSchema",
          "kind": "parameter",
          "type": "DataGridSchema<TItem>",
          "required": false,
          "summary": "Optional reusable typed schema for the embedded entity DataGrid."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "Local entity source. Supply either Items or DataProvider."
        },
        {
          "name": "KeySelector",
          "kind": "parameter",
          "type": "Func<TItem, TKey>",
          "required": true,
          "summary": "Stable key selector stored by the form-bound value."
        },
        {
          "name": "LoadingTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom DataGrid loading content."
        },
        {
          "name": "PageSize",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Entity grid page size. Default ten."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when no entity is selected."
        },
        {
          "name": "Presentation",
          "kind": "parameter",
          "type": "EntityPickerPresentation",
          "enumValues": [
            {
              "name": "Dialog",
              "summary": "Displays a centered selection dialog."
            },
            {
              "name": "Drawer",
              "summary": "Displays a right-side selection drawer."
            }
          ],
          "required": false,
          "summary": "Dialog or drawer presentation."
        },
        {
          "name": "ResolveFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised after an observed entity-resolution failure."
        },
        {
          "name": "ResolveItem",
          "kind": "parameter",
          "type": "EntityPickerResolver<TItem, TKey>",
          "required": false,
          "summary": "Resolves an externally supplied key not present in local Items."
        },
        {
          "name": "SearchPlaceholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "DataGrid search placeholder."
        },
        {
          "name": "SelectedItem",
          "kind": "parameter",
          "type": "TItem",
          "required": false,
          "summary": "Optional externally supplied entity corresponding to Value."
        },
        {
          "name": "SelectedItemChanged",
          "kind": "event",
          "type": "EventCallback<TItem>",
          "required": false,
          "summary": "Raised after a user selects or clears an entity."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TItem, string>",
          "required": true,
          "summary": "Human-readable selected entity text."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Selection dialog title."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Picker panel width."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TKey",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<TKey>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<TKey>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniFileUpload",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "Drag-and-drop file uploader.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniFileUpload.razor",
      "parameters": [
        {
          "name": "Accept",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "HTML accept filter passed to the file input (e.g. \"image/*\", \".pdf\")."
        },
        {
          "name": "FilesExpression",
          "kind": "parameter",
          "type": "Expression<Func<IReadOnlyList<IBrowserFile>>>",
          "required": false,
          "summary": "Expression apontando pra coleção de files no model — habilita validators irmãos. Ex: FilesExpression=\"@(() => model.Anexos)\"."
        },
        {
          "name": "HintText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Secondary hint under the label. When null, an auto hint listing Accept + max size is shown."
        },
        {
          "name": "LabelText",
          "kind": "parameter",
          "type": "string",
          "default": "Arraste arquivos aqui ou clique para selecionar",
          "required": false,
          "summary": "Main text shown inside the drop-zone. Default \"Arraste arquivos aqui ou clique para selecionar\"."
        },
        {
          "name": "MaxFileCount",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Maximum number of files (Multiple only). 0 = no limit."
        },
        {
          "name": "MaxFileSize",
          "kind": "parameter",
          "type": "long",
          "default": "10485760",
          "required": false,
          "summary": "Maximum size per file, in bytes. 0 = no limit. Default 10 MB."
        },
        {
          "name": "Multiple",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Allow selecting/dropping more than one file. Default false (single file replaces the previous)."
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico — registra com OmniForm para validators irmãos."
        },
        {
          "name": "OnFileRemoved",
          "kind": "event",
          "type": "EventCallback<IBrowserFile>",
          "required": false,
          "summary": "Fires when a file is removed from the list, with the removed file."
        },
        {
          "name": "OnFilesSelected",
          "kind": "event",
          "type": "EventCallback<IReadOnlyList<IBrowserFile>>",
          "required": false,
          "summary": "Fires after files are added (validated), with the current accepted file list."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniFormField",
      "category": "Inputs",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Field wrapper around an input.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniFormField.razor",
      "parameters": [
        {
          "name": "Error",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Explicit error to display (wins over EditContext messages)."
        },
        {
          "name": "For",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "HTML `for` attribute on the label."
        },
        {
          "name": "Hint",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Helper text shown below the input (hidden while an error is displayed)."
        },
        {
          "name": "HintRight",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional hint aligned to the right of the label row (e.g. a char counter)."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label text shown above the input."
        },
        {
          "name": "LabelContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom label markup; rendered instead of Label when provided."
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, marks the field as required (adds the required indicator on the label). Default false."
        },
        {
          "name": "ValidationFor",
          "kind": "parameter",
          "type": "Expression<Func<object>>",
          "required": false,
          "summary": "Lambda pointing at the bound model field (e.g. () => model.Email). When provided AND an EditContext is in scope, the first validation message for the field is shown automatically."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniListBox",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniListBox.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label do listbox."
        },
        {
          "name": "DescriptionSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Texto auxiliar opcional abaixo do label de cada item."
        },
        {
          "name": "DisabledSelector",
          "kind": "parameter",
          "type": "Func<TValue, bool>",
          "required": false,
          "summary": "Item-by-item: retorne true para desabilitar este item específico."
        },
        {
          "name": "IconSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Nome do ícone exibido à esquerda de cada item. Default = sem ícone."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<TValue>",
          "required": false,
          "summary": "Itens a renderizar."
        },
        {
          "name": "MaxHeight",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Altura máxima (CSS). Default 240px. Quando excede, scroll vertical."
        },
        {
          "name": "Multiple",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, permite selecionar múltiplos itens."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Texto principal de cada item. Default = item.ToString()."
        },
        {
          "name": "ValueSelector",
          "kind": "parameter",
          "type": "Func<TValue, TValue>",
          "required": false,
          "summary": "Extrai o valor de bind de cada item. Default = o próprio item (identidade)."
        },
        {
          "name": "Values",
          "kind": "parameter",
          "type": "IEnumerable<TValue>",
          "required": false,
          "summary": "Multi-select bind. Use com Multiple=true."
        },
        {
          "name": "ValuesChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<TValue>>",
          "required": false,
          "summary": "Disparado quando a seleção múltipla muda (modo Multiple)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TValue",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<TValue>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<TValue>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniMaskedTextBox",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniMaskedTextBox.razor",
      "parameters": [
        {
          "name": "Autocomplete",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "HTML autocomplete attribute for the input."
        },
        {
          "name": "KeepMask",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, the bound Value keeps the mask separators; default false binds only the meaningful characters."
        },
        {
          "name": "Mask",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Mask pattern: 9 = digit, A = letter, * = alphanumeric; any other char is a literal separator. Required."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder text shown when the input is empty."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Visual size of the input. Default Md."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniMultiSelect",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "Multiple selection with chips and bounded local or cancellable server-side options.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniMultiSelect.razor",
      "parameters": [
        {
          "name": "DebounceMs",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Debounce applied to provider-backed searches."
        },
        {
          "name": "DescriptionSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Maps an option to secondary text."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether the component is disabled."
        },
        {
          "name": "DisabledSelector",
          "kind": "parameter",
          "type": "Func<TValue, bool>",
          "required": false,
          "summary": "Determines whether an option is disabled."
        },
        {
          "name": "IconSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Maps an option to an icon name."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<TValue>",
          "required": false,
          "summary": "Synchronous options. Mutually exclusive with ItemsProvider."
        },
        {
          "name": "ItemsProvider",
          "kind": "parameter",
          "type": "OmniItemsProvider<TValue>",
          "required": false,
          "summary": "Asynchronous, cancellable and paged option source."
        },
        {
          "name": "ItemsProviderFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised when an uncancelled provider request fails."
        },
        {
          "name": "LoadErrorText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when the provider fails."
        },
        {
          "name": "LoadMoreText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Action text for requesting another provider page."
        },
        {
          "name": "LoadingText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown while options are loading."
        },
        {
          "name": "MaxProviderItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Hard limit for options retained from one provider search."
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Logical form-component name."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text displayed when nothing is selected."
        },
        {
          "name": "PopoverMaxHeight",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Maximum list height."
        },
        {
          "name": "PopoverWidth",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Popover width."
        },
        {
          "name": "ProviderPageSize",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum options requested per provider page."
        },
        {
          "name": "RetryText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Provider retry action text."
        },
        {
          "name": "SearchPlaceholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Search input placeholder."
        },
        {
          "name": "Searchable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether to display a search input."
        },
        {
          "name": "ShowClearAll",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether to display the clear-all action."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Maps an option to primary text."
        },
        {
          "name": "ValueSelector",
          "kind": "parameter",
          "type": "Func<TValue, TValue>",
          "required": false,
          "summary": "Extracts the bound value from an option."
        },
        {
          "name": "Values",
          "kind": "parameter",
          "type": "IEnumerable<TValue>",
          "required": false,
          "summary": "Selected values."
        },
        {
          "name": "ValuesChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<TValue>>",
          "required": false,
          "summary": "Raised when Values changes."
        },
        {
          "name": "ValuesExpression",
          "kind": "parameter",
          "type": "Expression<Func<IEnumerable<TValue>>>",
          "required": false,
          "summary": "Expression used for EditContext integration."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniNumeric",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniNumeric.razor",
      "parameters": [
        {
          "name": "Decimals",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Number of decimal places shown when the input loses focus. Default = inferred from TValue."
        },
        {
          "name": "Format",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Custom ToString format for the display value (e.g. \"00\" for 2-digit zero-padded, \"0,000\" for thousands grouping). When set, wins over the default \"N{Decimals}\"."
        },
        {
          "name": "Max",
          "kind": "parameter",
          "type": "decimal",
          "required": false,
          "summary": "Maximum allowed value; entries above it are clamped. Default null (no maximum)."
        },
        {
          "name": "Min",
          "kind": "parameter",
          "type": "decimal",
          "required": false,
          "summary": "Minimum allowed value; entries below it are clamped. Default null (no minimum)."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder text shown when the input is empty."
        },
        {
          "name": "Prefix",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text rendered before the input (e.g. \"R$\"). Default none."
        },
        {
          "name": "ShowSpinButtons",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show the up/down stepper buttons. Default true (hidden when ReadOnly)."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "required": false,
          "summary": "Visual size of the input. Default Md."
        },
        {
          "name": "Step",
          "kind": "parameter",
          "type": "decimal",
          "required": false,
          "summary": "Increment applied by the spin buttons and ArrowUp/ArrowDown. Default 1."
        },
        {
          "name": "Suffix",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text rendered after the input (e.g. \"%\", \"kg\"). Default none."
        },
        {
          "name": "Wrap",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "When true, stepping past Max wraps to Min and vice versa. Useful for cyclical inputs (hours, minutes, day of week). Requires both Min and Max to be set."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TValue",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<TValue>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<TValue>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniPassword",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniPassword.razor",
      "parameters": [
        {
          "name": "Autocomplete",
          "kind": "parameter",
          "type": "string",
          "default": "current-password",
          "required": false,
          "summary": "HTML autocomplete attribute. Default \"current-password\"."
        },
        {
          "name": "MinLength",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Minimum length enforced via the input's minlength attribute. Default null (none)."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder text shown when the input is empty."
        },
        {
          "name": "ShowToggle",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the eye button that toggles between masked and plain text. Default true."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Visual size of the input. Default Md."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniPasswordStrength",
      "category": "Inputs",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Password strength meter + configurable requirement checklist.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniPasswordStrength.razor",
      "parameters": [
        {
          "name": "LabelText",
          "kind": "parameter",
          "type": "string",
          "default": "Força da senha",
          "required": false,
          "summary": "Caption text on the label line. Default \"Força da senha\"."
        },
        {
          "name": "MinLength",
          "kind": "parameter",
          "type": "int",
          "default": "8",
          "required": false,
          "summary": "Minimum length rule. Set to 0 to drop the length rule. Default 8."
        },
        {
          "name": "Password",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "The password to evaluate (read-only; this component never owns the value)."
        },
        {
          "name": "RequireDigit",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Require a digit (default rule). Default true."
        },
        {
          "name": "RequireLowercase",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Require a lowercase letter (default rule). Default true."
        },
        {
          "name": "RequireSymbol",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Require a non-alphanumeric symbol (default rule). Default true."
        },
        {
          "name": "RequireUppercase",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Require an uppercase letter (default rule). Default true."
        },
        {
          "name": "RequiredUniqueChars",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Require at least N distinct characters (default rule). 0 disables it."
        },
        {
          "name": "Rules",
          "kind": "parameter",
          "type": "IEnumerable<OmniPasswordRule>",
          "required": false,
          "summary": "Fully custom rule set. When provided, the built-in toggles above are ignored."
        },
        {
          "name": "ShowLabel",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the strength word + caption line. Default true."
        },
        {
          "name": "ShowRules",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the per-rule checklist. Default true."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPickList",
      "category": "Inputs",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "OmniPickList — a dual-list \"transfer\" picker (RadzenPickList port).",
      "source": "src/Omni.Blazor/Components/Inputs/OmniPickList.razor",
      "parameters": [
        {
          "name": "AllowFiltering",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show a search box above each list. Default false."
        },
        {
          "name": "AllowMoveAll",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show the \"move all\" (double-arrow) buttons. Default true."
        },
        {
          "name": "ButtonSize",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "required": false,
          "summary": "Size of the transfer buttons. Default Sm."
        },
        {
          "name": "ButtonVariant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "required": false,
          "summary": "Variant of the transfer buttons. Default Default."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disable the whole control."
        },
        {
          "name": "DisabledSelector",
          "kind": "parameter",
          "type": "Func<TItem, bool>",
          "required": false,
          "summary": "Maps an item to whether it is disabled (non-selectable)."
        },
        {
          "name": "FilterPlaceholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder for the filter boxes."
        },
        {
          "name": "IconSelector",
          "kind": "parameter",
          "type": "Func<TItem, string>",
          "required": false,
          "summary": "Maps an item to an optional leading icon name."
        },
        {
          "name": "ListHeight",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Max height of each list (CSS length). Default \"260px\"."
        },
        {
          "name": "Moved",
          "kind": "event",
          "type": "EventCallback<PickListMoveEventArgs<TItem>>",
          "required": false,
          "summary": "Raised after a move, once Source/Target already reflect it."
        },
        {
          "name": "Orientation",
          "kind": "parameter",
          "type": "Orientation",
          "enumValues": [
            {
              "name": "Horizontal",
              "summary": "Horizontal."
            },
            {
              "name": "Vertical",
              "summary": "Vertical."
            }
          ],
          "required": false,
          "summary": "Layout: Horizontal (lists side by side) or Vertical (stacked)."
        },
        {
          "name": "ShowHeader",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Show pane headers. Default true."
        },
        {
          "name": "Source",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "Items in the left (source) list. Two-way bindable."
        },
        {
          "name": "SourceChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<TItem>>",
          "required": false,
          "summary": "Fires when the source list changes after a move. Two-way via @bind-Source."
        },
        {
          "name": "SourceEmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when the source list is empty."
        },
        {
          "name": "SourceHeader",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom markup for the source pane header; overrides SourceTitle."
        },
        {
          "name": "SourceTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Title text for the source pane header."
        },
        {
          "name": "Target",
          "kind": "parameter",
          "type": "IEnumerable<TItem>",
          "required": false,
          "summary": "Items in the right (target) list. Two-way bindable."
        },
        {
          "name": "TargetChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<TItem>>",
          "required": false,
          "summary": "Fires when the target list changes after a move. Two-way via @bind-Target."
        },
        {
          "name": "TargetEmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when the target list is empty."
        },
        {
          "name": "TargetHeader",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom markup for the target pane header; overrides TargetTitle."
        },
        {
          "name": "TargetTitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Title text for the target pane header."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TItem, string>",
          "required": false,
          "summary": "Maps an item to its display text. Defaults to ToString()."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniQtyStepper",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniQtyStepper.razor",
      "parameters": [
        {
          "name": "Max",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Limite superior (inclusivo). Opcional; quando definido, o botão + desabilita ao atingir."
        },
        {
          "name": "Min",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Limite inferior (inclusivo). Default 1 — o botão − desabilita ao atingir."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho visual. Sm (24×24), Md (28×28, default), Lg (36×36)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<int>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<int>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniRadio",
      "category": "Inputs",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Single radio button; registers with the enclosing OmniRadioGroup via cascading parameter.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniRadio.razor",
      "parameters": [
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Disables this radio (also disabled when the group is disabled). Default false."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text label shown next to the radio when no ChildContent is provided."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TValue",
          "required": true,
          "summary": "Value this radio represents; the group is selected when it equals the group's bound value. Required."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniRadioGroup",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": true,
      "source": "src/Omni.Blazor/Components/Inputs/OmniRadioGroup.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "The OmniRadio children that make up the group."
        },
        {
          "name": "Orientation",
          "kind": "parameter",
          "type": "Orientation",
          "enumValues": [
            {
              "name": "Horizontal",
              "summary": "Horizontal."
            },
            {
              "name": "Vertical",
              "summary": "Vertical."
            }
          ],
          "required": false,
          "summary": "Layout direction of the radios. Default Vertical."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TValue",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<TValue>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<TValue>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniRating",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniRating.razor",
      "parameters": [
        {
          "name": "AllowClear",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Clique na estrela já selecionada limpa o valor (volta a 0). Default false."
        },
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label customizado."
        },
        {
          "name": "Color",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Cor accent override (qualquer CSS color). Default --omni-warn (dourado)."
        },
        {
          "name": "EmptyIconName",
          "kind": "parameter",
          "type": "string",
          "default": "star",
          "required": false,
          "summary": "Nome do ícone para estado vazio. Default star."
        },
        {
          "name": "FullIconName",
          "kind": "parameter",
          "type": "string",
          "default": "star",
          "required": false,
          "summary": "Nome do ícone para estado preenchido. Default star (mesmo ícone, cor diferente)."
        },
        {
          "name": "HalfStep",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Permite valores fracionados (X.5). Hover na metade esquerda da estrela."
        },
        {
          "name": "Max",
          "kind": "parameter",
          "type": "int",
          "default": "5",
          "required": false,
          "summary": "Quantidade total de estrelas. Default 5."
        },
        {
          "name": "ShowValue",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Mostra o valor numérico ao lado das estrelas."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho do ícone das estrelas."
        },
        {
          "name": "ValueFormatter",
          "kind": "parameter",
          "type": "Func<double, string>",
          "required": false,
          "summary": "Formatador customizado do label numérico. Default v.ToString(\"0.#\")."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<double>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<double>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniSecurityCode",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniSecurityCode.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Dígito",
          "required": false,
          "summary": "Accessible label prefix for each cell (e.g. \"Dígito 1\"). Default \"Dígito\"."
        },
        {
          "name": "Count",
          "kind": "parameter",
          "type": "int",
          "default": "4",
          "required": false,
          "summary": "Number of code cells. Default 4."
        },
        {
          "name": "Gap",
          "kind": "parameter",
          "type": "string",
          "default": "8px",
          "required": false,
          "summary": "Gap between cells (CSS length). Default 8px."
        },
        {
          "name": "Type",
          "kind": "parameter",
          "type": "SecurityCodeType",
          "enumValues": [
            {
              "name": "Text",
              "summary": "Qualquer caractere."
            },
            {
              "name": "Numeric",
              "summary": "Só dígitos (inputmode numérico)."
            },
            {
              "name": "Password",
              "summary": "Mascarado (•), qualquer caractere."
            }
          ],
          "default": "Text",
          "required": false,
          "summary": "Input type: Text (any char), Numeric (digits only) or Password (masked)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniSelect",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "Single-choice select with bounded local or cancellable server-side options.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniSelect.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Accessible name applied to the combobox trigger. When omitted, the component falls back to Name, Placeholder or the selected option text, in that order."
        },
        {
          "name": "Clearable",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Whether a selected value can be cleared."
        },
        {
          "name": "EmptyTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom content shown when the provider has no options."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when there are no options."
        },
        {
          "name": "ErrorTemplate",
          "kind": "slot",
          "type": "RenderFragment<OmniItemsProviderErrorContext>",
          "contextType": "OmniItemsProviderErrorContext",
          "required": false,
          "summary": "Custom retry-capable content shown after a provider failure."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<TValue>",
          "required": false,
          "summary": "Synchronous options. Mutually exclusive with ItemsProvider."
        },
        {
          "name": "ItemsProvider",
          "kind": "parameter",
          "type": "OmniItemsProvider<TValue>",
          "required": false,
          "summary": "Asynchronous, cancellable and paged option source."
        },
        {
          "name": "ItemsProviderFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised when an uncancelled provider request fails."
        },
        {
          "name": "LoadErrorText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when the provider fails."
        },
        {
          "name": "LoadMoreText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Action text for requesting another provider page."
        },
        {
          "name": "LoadingTemplate",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom content shown while the first provider page is loading."
        },
        {
          "name": "LoadingText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown while options are loading."
        },
        {
          "name": "MaxProviderItems",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Hard limit for options retained from the provider."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown when no value is selected."
        },
        {
          "name": "ProviderPageSize",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum options requested per provider page."
        },
        {
          "name": "ProviderVersion",
          "kind": "parameter",
          "type": "long",
          "required": false,
          "summary": "Explicit provider invalidation version. Changing it cancels the current request and clears retained provider items."
        },
        {
          "name": "RetryText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Provider retry action text."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "required": false,
          "summary": "Visual size of the input."
        },
        {
          "name": "TextSelector",
          "kind": "parameter",
          "type": "Func<TValue, string>",
          "required": false,
          "summary": "Maps an option to display text."
        },
        {
          "name": "ValueSelector",
          "kind": "parameter",
          "type": "Func<TValue, TValue>",
          "required": false,
          "summary": "Extracts the bound value from an option."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TValue",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<TValue>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<TValue>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniSignaturePad",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "Canvas-based signature input with undo, clear and PNG/JPEG/SVG export.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniSignaturePad.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Área para assinatura",
          "required": false,
          "summary": "Accessible label announced for the drawing canvas."
        },
        {
          "name": "BackgroundColor",
          "kind": "parameter",
          "type": "string",
          "default": "#ffffff",
          "required": false,
          "summary": "Canvas background color."
        },
        {
          "name": "ClearText",
          "kind": "parameter",
          "type": "string",
          "default": "Limpar",
          "required": false,
          "summary": "Label for the clear action."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "default": "Aguardando assinatura",
          "required": false,
          "summary": "Status text shown while no signature has been captured."
        },
        {
          "name": "Format",
          "kind": "parameter",
          "type": "SignaturePadFormat",
          "enumValues": [
            {
              "name": "Png",
              "summary": "Portable Network Graphics with lossless compression."
            },
            {
              "name": "Jpeg",
              "summary": "JPEG raster image using the configured quality."
            },
            {
              "name": "Svg",
              "summary": "Scalable Vector Graphics generated from the captured strokes."
            }
          ],
          "default": "Png",
          "required": false,
          "summary": "Format used by the bound Value and ExportAsync."
        },
        {
          "name": "Height",
          "kind": "parameter",
          "type": "int",
          "default": "220",
          "required": false,
          "summary": "Canvas height in CSS pixels."
        },
        {
          "name": "Quality",
          "kind": "parameter",
          "type": "double",
          "default": "0.92",
          "required": false,
          "summary": "JPEG quality between 0 and 1. Ignored by PNG and SVG."
        },
        {
          "name": "ShowToolbar",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Shows the built-in undo, clear and status toolbar."
        },
        {
          "name": "SignedText",
          "kind": "parameter",
          "type": "string",
          "default": "Assinatura capturada",
          "required": false,
          "summary": "Status text shown after at least one stroke is captured."
        },
        {
          "name": "StrokeColor",
          "kind": "parameter",
          "type": "string",
          "default": "#111827",
          "required": false,
          "summary": "Stroke color accepted by the browser canvas API."
        },
        {
          "name": "StrokeCompleted",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Raised after the user completes, removes or clears a stroke."
        },
        {
          "name": "StrokeWidth",
          "kind": "parameter",
          "type": "double",
          "default": "2",
          "required": false,
          "summary": "Stroke width in CSS pixels."
        },
        {
          "name": "UndoText",
          "kind": "parameter",
          "type": "string",
          "default": "Desfazer",
          "required": false,
          "summary": "Label for the undo action."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniSlider",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniSlider.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label do thumb (modo single)."
        },
        {
          "name": "Color",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Cor accent custom para a track ativa e thumbs. Default --omni-accent."
        },
        {
          "name": "Marks",
          "kind": "parameter",
          "type": "IEnumerable<SliderMark>",
          "required": false,
          "summary": "Marcas customizadas (ex: 0%, 25%, 50%...) renderizadas abaixo da track."
        },
        {
          "name": "Max",
          "kind": "parameter",
          "type": "double",
          "default": "100",
          "required": false,
          "summary": "Valor máximo. Default 100."
        },
        {
          "name": "Min",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Valor mínimo. Default 0."
        },
        {
          "name": "Range",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, renderiza 2 thumbs (range)."
        },
        {
          "name": "ShowTicks",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Mostra ticks (pontos pequenos) em cada Step. Auto-desliga se houver mais de 50 ticks para evitar poluição visual."
        },
        {
          "name": "ShowValueLabel",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra balão com o valor sobre o thumb."
        },
        {
          "name": "Step",
          "kind": "parameter",
          "type": "double",
          "default": "1",
          "required": false,
          "summary": "Incremento mínimo. Default 1."
        },
        {
          "name": "ValueEnd",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Range end (thumb direito). Use com Range=true."
        },
        {
          "name": "ValueEndChanged",
          "kind": "event",
          "type": "EventCallback<double>",
          "required": false,
          "summary": "Disparado quando o thumb final (end) muda. Two-way via @bind-ValueEnd."
        },
        {
          "name": "ValueFormatter",
          "kind": "parameter",
          "type": "Func<double, string>",
          "required": false,
          "summary": "Formatador customizado para o balão do thumb. Default: v.ToString(\"0.##\")."
        },
        {
          "name": "ValueStart",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Range start (thumb esquerdo). Use com Range=true."
        },
        {
          "name": "ValueStartChanged",
          "kind": "event",
          "type": "EventCallback<double>",
          "required": false,
          "summary": "Disparado quando o thumb inicial (start) muda. Two-way via @bind-ValueStart."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "double",
          "default": "0",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<double>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<double>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniSpeechToText",
      "category": "Inputs",
      "baseType": "ComponentBase",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Wrapper headless da Web Speech API (SpeechRecognition + webkit variant).",
      "source": "src/Omni.Blazor/Components/Inputs/OmniSpeechToText.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment<SpeechContext>",
          "contextType": "SpeechContext",
          "required": false,
          "summary": "Render-prop que recebe um SpeechContext tipado para você desenhar o próprio botão/UI."
        },
        {
          "name": "Continuous",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true (default), continua reconhecendo até o user parar. false = para automaticamente após o primeiro silêncio longo."
        },
        {
          "name": "InterimResults",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, dispara OnResult com resultados parciais (IsFinal=false) enquanto o user fala. Útil pra mostrar texto \"ao vivo\" enquanto fala. Default false — só resultados finais."
        },
        {
          "name": "Language",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "BCP-47 language code: \"pt-BR\", \"en-US\", \"es-ES\", etc. Null = browser default."
        },
        {
          "name": "MaxAlternatives",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Quantas alternativas pedir do motor por trecho. Default 1."
        },
        {
          "name": "OnEnd",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Disparado quando o reconhecimento termina (user parou, silêncio longo em modo non-continuous, ou erro). Use pra resetar UI."
        },
        {
          "name": "OnError",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Disparado em erro. Códigos comuns: \"not-allowed\" (permissão negada), \"no-speech\", \"audio-capture\", \"network\", \"aborted\", \"start-timeout\" (browser não respondeu), \"invalid-state\" (instância prévia travada). Use pra mostrar feedback ao user."
        },
        {
          "name": "OnResult",
          "kind": "event",
          "type": "EventCallback<SpeechRecognitionResult>",
          "required": false,
          "summary": "Disparado a cada onresult do motor. Recebe transcript + IsFinal + confidence."
        },
        {
          "name": "OnStart",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Disparado quando o reconhecimento começa (após permissão de mic)."
        },
        {
          "name": "OnStateChange",
          "kind": "event",
          "type": "EventCallback<SpeechRecognitionState>",
          "required": false,
          "summary": "Disparado a cada transição de estado da state machine (Idle ↔ Connecting ↔ Recording ↔ Stopping ↔ Error). Use pra UI avançada (spinner em transição, badge de erro, etc)."
        },
        {
          "name": "OnUnsupported",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Disparado quando o browser NÃO suporta Web Speech API (Firefox, alguns embedded webviews). Use pra esconder o botão de mic ou mostrar mensagem alternativa."
        }
      ]
    },
    {
      "name": "OmniSpeechToTextButton",
      "category": "Inputs",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Botão pronto pra falar — wrapper visual de conveniência por cima do headless OmniSpeechToText.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniSpeechToTextButton.razor",
      "parameters": [
        {
          "name": "AllowInterrupt",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Permite clicar o botão mesmo em estado Busy (Starting/Stopping). Default false — espera transição completar. true = cliques rápidos passam pro JS (que já tem debounce de 250ms)."
        },
        {
          "name": "BusyIcon",
          "kind": "parameter",
          "type": "string",
          "default": "loader",
          "required": false,
          "summary": "Ícone em transição (Connecting/Stopping). Default \"loader\"."
        },
        {
          "name": "BusyText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "(Obsoleto — use ConnectingText.) Texto genérico de transição, mantido por compatibilidade. Se setado, sobrescreve ConnectingText e StoppingText."
        },
        {
          "name": "BusyTitle",
          "kind": "parameter",
          "type": "string",
          "default": "Aguarde…",
          "required": false,
          "summary": "Tooltip durante transição (Connecting/Stopping)."
        },
        {
          "name": "ConnectingText",
          "kind": "parameter",
          "type": "string",
          "default": "Conectando…",
          "required": false,
          "summary": "Texto durante Connecting (aguardando mic ficar pronto). Default \"Conectando…\". Crítico no Edge — mostra que ainda NÃO está ouvindo enquanto Microsoft Speech estabelece conexão."
        },
        {
          "name": "Continuous",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Continua reconhecendo até o user parar. Default true."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Desabilita o botão manualmente (além de desabilitar quando o browser não suporta). Default false."
        },
        {
          "name": "ErrorIcon",
          "kind": "parameter",
          "type": "string",
          "default": "alert-circle",
          "required": false,
          "summary": "Ícone em erro. Default \"alert-circle\"."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "mic",
          "required": false,
          "summary": "Ícone idle (não gravando). Default \"mic\"."
        },
        {
          "name": "InterimResults",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Dispara OnResult com resultados parciais enquanto o user fala. Default false."
        },
        {
          "name": "Language",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Código de idioma BCP-47 (\"pt-BR\", \"en-US\"...). Null = padrão do browser."
        },
        {
          "name": "MaxAlternatives",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Quantas alternativas pedir ao motor por trecho. Default 1."
        },
        {
          "name": "OnEnd",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Disparado quando o reconhecimento termina."
        },
        {
          "name": "OnError",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Disparado em erro, com o código cru do browser."
        },
        {
          "name": "OnResult",
          "kind": "event",
          "type": "EventCallback<SpeechRecognitionResult>",
          "required": false,
          "summary": "Disparado a cada resultado do reconhecimento (transcript + IsFinal + confidence)."
        },
        {
          "name": "OnStart",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Disparado quando o reconhecimento começa."
        },
        {
          "name": "OnStateChange",
          "kind": "event",
          "type": "EventCallback<SpeechRecognitionState>",
          "required": false,
          "summary": "Disparado a cada transição da state machine de reconhecimento."
        },
        {
          "name": "RecordingText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto durante gravação (mic capturando). Default = Text."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho do botão. Default Md."
        },
        {
          "name": "StopIcon",
          "kind": "parameter",
          "type": "string",
          "default": "stop-circle",
          "required": false,
          "summary": "Ícone gravando. Default \"stop-circle\"."
        },
        {
          "name": "StopTitle",
          "kind": "parameter",
          "type": "string",
          "default": "Pressione para parar",
          "required": false,
          "summary": "Tooltip + aria-label gravando."
        },
        {
          "name": "StoppingText",
          "kind": "parameter",
          "type": "string",
          "default": "Parando…",
          "required": false,
          "summary": "Texto durante Stopping. Default \"Parando…\"."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto idle. Vazio + RecordingText vazio = botão icon-only."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "default": "Pressione para falar",
          "required": false,
          "summary": "Tooltip + aria-label idle."
        },
        {
          "name": "UnsupportedTitle",
          "kind": "parameter",
          "type": "string",
          "default": "Reconhecimento de voz não disponível neste navegador",
          "required": false,
          "summary": "Tooltip quando browser não suporta Web Speech API."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Variante visual do botão. Default Default."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSwitch",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": true,
      "source": "src/Omni.Blazor/Components/Inputs/OmniSwitch.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom label content; rendered instead of Label when provided."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text label shown next to the switch when no ChildContent is provided."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<bool>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniTagInput",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "OmniTagInput — entrada de múltiplos valores de texto livre (tags, e-mails, escopos, rótulos).",
      "source": "src/Omni.Blazor/Components/Inputs/OmniTagInput.razor",
      "parameters": [
        {
          "name": "AllowCustom",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Permite criar valores livres (fora das Suggestions). Default true. Quando false, só valores presentes em Suggestions são aceitos."
        },
        {
          "name": "AllowDuplicates",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Permite tags repetidas. Default false (ignora duplicatas)."
        },
        {
          "name": "CaseSensitive",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Comparação sensível a maiúsculas (duplicatas/sugestões). Default false."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Desabilita o campo (sem adicionar/remover tags). Default false."
        },
        {
          "name": "Max",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Número máximo de tags. null = ilimitado."
        },
        {
          "name": "MaxSuggestions",
          "kind": "parameter",
          "type": "int",
          "default": "8",
          "required": false,
          "summary": "Máximo de sugestões exibidas no painel. Default 8."
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico — registra com OmniForm para validators irmãos (<OmniRequiredValidator Component=\"...\" />)."
        },
        {
          "name": "OnTagAdded",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Disparado após uma tag ser adicionada, com o texto da tag."
        },
        {
          "name": "OnTagRemoved",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Disparado após uma tag ser removida, com o texto da tag."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto exibido no campo quando não há tags."
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Somente leitura — exibe as tags mas bloqueia edição. Default false."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho visual do campo. Default Md."
        },
        {
          "name": "Suggestions",
          "kind": "parameter",
          "type": "IEnumerable<string>",
          "required": false,
          "summary": "Conjunto opcional de sugestões exibidas num painel ao digitar."
        },
        {
          "name": "Values",
          "kind": "parameter",
          "type": "IEnumerable<string>",
          "required": false,
          "summary": "Tags atuais (two-way via @bind-Values)."
        },
        {
          "name": "ValuesChanged",
          "kind": "event",
          "type": "EventCallback<IEnumerable<string>>",
          "required": false,
          "summary": "Disparado quando a coleção de tags muda."
        },
        {
          "name": "ValuesExpression",
          "kind": "parameter",
          "type": "Expression<Func<IEnumerable<string>>>",
          "required": false,
          "summary": "Expression pra integração com EditContext (validators irmãos)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTextArea",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniTextArea.razor",
      "parameters": [
        {
          "name": "MaxLength",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum number of characters allowed (via maxlength). Default null (no limit)."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder text shown when the textarea is empty."
        },
        {
          "name": "Rows",
          "kind": "parameter",
          "type": "int",
          "default": "4",
          "required": false,
          "summary": "Visible number of text rows. Default 4."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniTextBox",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "source": "src/Omni.Blazor/Components/Inputs/OmniTextBox.razor",
      "parameters": [
        {
          "name": "Autocomplete",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "HTML autocomplete attribute for the input."
        },
        {
          "name": "Clearable",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, shows an \"x\" button to clear the value whenever it's non-empty."
        },
        {
          "name": "LeadingIcon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Icon name rendered inside the input on the left. Default none."
        },
        {
          "name": "MaxLength",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Maximum length enforced via the input's maxlength attribute. Default null (none)."
        },
        {
          "name": "MinLength",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Minimum length enforced via the input's minlength attribute. Default null (none)."
        },
        {
          "name": "OnBlur",
          "kind": "event",
          "type": "EventCallback<FocusEventArgs>",
          "required": false,
          "summary": "Fires when the input loses focus."
        },
        {
          "name": "OnKeyDown",
          "kind": "event",
          "type": "EventCallback<KeyboardEventArgs>",
          "required": false,
          "summary": "Fires on keydown in the input (e.g. to handle Enter)."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Placeholder text shown when the input is empty."
        },
        {
          "name": "ShowCharCount",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true (and MaxLength is set), shows a character counter below the field."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Visual size of the input. Default Md."
        },
        {
          "name": "TrailingIcon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Icon name rendered inside the input on the right (suppressed when the clear button is shown). Default none."
        },
        {
          "name": "Type",
          "kind": "parameter",
          "type": "string",
          "default": "text",
          "required": false,
          "summary": "HTML input type (e.g. \"text\", \"email\", \"tel\"). Default \"text\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "InputId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Stable HTML id applied to the actual focusable input element. Composite controls without a single native input apply it to their focus root. Wrapper elements continue to receive unmatched component attributes.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico do campo. Use com validators irmãos (<OmniRequiredValidator Component=\"email\" />). Default = nome da propriedade extraído do ValueExpression.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "OnlyValidateIfDirty",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, valida apenas após o user mexer no campo (touched). Evita erros vermelhos na primeira render do formulário. Default true.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ReadOnly",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Required",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Marca o campo como obrigatório — valor default/vazio dispara RequiredError.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "RequiredError",
          "kind": "parameter",
          "type": "string",
          "default": "Campo obrigatório.",
          "required": false,
          "summary": "Mensagem exibida quando Required = true e o valor é default/empty.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Validation",
          "kind": "parameter",
          "type": "object",
          "required": false,
          "summary": "Delegate de validação polimórfico. Aceita várias formas: Func<TValue?, bool> — false = erro genérico \"Inválido\".Func<TValue?, string?> — string null = OK, qualquer outra = mensagem.Func<TValue?, IEnumerable<string>> — múltiplas mensagens.Func<TValue?, Task<string?>> — async (uniqueness check em server, etc.).Func<TValue?, Task<IEnumerable<string>>> — async multi.Func<TValue?, CancellationToken, Task<string?>> — async cancelável.Func<TValue?, CancellationToken, Task<IEnumerable<string>>> — async multi cancelável.ValidationAttribute — reusa [Range], [EmailAddress], etc.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Valor atual.",
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "inheritedFrom": "FormComponent"
        },
        {
          "name": "ValueExpression",
          "kind": "parameter",
          "type": "Expression<Func<string>>",
          "required": false,
          "inheritedFrom": "FormComponent"
        }
      ]
    },
    {
      "name": "OmniTimePicker",
      "category": "Inputs",
      "baseType": "FormComponent<T>",
      "isInput": true,
      "hasChildContent": false,
      "summary": "Time picker.",
      "source": "src/Omni.Blazor/Components/Inputs/OmniTimePicker.razor",
      "parameters": [
        {
          "name": "HourFormat",
          "kind": "parameter",
          "type": "string",
          "default": "24",
          "required": false,
          "summary": "\"24\" (default) or \"12\" — adds AM/PM toggle inline with the hour."
        },
        {
          "name": "MinutesStep",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Increment for the minutes field. Default 1."
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Nome lógico — registra com OmniForm para validators irmãos."
        },
        {
          "name": "SecondsStep",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Increment for the seconds field. Default 1."
        },
        {
          "name": "ShowSeconds",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Show a seconds field in addition to hours and minutes. Default false."
        },
        {
          "name": "Time",
          "kind": "parameter",
          "type": "TimeOnly",
          "required": false,
          "summary": "The selected time of day. Bind via @bind-Time."
        },
        {
          "name": "TimeChanged",
          "kind": "event",
          "type": "EventCallback<TimeOnly>",
          "required": false,
          "summary": "Fires when the time changes. Two-way via @bind-Time."
        },
        {
          "name": "TimeExpression",
          "kind": "parameter",
          "type": "Expression<Func<TimeOnly>>",
          "required": false,
          "summary": "Expression pra integração com EditContext + validators irmãos."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAppBar",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Barra superior/inferior do <c>OmniLayout</c>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniAppBar.razor",
      "parameters": [
        {
          "name": "Bordered",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Borda inferior. Default true."
        },
        {
          "name": "ElevateOnScroll",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, a sombra só aparece após o user rolar além do AppBar. Útil para AppBars transparentes em landing pages. Default false."
        },
        {
          "name": "Elevated",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Sombra fina abaixo. Default true. Quando ElevateOnScroll é true, a sombra só aparece após scroll."
        },
        {
          "name": "Fixed",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Não rola junto com o main. Default true."
        },
        {
          "name": "HideOnScroll",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Esconde a AppBar quando o user rola down no main; reaparece ao rolar up. UX padrão mobile (Twitter, Instagram). Default false."
        },
        {
          "name": "Position",
          "kind": "parameter",
          "type": "BarPosition",
          "enumValues": [
            {
              "name": "Top",
              "summary": "Topo (header)."
            },
            {
              "name": "Bottom",
              "summary": "Rodapé (footer)."
            }
          ],
          "default": "Top",
          "required": false,
          "summary": "Posição no layout. Default Top."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAppearanceToggle",
      "category": "Layout",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Theme mode switcher — Light / Dark / System.",
      "source": "src/Omni.Blazor/Components/Layout/OmniAppearanceToggle.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "aria-label do grupo. Default \"Modo de aparência\"."
        },
        {
          "name": "ButtonVariant",
          "kind": "parameter",
          "type": "ButtonVariant",
          "enumValues": [
            {
              "name": "Default",
              "summary": "Neutral surface button (default)."
            },
            {
              "name": "Primary",
              "summary": "Filled accent button for the primary action."
            },
            {
              "name": "Ghost",
              "summary": "Transparent button — background only on hover."
            },
            {
              "name": "Danger",
              "summary": "Destructive action (filled danger color)."
            },
            {
              "name": "Link",
              "summary": "Looks like a hyperlink (no border/background)."
            }
          ],
          "default": "Default",
          "required": false,
          "summary": "Variant do OmniButton interno (Dropdown/Cycle). Default Default."
        },
        {
          "name": "DarkIcon",
          "kind": "parameter",
          "type": "string",
          "default": "moon",
          "required": false,
          "summary": "Ícone do modo Dark. Default \"moon\"."
        },
        {
          "name": "DarkLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Escuro",
          "required": false,
          "summary": "Texto/label do modo Dark. Default \"Escuro\"."
        },
        {
          "name": "LightIcon",
          "kind": "parameter",
          "type": "string",
          "default": "sun",
          "required": false,
          "summary": "Ícone do modo Light. Default \"sun\"."
        },
        {
          "name": "LightLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Claro",
          "required": false,
          "summary": "Texto/label do modo Light. Default \"Claro\"."
        },
        {
          "name": "OnModeChanged",
          "kind": "event",
          "type": "EventCallback<ThemeMode>",
          "required": false,
          "summary": "Disparado quando o modo muda."
        },
        {
          "name": "ShowLabels",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Mostra label de texto junto do ícone. Default false (icon-only)."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Tamanho do botão. Default Md."
        },
        {
          "name": "SystemIcon",
          "kind": "parameter",
          "type": "string",
          "default": "monitor",
          "required": false,
          "summary": "Ícone do modo System. Default \"monitor\"."
        },
        {
          "name": "SystemLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Sistema",
          "required": false,
          "summary": "Texto/label do modo System. Default \"Sistema\"."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "AppearanceToggleVariant",
          "enumValues": [
            {
              "name": "Dropdown",
              "summary": "Botão único com menu popover de 3 opções (default)."
            },
            {
              "name": "Segmented",
              "summary": "3 botões inline lado a lado."
            },
            {
              "name": "Cycle",
              "summary": "Botão único que cicla pelos 3 modos a cada click."
            }
          ],
          "default": "Dropdown",
          "required": false,
          "summary": "Visual do toggle. Default Dropdown."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniAuthLayout",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Auth page scaffold — centered card by default; pass a Brand fragment to get the split layout (dark brand panel + form panel).",
      "source": "src/Omni.Blazor/Components/Layout/OmniAuthLayout.razor",
      "parameters": [
        {
          "name": "Brand",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "When set, renders the dark brand side panel (split layout)."
        },
        {
          "name": "Decor",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Subtle grid + accent-glow background on the form area. Default true."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBanner",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Persistent, app-wide message bar — sits above the layout chrome and stays until dismissed (unlike OmniAlert which lives inline in page content, and toasts which auto-dismiss).",
      "source": "src/Omni.Blazor/Components/Layout/OmniBanner.razor",
      "parameters": [
        {
          "name": "Actions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Inline actions on the trailing edge."
        },
        {
          "name": "Dismissible",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Show a dismiss (×) button."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Override the leading icon."
        },
        {
          "name": "OnClosed",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Fires after the banner is dismissed."
        },
        {
          "name": "Severity",
          "kind": "parameter",
          "type": "NotificationSeverity",
          "enumValues": [
            {
              "name": "Info",
              "summary": "Informational (neutral/accent tone)."
            },
            {
              "name": "Success",
              "summary": "Success (good/green tone)."
            },
            {
              "name": "Warning",
              "summary": "Warning (warn/amber tone)."
            },
            {
              "name": "Error",
              "summary": "Error (danger/red tone)."
            }
          ],
          "default": "Info",
          "required": false,
          "summary": "Intent — drives icon + tint. Default Info."
        },
        {
          "name": "Sticky",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Stick to the top of the scroll container."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBento",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniBento — grade 2D densa (Bento).",
      "source": "src/Omni.Blazor/Components/Layout/OmniBento.razor",
      "parameters": [
        {
          "name": "AlignItems",
          "kind": "parameter",
          "type": "StackAlign",
          "enumValues": [
            {
              "name": "Start",
              "summary": "Alinha ao início do eixo cross (flex-start)."
            },
            {
              "name": "Center",
              "summary": "Centraliza no eixo cross."
            },
            {
              "name": "End",
              "summary": "Alinha ao fim do eixo cross (flex-end)."
            },
            {
              "name": "Stretch",
              "summary": "Estica os filhos para preencher o eixo cross."
            },
            {
              "name": "Baseline",
              "summary": "Alinha pela linha de base do texto (baseline)."
            }
          ],
          "default": "Stretch",
          "required": false,
          "summary": "Alinhamento vertical dos tiles na célula (align-items do grid). Default Stretch."
        },
        {
          "name": "Columns",
          "kind": "parameter",
          "type": "int",
          "default": "12",
          "required": false,
          "summary": "Número de colunas (mobile-first). Default 12. Ignorado quando MinTileWidth é definido."
        },
        {
          "name": "ColumnsLg",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de Columns em ≥1440px. Default null."
        },
        {
          "name": "ColumnsMd",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de Columns em ≥1024px. Default null."
        },
        {
          "name": "ColumnsSm",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de Columns em ≥640px. Default null."
        },
        {
          "name": "Connected",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Visual \"grudado\" de 1px (tiles achatados, sem gap) — para telas operacionais densas. Default false."
        },
        {
          "name": "Container",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Responsividade por container query: colunas/spans reagem à largura do PRÓPRIO Bento (não do viewport), via um wrapper. Use para Bentos dentro de painéis/sidebars. Default false. (Alternativa ao MinTileWidth, que já é container-relativo.)"
        },
        {
          "name": "Dense",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Empacotamento denso (grid-auto-flow: row dense). Default true. Defina false para preservar a ordem do DOM = ordem visual (foco/leitura quando os tiles são interativos)."
        },
        {
          "name": "EqualRows",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Linhas de altura igual (grid-auto-rows: 1fr) — visual Apple alinhado. Vence RowHeight. Default false."
        },
        {
          "name": "Gap",
          "kind": "parameter",
          "type": "int",
          "default": "16",
          "required": false,
          "summary": "Espaçamento entre tiles em px. Default 16 (estilo Apple). Ignorado quando Connected."
        },
        {
          "name": "MinTileWidth",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Largura mínima do tile em px. Quando definido, usa auto-fit (repeat(auto-fit, minmax(MinTileWidth, 1fr))) — os tiles refluem pela largura do container sem breakpoints, e Columns é ignorado."
        },
        {
          "name": "RowHeight",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Altura-base de cada linha do grid em px (grid-auto-rows minmax). Default null (altura por conteúdo)."
        },
        {
          "name": "Square",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Remove o arredondamento dos tiles (cantos retos). Default false."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBentoItem",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniBentoItem — tile tipado de um <c>OmniBento</c>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniBentoItem.razor",
      "parameters": [
        {
          "name": "AlignContent",
          "kind": "parameter",
          "type": "StackAlign",
          "enumValues": [
            {
              "name": "Start",
              "summary": "Alinha ao início do eixo cross (flex-start)."
            },
            {
              "name": "Center",
              "summary": "Centraliza no eixo cross."
            },
            {
              "name": "End",
              "summary": "Alinha ao fim do eixo cross (flex-end)."
            },
            {
              "name": "Stretch",
              "summary": "Estica os filhos para preencher o eixo cross."
            },
            {
              "name": "Baseline",
              "summary": "Alinha pela linha de base do texto (baseline)."
            }
          ],
          "required": false,
          "summary": "Alinhamento (cross-axis) do conteúdo dentro do tile — torna o tile um flex column."
        },
        {
          "name": "AspectRatio",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "CSS aspect-ratio do tile (ex.: \"1/1\", \"16/9\"). Não combine com RowSpan/RowHeight."
        },
        {
          "name": "ColSpan",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Quantas colunas o tile ocupa (base, mobile-first). Default 1."
        },
        {
          "name": "ColSpanLg",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de ColSpan em ≥1440px. Default null."
        },
        {
          "name": "ColSpanMd",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de ColSpan em ≥1024px. Default null."
        },
        {
          "name": "ColSpanSm",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de ColSpan em ≥640px. Default null."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Desabilita o tile interativo."
        },
        {
          "name": "Href",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Torna o tile um link (renderiza <a>). Mutuamente exclusivo com OnClick."
        },
        {
          "name": "JustifyContent",
          "kind": "parameter",
          "type": "StackAlign",
          "enumValues": [
            {
              "name": "Start",
              "summary": "Alinha ao início do eixo cross (flex-start)."
            },
            {
              "name": "Center",
              "summary": "Centraliza no eixo cross."
            },
            {
              "name": "End",
              "summary": "Alinha ao fim do eixo cross (flex-end)."
            },
            {
              "name": "Stretch",
              "summary": "Estica os filhos para preencher o eixo cross."
            },
            {
              "name": "Baseline",
              "summary": "Alinha pela linha de base do texto (baseline)."
            }
          ],
          "required": false,
          "summary": "Distribuição (main-axis) do conteúdo dentro do tile — torna o tile um flex column."
        },
        {
          "name": "NoPadding",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Remove o padding interno do tile. Default false."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Torna o tile um botão (renderiza <button>) quando definido e Href é nulo."
        },
        {
          "name": "RowSpan",
          "kind": "parameter",
          "type": "int",
          "default": "1",
          "required": false,
          "summary": "Quantas linhas o tile ocupa (base). Default 1."
        },
        {
          "name": "RowSpanLg",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de RowSpan em ≥1440px. Default null."
        },
        {
          "name": "RowSpanMd",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de RowSpan em ≥1024px. Default null."
        },
        {
          "name": "RowSpanSm",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de RowSpan em ≥640px. Default null."
        },
        {
          "name": "Scrim",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Adiciona um scrim (gradiente inferior) p/ texto sobre imagem full-bleed. Use com NoPadding."
        },
        {
          "name": "Target",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Alvo do link quando Href é definido (ex.: \"_blank\")."
        },
        {
          "name": "Tone",
          "kind": "parameter",
          "type": "CardTone",
          "enumValues": [
            {
              "name": "None",
              "summary": "Sem cor temática (neutro padrão)."
            },
            {
              "name": "Accent",
              "summary": "Cor accent do tema."
            },
            {
              "name": "Neutral",
              "summary": "Tom neutro/cinza."
            },
            {
              "name": "Info",
              "summary": "Tom informativo (azul)."
            },
            {
              "name": "Success",
              "summary": "Tom de sucesso (verde)."
            },
            {
              "name": "Warning",
              "summary": "Tom de atenção (âmbar)."
            },
            {
              "name": "Danger",
              "summary": "Tom de perigo (vermelho)."
            }
          ],
          "default": "None",
          "required": false,
          "summary": "Tom do tile — hero/accent + semânticos (tinta suave + borda). Default None."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBrand",
      "category": "Layout",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Logo/marca do app: quadrado com inicial + nome (e tenant opcional); vira link quando Href é definido.",
      "source": "src/Omni.Blazor/Components/Layout/OmniBrand.razor",
      "parameters": [
        {
          "name": "Href",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Quando definido, renderiza a marca como link (<a href>); senão como <div>. Default null."
        },
        {
          "name": "Initial",
          "kind": "parameter",
          "type": "string",
          "default": "F",
          "required": false,
          "summary": "Inicial exibida no quadrado da marca. Default \"F\"."
        },
        {
          "name": "Large",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Usa o quadrado da marca em tamanho maior. Default false."
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "default": "Forneria",
          "required": false,
          "summary": "Nome do app/marca exibido ao lado do quadrado. Default \"Forneria\"."
        },
        {
          "name": "Tenant",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Tenant/workspace opcional — renderiza \" / Tenant\" após o nome. Default null (oculto)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBreakpointProvider",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Cascades the current <see cref=\"Breakpoint\"/> to descendants so they can branch their markup on viewport size from C# (no CSS-only conditionals).",
      "source": "src/Omni.Blazor/Components/Layout/OmniBreakpointProvider.razor",
      "parameters": [
        {
          "name": "Breakpoint",
          "kind": "parameter",
          "type": "Breakpoint",
          "enumValues": [
            {
              "name": "Xs",
              "summary": "Extra small — <576px."
            },
            {
              "name": "Sm",
              "summary": "Small — <768px."
            },
            {
              "name": "Md",
              "summary": "Medium — <992px."
            },
            {
              "name": "Lg",
              "summary": "Large — <1200px."
            },
            {
              "name": "Xl",
              "summary": "Extra large — <1400px."
            },
            {
              "name": "Xxl",
              "summary": "Extra extra large — ≥1400px."
            }
          ],
          "default": "Xs",
          "required": false,
          "summary": "Current breakpoint, cascaded to descendants. Two-way bindable via @bind-Breakpoint; updated on every viewport change. Default Md."
        },
        {
          "name": "BreakpointChanged",
          "kind": "event",
          "type": "EventCallback<Breakpoint>",
          "required": false,
          "summary": "Fires whenever the active breakpoint changes. Enables @bind-Breakpoint."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCol",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Coluna do grid 12-colunas.",
      "source": "src/Omni.Blazor/Components/Layout/OmniCol.razor",
      "parameters": [
        {
          "name": "Size",
          "kind": "parameter",
          "type": "int",
          "default": "12",
          "required": false,
          "summary": "Span padrão (mobile-first, sempre aplicado). 1–12. Default 12."
        },
        {
          "name": "SizeLg",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override em ≥1440 px."
        },
        {
          "name": "SizeMd",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override em ≥1024 px."
        },
        {
          "name": "SizeSm",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override em ≥640 px."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniContainer",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Wrapper centralizado com largura máxima responsiva.",
      "source": "src/Omni.Blazor/Components/Layout/OmniContainer.razor",
      "parameters": [
        {
          "name": "Fluid",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Atalho para Full (sem limite). Default false."
        },
        {
          "name": "Gutters",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Padding lateral nas bordas. Default true."
        },
        {
          "name": "MaxWidth",
          "kind": "parameter",
          "type": "ContainerMaxWidth",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Largura máxima do breakpoint sm."
            },
            {
              "name": "Md",
              "summary": "Largura máxima do breakpoint md."
            },
            {
              "name": "Lg",
              "summary": "Largura máxima do breakpoint lg."
            },
            {
              "name": "Xl",
              "summary": "Largura máxima do breakpoint xl."
            },
            {
              "name": "Xxl",
              "summary": "Largura máxima do breakpoint xxl."
            },
            {
              "name": "Full",
              "summary": "Sem limite — ocupa 100% da largura disponível."
            }
          ],
          "default": "Lg",
          "required": false,
          "summary": "Largura máxima do container. Default Lg (1280px)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDrawer",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Drawer / sidebar genérico — equivalente ao <c>MudDrawer</c> (MudBlazor),",
      "source": "src/Omni.Blazor/Components/Layout/OmniDrawer.razor",
      "parameters": [
        {
          "name": "Anchor",
          "kind": "parameter",
          "type": "DrawerAnchor",
          "enumValues": [
            {
              "name": "Left",
              "summary": "Ancorado à esquerda."
            },
            {
              "name": "Right",
              "summary": "Ancorado à direita."
            }
          ],
          "default": "Left",
          "required": false,
          "summary": "Ancoragem do drawer no layout. Default Left."
        },
        {
          "name": "AutoCloseOnNavigate",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Se true (default), o drawer fecha automaticamente em modo overlay quando o usuário navega para outra rota. Útil em mobile — elimina boilerplate no AppShell consumidor."
        },
        {
          "name": "Breakpoint",
          "kind": "parameter",
          "type": "Breakpoint",
          "enumValues": [
            {
              "name": "Xs",
              "summary": "Extra small — <576px."
            },
            {
              "name": "Sm",
              "summary": "Small — <768px."
            },
            {
              "name": "Md",
              "summary": "Medium — <992px."
            },
            {
              "name": "Lg",
              "summary": "Large — <1200px."
            },
            {
              "name": "Xl",
              "summary": "Extra large — <1400px."
            },
            {
              "name": "Xxl",
              "summary": "Extra extra large — ≥1400px."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Breakpoint a partir do qual o Responsive vira overlay. Default Md (~1024px)."
        },
        {
          "name": "Collapsed",
          "kind": "parameter",
          "type": "bool",
          "required": false,
          "summary": "Força modo collapsed (icon-only) independente da variante. Útil para Mini estático."
        },
        {
          "name": "ExpandOnHover",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, o drawer Mini expande on-hover (ficando full-width) e retorna ao icon-only quando o mouse sai. Útil para combinar densidade visual com acesso rápido aos labels. Default false."
        },
        {
          "name": "Footer",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Slot opcional renderizado no rodapé do drawer — após o ChildContent. Útil para card de plano/upgrade, link de logout, versão do app. Padrão Slack/Discord/shadcn."
        },
        {
          "name": "Header",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Slot opcional renderizado no topo do drawer — antes do ChildContent. Útil para logo do app, info do usuário, busca rápida. Inspirado em MudDrawerHeader."
        },
        {
          "name": "MiniWidth",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Largura quando em modo Mini (icon-only). Default usa --omni-drawer-w-mini (72px)."
        },
        {
          "name": "Open",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Estado aberto/fechado. Two-way binding com @bind-Open. Persistent: ignora (sempre visível); demais variantes: alterna visibilidade."
        },
        {
          "name": "OpenChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Notifica mudança do estado Open."
        },
        {
          "name": "Persist",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, persiste o estado Open em localStorage (chave omni.drawer.{Id} ou PersistKey). Sobrevive a F5 e navegação. Default false. Padrão shadcn/ui."
        },
        {
          "name": "PersistKey",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Chave custom para persistência. Útil quando há múltiplos drawers e o Id auto-gerado mudaria entre sessões. Default null — usa o Id."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "DrawerVariant",
          "enumValues": [
            {
              "name": "Persistent",
              "summary": "Sempre visível, empurra o main."
            },
            {
              "name": "Mini",
              "summary": "Sempre visível mas icon-only; expande on-hover."
            },
            {
              "name": "Temporary",
              "summary": "Overlay com backdrop, fechado por default."
            },
            {
              "name": "Responsive",
              "summary": "Persistent acima do Breakpoint, Temporary abaixo (default)."
            }
          ],
          "default": "Responsive",
          "required": false,
          "summary": "Variante de comportamento. Default Responsive."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Largura quando aberto. Default usa CSS var --omni-drawer-w (232px)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDrawerToggle",
      "category": "Layout",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Botão hamburger que alterna o estado de um <c>OmniDrawer</c>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniDrawerToggle.razor",
      "parameters": [
        {
          "name": "Anchor",
          "kind": "parameter",
          "type": "DrawerAnchor",
          "enumValues": [
            {
              "name": "Left",
              "summary": "Ancorado à esquerda."
            },
            {
              "name": "Right",
              "summary": "Ancorado à direita."
            }
          ],
          "required": false,
          "summary": "Filtra drawers por âncora quando há mais de um no layout. Default null."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "default": "menu",
          "required": false,
          "summary": "Ícone Lucide do botão. Default menu."
        },
        {
          "name": "Target",
          "kind": "parameter",
          "type": "OmniDrawer",
          "required": false,
          "summary": "Referência manual ao drawer alvo. Default: usa resolução automática."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "default": "Abrir menu",
          "required": false,
          "summary": "Texto acessível (aria-label + title). Default \"Abrir menu\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniFooter",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Footer slot do <c>OmniLayout</c>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniFooter.razor",
      "parameters": [
        {
          "name": "Bordered",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Borda superior fina. Default true."
        },
        {
          "name": "Fixed",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Fixa o footer ao rodapé da viewport (sticky). Default false (rola junto)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniHidden",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Renderiza condicionalmente subárvore baseado no breakpoint atual da viewport.",
      "source": "src/Omni.Blazor/Components/Layout/OmniHidden.razor",
      "parameters": [
        {
          "name": "Breakpoint",
          "kind": "parameter",
          "type": "Breakpoint",
          "enumValues": [
            {
              "name": "Xs",
              "summary": "Extra small — <576px."
            },
            {
              "name": "Sm",
              "summary": "Small — <768px."
            },
            {
              "name": "Md",
              "summary": "Medium — <992px."
            },
            {
              "name": "Lg",
              "summary": "Large — <1200px."
            },
            {
              "name": "Xl",
              "summary": "Extra large — <1400px."
            },
            {
              "name": "Xxl",
              "summary": "Extra extra large — ≥1400px."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Breakpoint que serve de pivô para a regra de visibilidade. Default Md."
        },
        {
          "name": "Invert",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Inverte a lógica de visibilidade. Útil para renderizar SOMENTE quando a regra de hide seria true."
        },
        {
          "name": "Mode",
          "kind": "parameter",
          "type": "HiddenMode",
          "enumValues": [
            {
              "name": "Down",
              "summary": "Esconde quando viewport <= Breakpoint (default — esconde mobile e abaixo)."
            },
            {
              "name": "Up",
              "summary": "Esconde quando viewport >= Breakpoint (esconde desktop e acima)."
            },
            {
              "name": "Only",
              "summary": "Esconde apenas no breakpoint exato."
            }
          ],
          "default": "Down",
          "required": false,
          "summary": "Modo de comparação: Down (default — esconde abaixo/igual ao breakpoint), Up (esconde acima/igual), Only (esconde apenas no breakpoint exato)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniLayout",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Container raiz do shell.",
      "source": "src/Omni.Blazor/Components/Layout/OmniLayout.razor",
      "parameters": [
        {
          "name": "SkipLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Texto do link de skip. Default \"Pular para o conteúdo\"."
        },
        {
          "name": "SkipTarget",
          "kind": "parameter",
          "type": "string",
          "default": "#main",
          "required": false,
          "summary": "Âncora do skip link. Default #main (o OmniMain renderiza um elemento <main> que pode receber esse id no consumidor via Class ou attributes)."
        },
        {
          "name": "SkipToContent",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Renderiza um \"skip to content\" link visível apenas com foco por teclado (Tab no início da página). WCAG 2.4.1. Default true."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMain",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Área principal de conteúdo do <c>OmniLayout</c>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniMain.razor",
      "parameters": [
        {
          "name": "Container",
          "kind": "parameter",
          "type": "ContainerMaxWidth",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Largura máxima do breakpoint sm."
            },
            {
              "name": "Md",
              "summary": "Largura máxima do breakpoint md."
            },
            {
              "name": "Lg",
              "summary": "Largura máxima do breakpoint lg."
            },
            {
              "name": "Xl",
              "summary": "Largura máxima do breakpoint xl."
            },
            {
              "name": "Xxl",
              "summary": "Largura máxima do breakpoint xxl."
            },
            {
              "name": "Full",
              "summary": "Sem limite — ocupa 100% da largura disponível."
            }
          ],
          "required": false,
          "summary": "Envelopa em OmniContainer com o max-width indicado. Default null (sem container)."
        },
        {
          "name": "NoPadding",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Remove o padding interno padrão. Default false."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMasonry",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniMasonry — layout em cascata (Pinterest): colunas de largura igual onde cada item mantém a altura natural e empilha na coluna mais curta, sem alinhar linhas.",
      "source": "src/Omni.Blazor/Components/Layout/OmniMasonry.razor",
      "parameters": [
        {
          "name": "Columns",
          "kind": "parameter",
          "type": "int",
          "default": "3",
          "required": false,
          "summary": "Número de colunas. Default 3. Ignorado quando MinColumnWidth é definido."
        },
        {
          "name": "ColumnsLg",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de Columns em ≥1440px. Default null."
        },
        {
          "name": "ColumnsMd",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de Columns em ≥1024px. Default null."
        },
        {
          "name": "ColumnsSm",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Override de Columns em ≥640px. Default null."
        },
        {
          "name": "Gap",
          "kind": "parameter",
          "type": "int",
          "default": "16",
          "required": false,
          "summary": "Espaçamento entre colunas e entre itens (px). Default 16."
        },
        {
          "name": "MinColumnWidth",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Largura mínima da coluna em px. Quando definido, usa column-width — a contagem de colunas reage à largura do container, sem breakpoints — e Columns é ignorado."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMediaQuery",
      "category": "Layout",
      "baseType": "ComponentBase",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Componente \"headless\" (sem render visual próprio) que escuta uma CSS media query e dispara um callback / two-way bind quando o estado muda. Equivalente ao RadzenMediaQuery, mas com APIs adicionais:Two-way @bind-Matches além do Change callback.Atalho Breakpoint que traduz para (min-width: …) usando os mesmos thresholds do OmniHidden/BreakpointService.ChildContent como render-prop opcional — recebe o bool atual pra você renderizar condicionalmente sem precisar de um campo no @code.Usage — callback: <OmniMediaQuery Query=\"(max-width: 768px)\" Change=\"OnMobileChange\" /> @code { void OnMobileChange(bool isMobile) { _isMobile = isMobile; } } Usage — two-way bind: <OmniMediaQuery Query=\"(prefers-color-scheme: dark)\" @bind-Matches=\"_isDark\" /> Usage — render-prop: <OmniMediaQuery Breakpoint=\"Breakpoint.Md\" Context=\"atMd\"> @if (atMd) { <DesktopNav /> } else { <MobileNav /> } </OmniMediaQuery>",
      "source": "src/Omni.Blazor/Components/Layout/OmniMediaQuery.cs",
      "parameters": [
        {
          "name": "Breakpoint",
          "kind": "parameter",
          "type": "Breakpoint",
          "enumValues": [
            {
              "name": "Xs",
              "summary": "Extra small — <576px."
            },
            {
              "name": "Sm",
              "summary": "Small — <768px."
            },
            {
              "name": "Md",
              "summary": "Medium — <992px."
            },
            {
              "name": "Lg",
              "summary": "Large — <1200px."
            },
            {
              "name": "Xl",
              "summary": "Extra large — <1400px."
            },
            {
              "name": "Xxl",
              "summary": "Extra extra large — ≥1400px."
            }
          ],
          "required": false,
          "summary": "Atalho conveniente: traduz para (min-width: Npx) usando os mesmos thresholds dos outros componentes (sm=576, md=768, lg=992, xl=1200, xxl=1400). Útil quando você quer \"viewport ≥ Md\". Ignorado quando Query está definido."
        },
        {
          "name": "Change",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Callback opcional disparado quando o resultado da query muda. Recebe o novo valor (true = corresponde). Fora do bind: serve pra rodar side effects (logging, scroll lock, etc.) quando o estado muda."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment<bool>",
          "contextType": "bool",
          "required": false,
          "summary": "Render-prop opcional: quando definido, o conteúdo é renderizado recebendo o bool atual via Context. Sem ChildContent, o componente é totalmente headless (zero DOM)."
        },
        {
          "name": "Matches",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Two-way bind do resultado: true quando a query corresponde, false caso contrário. Use junto com @bind-Matches em vez do callback Change quando você só precisa do valor declarativamente."
        },
        {
          "name": "MatchesChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Disparado quando o Matches muda (escrita do two-way bind)."
        },
        {
          "name": "Query",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Media query CSS literal. Exemplo: \"(max-width: 768px)\", \"(prefers-color-scheme: dark)\", \"(orientation: portrait)\". Tem precedência sobre Breakpoint quando ambos estão definidos."
        }
      ]
    },
    {
      "name": "OmniPaneHeader",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Fixed (non-scrolling) header band at the top of a pane — typically a",
      "source": "src/Omni.Blazor/Components/Layout/OmniPaneHeader.razor",
      "parameters": [
        {
          "name": "Actions",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Ações à direita (ex.: OmniButton). Quando presente, ativa layout em 2 colunas."
        },
        {
          "name": "Breadcrumb",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Trilha de navegação contextual (ex.: OmniBreadcrumb) — renderizada acima do título."
        },
        {
          "name": "Subtabs",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Sub-tabs / período / segmento contextual (ex.: OmniSegmentedControl, OmniTabs) — renderizado abaixo do par título/ações, com margem dedicada."
        },
        {
          "name": "Subtitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Subtítulo — renderizado como p com classe .omni-view-sub."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Título principal — renderizado como h1 com classe .omni-view-title."
        },
        {
          "name": "TitleContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Alternativa ao Title quando precisa de markup customizado no lugar do h1."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPaneToolbar",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Fixed (non-scrolling) toolbar band — typically below <OmniPaneHeader>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniPaneToolbar.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniParallax",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniParallax — cena de parallax com camadas de profundidade.",
      "source": "src/Omni.Blazor/Components/Layout/OmniParallax.razor",
      "parameters": [
        {
          "name": "Axis",
          "kind": "parameter",
          "type": "ParallaxAxis",
          "enumValues": [
            {
              "name": "Vertical",
              "summary": "Move no eixo Y (default)."
            },
            {
              "name": "Horizontal",
              "summary": "Move no eixo X."
            },
            {
              "name": "Both",
              "summary": "Move nos dois eixos (diagonal)."
            }
          ],
          "default": "Vertical",
          "required": false,
          "summary": "Eixo da translação das camadas (cascata; a camada pode sobrescrever). Default Vertical."
        },
        {
          "name": "DisableBelow",
          "kind": "parameter",
          "type": "Breakpoint",
          "enumValues": [
            {
              "name": "Xs",
              "summary": "Extra small — <576px."
            },
            {
              "name": "Sm",
              "summary": "Small — <768px."
            },
            {
              "name": "Md",
              "summary": "Medium — <992px."
            },
            {
              "name": "Lg",
              "summary": "Large — <1200px."
            },
            {
              "name": "Xl",
              "summary": "Extra large — <1400px."
            },
            {
              "name": "Xxl",
              "summary": "Extra extra large — ≥1400px."
            }
          ],
          "default": "Sm",
          "required": false,
          "summary": "Breakpoint até o qual (inclusive) o parallax fica desligado quando DisableOnMobile. Default Sm."
        },
        {
          "name": "DisableOnMobile",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Desliga em telas pequenas (mobile sofre com jank/CLS de barra de endereço). Default true."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Desliga o parallax (camadas em repouso). Default false."
        },
        {
          "name": "MouseParallax",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Habilita parallax por ponteiro do mouse (desktop fine-pointer). Default false."
        },
        {
          "name": "MouseStrength",
          "kind": "parameter",
          "type": "double",
          "default": "1",
          "required": false,
          "summary": "Intensidade do parallax de mouse (px ≈ 24 × valor por camada na velocidade 1). Default 1."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniParallaxLayer",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "OmniParallaxLayer — uma camada de profundidade de um <OmniParallax>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniParallaxLayer.razor",
      "parameters": [
        {
          "name": "Axis",
          "kind": "parameter",
          "type": "ParallaxAxis",
          "enumValues": [
            {
              "name": "Vertical",
              "summary": "Move no eixo Y (default)."
            },
            {
              "name": "Horizontal",
              "summary": "Move no eixo X."
            },
            {
              "name": "Both",
              "summary": "Move nos dois eixos (diagonal)."
            }
          ],
          "required": false,
          "summary": "Eixo da translação. null = herda da cena (OmniParallax.Axis). Default null."
        },
        {
          "name": "Range",
          "kind": "parameter",
          "type": "double",
          "default": "300",
          "required": false,
          "summary": "Amplitude total da translação em px (na velocidade 1). Default 300."
        },
        {
          "name": "Speed",
          "kind": "parameter",
          "type": "double",
          "default": "0.3",
          "required": false,
          "summary": "Fator de parallax. 0 = preso ao scroll; >0 = primeiro plano (sobe ao rolar pra baixo); <0 = fundo (desce/recua). Quanto maior |Speed|, mais movimento. Default 0.3."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniRow",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Container grid 12-colunas responsivo.",
      "source": "src/Omni.Blazor/Components/Layout/OmniRow.razor",
      "parameters": [
        {
          "name": "Gap",
          "kind": "parameter",
          "type": "int",
          "default": "16",
          "required": false,
          "summary": "Espaçamento entre colunas e linhas (px). Default 16."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSplitAsideLabel",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Small uppercase label used to group sections inside a <OmniSplitView> aside.",
      "source": "src/Omni.Blazor/Components/Layout/OmniSplitAsideLabel.razor",
      "parameters": [
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label text. Used when no ChildContent is supplied. Default null."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSplitView",
      "category": "Layout",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Generic master/detail layout primitive: an aside (sub-navigation) + main content column inside a positioned parent (usually a <OmniMain>).",
      "source": "src/Omni.Blazor/Components/Layout/OmniSplitView.razor",
      "parameters": [
        {
          "name": "AsideContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Aside (sub-navigation) column content. Becomes an overlay drawer below MobileBreakpoint."
        },
        {
          "name": "AsideRight",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Place the aside on the right instead of the default left."
        },
        {
          "name": "AsideSize",
          "kind": "parameter",
          "type": "ComponentSize",
          "enumValues": [
            {
              "name": "Sm",
              "summary": "Small."
            },
            {
              "name": "Md",
              "summary": "Medium (default)."
            },
            {
              "name": "Lg",
              "summary": "Large."
            },
            {
              "name": "Xl",
              "summary": "Extra large."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Aside width preset (Sm=200px, Md=228px, Lg=280px). Default = Md. Ignorado quando AsideWidth está setado."
        },
        {
          "name": "AsideWidth",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Largura arbitrária do aside (ex: \"380px\", \"25%\", \"20rem\"). Quando setado, sobrescreve AsideSize. Útil para layouts POS, master/detail com proporções específicas, ou aside dimensionado por conteúdo. Pode ser sobrescrito via CSS pelo consumidor manipulando a custom property --omni-aside-w em media queries."
        },
        {
          "name": "AutoCloseOnNavigate",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Se true (default), fecha o overlay automaticamente em mobile quando o usuário navega — elimina overlay travado sobre a nova rota."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Main column content (scrollable). Typically a pane header/toolbar plus a body."
        },
        {
          "name": "MobileBreakpoint",
          "kind": "parameter",
          "type": "Breakpoint",
          "enumValues": [
            {
              "name": "Xs",
              "summary": "Extra small — <576px."
            },
            {
              "name": "Sm",
              "summary": "Small — <768px."
            },
            {
              "name": "Md",
              "summary": "Medium — <992px."
            },
            {
              "name": "Lg",
              "summary": "Large — <1200px."
            },
            {
              "name": "Xl",
              "summary": "Extra large — <1400px."
            },
            {
              "name": "Xxl",
              "summary": "Extra extra large — ≥1400px."
            }
          ],
          "default": "Lg",
          "required": false,
          "summary": "Breakpoint a partir do qual o aside vira overlay (drawer mobile). Default Lg (~992px) — em telas menores que isso, mostra hamburger."
        },
        {
          "name": "ShowMobileToggle",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true (default), renderiza o hamburger no canto top-left em mobile. Defina false se você tem AppBar com DrawerToggle próprio."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSplitter",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "N-pane resizable splitter.",
      "source": "src/Omni.Blazor/Components/Layout/OmniSplitter.razor",
      "parameters": [
        {
          "name": "Height",
          "kind": "parameter",
          "type": "string",
          "default": "100%",
          "required": false,
          "summary": "Altura CSS do container. Default \"100%\"."
        },
        {
          "name": "OnResize",
          "kind": "event",
          "type": "EventCallback<SplitterResizeEventArgs>",
          "required": false,
          "summary": "Disparado a cada tick do drag (use com moderação — pode disparar muito)."
        },
        {
          "name": "OnResizeEnd",
          "kind": "event",
          "type": "EventCallback<SplitterResizeEventArgs>",
          "required": false,
          "summary": "Disparado UMA vez ao soltar a barra. Use isso para persistir layout."
        },
        {
          "name": "Orientation",
          "kind": "parameter",
          "type": "Orientation",
          "enumValues": [
            {
              "name": "Horizontal",
              "summary": "Horizontal."
            },
            {
              "name": "Vertical",
              "summary": "Vertical."
            }
          ],
          "default": "Horizontal",
          "required": false,
          "summary": "Direção do split. Horizontal = panes lado-a-lado (drag horizontal). Vertical = empilhados (drag vertical)."
        },
        {
          "name": "ResetOnDoubleClick",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true, double-click na barra reseta os tamanhos dos panes para os valores iniciais (de Size). Quando o pane adjacente é Collapsible, double-click colapsa/expande (prioridade maior). Default true — espelha o comportamento do MudSplitPanel."
        },
        {
          "name": "UseAsOverlay",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Posiciona o splitter como overlay position: absolute preenchendo o pai. O elemento pai precisa ter position: relative. Equivalente ao UseAsOverlay do MudSplitPanel. Default false."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "SplitterVariant",
          "enumValues": [
            {
              "name": "Solid",
              "summary": "Barra visível com fundo sunken + grip dots no centro (default). Affordance clara para PDV/dashboards."
            },
            {
              "name": "Line",
              "summary": "Fina linha de 1–2px que vira accent ao hover. Visual minimalista para IDE/editores."
            },
            {
              "name": "Gap",
              "summary": "Espaçamento invisível entre painéis — só o cursor muda no hover. Para landing pages/conteúdo editorial."
            }
          ],
          "default": "Solid",
          "required": false,
          "summary": "Estilo visual da barra. Solid (default) = barra visível com grip dots — ideal para PDV, dashboards e telas de gestão. Line = hairline minimalista que vira accent no hover — ideal para IDE, editor de relatórios. Gap = espaçamento invisível — ideal para landing pages."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "default": "100%",
          "required": false,
          "summary": "Largura CSS do container. Default \"100%\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSplitterPane",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Pane child of <OmniSplitter>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniSplitterPane.razor",
      "parameters": [
        {
          "name": "Collapsed",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Two-way: is the pane currently collapsed?"
        },
        {
          "name": "CollapsedChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Fires when Collapsed flips. Enables @bind-Collapsed."
        },
        {
          "name": "Collapsible",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Whether the pane can be collapsed via the bar's chevron buttons. Default false."
        },
        {
          "name": "Max",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Maximum size (\"%\" or \"px\"). User can't drag the bar above this."
        },
        {
          "name": "Min",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Minimum size (\"%\" or \"px\"). User can't drag the bar below this."
        },
        {
          "name": "Resizable",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Whether the pane can be resized via the adjacent bar. Default true."
        },
        {
          "name": "Size",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Initial size — accepts \"30%\" or \"200px\". Null/empty = \"auto\" (the pane shares the remaining space equally with other auto panes)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniStack",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Container flex declarativo — equivalente a <c>MudStack</c> (MudBlazor) e",
      "source": "src/Omni.Blazor/Components/Layout/OmniStack.razor",
      "parameters": [
        {
          "name": "AlignItems",
          "kind": "parameter",
          "type": "StackAlign",
          "enumValues": [
            {
              "name": "Start",
              "summary": "Alinha ao início do eixo cross (flex-start)."
            },
            {
              "name": "Center",
              "summary": "Centraliza no eixo cross."
            },
            {
              "name": "End",
              "summary": "Alinha ao fim do eixo cross (flex-end)."
            },
            {
              "name": "Stretch",
              "summary": "Estica os filhos para preencher o eixo cross."
            },
            {
              "name": "Baseline",
              "summary": "Alinha pela linha de base do texto (baseline)."
            }
          ],
          "default": "Stretch",
          "required": false,
          "summary": "Alinhamento dos filhos no eixo cross (mapeia para align-items). Default Stretch."
        },
        {
          "name": "Direction",
          "kind": "parameter",
          "type": "StackDirection",
          "enumValues": [
            {
              "name": "Column",
              "summary": "Empilhamento vertical (default)."
            },
            {
              "name": "Row",
              "summary": "Empilhamento horizontal."
            }
          ],
          "default": "Column",
          "required": false,
          "summary": "Direção do flex container. Default Column."
        },
        {
          "name": "DirectionLg",
          "kind": "parameter",
          "type": "StackDirection",
          "enumValues": [
            {
              "name": "Column",
              "summary": "Empilhamento vertical (default)."
            },
            {
              "name": "Row",
              "summary": "Empilhamento horizontal."
            }
          ],
          "required": false,
          "summary": "Override em ≥1440px. Default null."
        },
        {
          "name": "DirectionMd",
          "kind": "parameter",
          "type": "StackDirection",
          "enumValues": [
            {
              "name": "Column",
              "summary": "Empilhamento vertical (default)."
            },
            {
              "name": "Row",
              "summary": "Empilhamento horizontal."
            }
          ],
          "required": false,
          "summary": "Override em ≥1024px. Default null."
        },
        {
          "name": "DirectionSm",
          "kind": "parameter",
          "type": "StackDirection",
          "enumValues": [
            {
              "name": "Column",
              "summary": "Empilhamento vertical (default)."
            },
            {
              "name": "Row",
              "summary": "Empilhamento horizontal."
            }
          ],
          "required": false,
          "summary": "Override em ≥640px. Default null (segue Direction)."
        },
        {
          "name": "Gap",
          "kind": "parameter",
          "type": "int",
          "default": "8",
          "required": false,
          "summary": "Espaçamento entre filhos em pixels. Default 8."
        },
        {
          "name": "Justify",
          "kind": "parameter",
          "type": "StackJustify",
          "enumValues": [
            {
              "name": "Start",
              "summary": "Agrupa no início do eixo main (flex-start)."
            },
            {
              "name": "Center",
              "summary": "Centraliza no eixo main."
            },
            {
              "name": "End",
              "summary": "Agrupa no fim do eixo main (flex-end)."
            },
            {
              "name": "Between",
              "summary": "Espaço igual entre os itens, bordas sem espaço (space-between)."
            },
            {
              "name": "Around",
              "summary": "Espaço igual ao redor de cada item (space-around)."
            },
            {
              "name": "Evenly",
              "summary": "Espaço perfeitamente uniforme, inclusive nas bordas (space-evenly)."
            }
          ],
          "default": "Start",
          "required": false,
          "summary": "Distribuição dos filhos no eixo main (mapeia para justify-content). Default Start."
        },
        {
          "name": "Wrap",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quebra de linha (flex-wrap). Default false."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSwipeArea",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Detecta gestos de swipe (deslize) e dispara eventos com a direção e a distância.",
      "source": "src/Omni.Blazor/Components/Layout/OmniSwipeArea.razor",
      "parameters": [
        {
          "name": "LiveTransform",
          "kind": "parameter",
          "type": "SwipeAreaLiveTransform",
          "enumValues": [
            {
              "name": "None",
              "summary": "Desabilitado (default). Só eventos Blazor."
            },
            {
              "name": "X",
              "summary": "JS aplica translateX(deltaX) ao vivo."
            },
            {
              "name": "Y",
              "summary": "JS aplica translateY(deltaY) ao vivo."
            },
            {
              "name": "Both",
              "summary": "JS aplica translate(deltaX, deltaY)."
            }
          ],
          "default": "None",
          "required": false,
          "summary": "Live drag direto pelo JS (60fps, bypassa Blazor SignalR). Quando setado (≠ None), o JS atualiza transform: translate(...) no elemento via CSS variable a cada pointermove. OnSwipeEnd continua disparando normalmente — você decide se faz snap, dismiss ou volta pra origem. Em None (default), só os eventos C# disparam (que ainda permitem live drag, mas via SignalR roundtrip)."
        },
        {
          "name": "OnSwipeCancel",
          "kind": "event",
          "type": "EventCallback<PointerEventArgs>",
          "required": false,
          "summary": "Disparado quando o pointer é cancelado (multitouch, etc.)."
        },
        {
          "name": "OnSwipeEnd",
          "kind": "event",
          "type": "EventCallback<SwipeEventArgs>",
          "required": false,
          "summary": "Disparado UMA vez no pointerup, se a distância arrastada (no eixo dominante) ultrapassou Sensitivity."
        },
        {
          "name": "OnSwipeLeave",
          "kind": "event",
          "type": "EventCallback<PointerEventArgs>",
          "required": false,
          "summary": "Disparado quando o ponteiro SAI da área durante o arraste. Não reseta o estado automaticamente — o consumidor pode chamar Cancel se quiser abortar o gesto em curso."
        },
        {
          "name": "OnSwipeMove",
          "kind": "event",
          "type": "EventCallback<MultiDimensionSwipeEventArgs>",
          "required": false,
          "summary": "Disparado A CADA pointermove durante o arraste. Inclui delta + direção em AMBOS os eixos (x e y). Ignora Sensitivity."
        },
        {
          "name": "PreventDefault",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, anexa listeners JS não-passivos que chamam preventDefault(). Necessário para impedir o scroll da página durante swipes verticais em mobile. Default false."
        },
        {
          "name": "Sensitivity",
          "kind": "parameter",
          "type": "int",
          "default": "100",
          "required": false,
          "summary": "Distância mínima (pixels) para disparar OnSwipeEnd. Swipes menores que isso são silenciosamente ignorados. Default 100."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTheme",
      "category": "Layout",
      "baseType": "ComponentBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Theme bootstrap — drop into the <head> of your App.razor.",
      "source": "src/Omni.Blazor/Components/Layout/OmniTheme.razor",
      "parameters": [
        {
          "name": "Accent",
          "kind": "parameter",
          "type": "string",
          "default": "amber",
          "required": false,
          "summary": "Initial accent. 12 cores suportadas: amber (default), emerald, blue, violet, crimson, rose, orange, teal, cyan, indigo, fuchsia, lime. Unknown values fall back to amber."
        },
        {
          "name": "Dark",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Start in dark mode. Default false."
        }
      ]
    },
    {
      "name": "OmniThemePicker",
      "category": "Layout",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Dropdown pronto para trocar accent + dark/light/system.",
      "source": "src/Omni.Blazor/Components/Layout/OmniThemePicker.razor",
      "parameters": [
        {
          "name": "Accents",
          "kind": "parameter",
          "type": "IReadOnlyList<string>",
          "required": false,
          "summary": "Cores de accent oferecidas. Default: as 5 já suportadas (amber/emerald/blue/violet/crimson)."
        },
        {
          "name": "ShowDensity",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra a seção de densidade (Compacto/Padrão/Espaçoso) no dropdown. Default true. P3.3 — Layout density toggle."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "default": "Tema",
          "required": false,
          "summary": "Texto acessível do botão (aria-label / tooltip). Default \"Tema\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniToolBar",
      "category": "Layout",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Faixa horizontal abaixo do <c>OmniAppBar</c>.",
      "source": "src/Omni.Blazor/Components/Layout/OmniToolBar.razor",
      "parameters": [
        {
          "name": "Bordered",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Borda inferior. Default true."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniEyebrow",
      "category": "Marketing",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Small uppercase kicker/label rendered above a heading, optionally preceded by an accent dot.",
      "source": "src/Omni.Blazor/Components/Marketing/OmniEyebrow.razor",
      "parameters": [
        {
          "name": "ShowDot",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Renders the leading accent dot before the text. Defaults to true."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Text shown inside the eyebrow; ignored when ChildContent is provided."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniHero",
      "category": "Marketing",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Marketing hero section composing an eyebrow, title, subtitle and a CTA row above arbitrary child content.",
      "source": "src/Omni.Blazor/Components/Marketing/OmniHero.razor",
      "parameters": [
        {
          "name": "CtaContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Call-to-action markup rendered in a dedicated row below the subtitle."
        },
        {
          "name": "Eyebrow",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Eyebrow text rendered in an OmniEyebrow; ignored when EyebrowContent is set."
        },
        {
          "name": "EyebrowContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom eyebrow markup; when set it replaces the Eyebrow text."
        },
        {
          "name": "Subtitle",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Subtitle paragraph rendered below the title; omitted when empty."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Hero title rendered as an h1; the value is treated as raw HTML (MarkupString). Ignored when TitleContent is set."
        },
        {
          "name": "TitleContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom title markup; when set it replaces the Title heading."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMosaic",
      "category": "Marketing",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Grid container that lays out OmniMosaicCard children into a responsive mosaic.",
      "source": "src/Omni.Blazor/Components/Marketing/OmniMosaic.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMosaicCard",
      "category": "Marketing",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Single mosaic tile showing an optional icon plus a name and meta line, for use inside an OmniMosaic.",
      "source": "src/Omni.Blazor/Components/Marketing/OmniMosaicCard.razor",
      "parameters": [
        {
          "name": "Featured",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, renders the card with inverted (filled accent) styling for emphasis. Defaults to false."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Name of the OmniIcon rendered at the start of the card; omitted when empty."
        },
        {
          "name": "Meta",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Secondary meta line shown below the name; omitted when empty."
        },
        {
          "name": "Name",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Primary label shown on the card. Required."
        },
        {
          "name": "Wide",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, the card spans two grid columns in the mosaic. Defaults to false."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBreadcrumb",
      "category": "Navigation",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Breadcrumb trail (`<nav>`): renders Items as \"/\"-separated links, with the last (or path-less) item shown as the current page.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniBreadcrumb.razor",
      "parameters": [
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<Item>",
          "required": false,
          "summary": "Ordered trail of crumbs; each Item is a Text plus an optional Path (link). The last item renders as the current page."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniExitPrompt",
      "category": "Navigation",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Intercepts navigation attempts when `When` returns true and asks the user to confirm.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniExitPrompt.razor",
      "parameters": [
        {
          "name": "CancelText",
          "kind": "parameter",
          "type": "string",
          "default": "Continuar editando",
          "required": false,
          "summary": "Label of the cancel (stay) button in the dialog."
        },
        {
          "name": "ConfirmText",
          "kind": "parameter",
          "type": "string",
          "default": "Sair sem salvar",
          "required": false,
          "summary": "Label of the confirm (leave) button in the dialog."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "Você tem alterações não salvas. Deseja sair mesmo assim?",
          "required": false,
          "summary": "Body message of the confirmation prompt (used by both the dialog and the native window.confirm)."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "default": "Sair sem salvar?",
          "required": false,
          "summary": "Title of the confirmation dialog (DialogService path only)."
        },
        {
          "name": "UseNativePrompt",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, uses the browser's native window.confirm instead of the Omni DialogService for in-app navigation. Default false."
        },
        {
          "name": "When",
          "kind": "parameter",
          "type": "Func<bool>",
          "required": false,
          "summary": "Predicate that gates the prompt: navigation is intercepted only while it returns true. When null, the prompt is always active."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniGlobalSearch",
      "category": "Navigation",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Embedded global search surface with local/remote providers and keyboard navigation.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniGlobalSearch.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Busca global",
          "required": false,
          "summary": "Accessible label for the search landmark."
        },
        {
          "name": "ClearText",
          "kind": "parameter",
          "type": "string",
          "default": "Limpar busca",
          "required": false,
          "summary": "Accessible label for the clear-query action."
        },
        {
          "name": "Debounce",
          "kind": "parameter",
          "type": "int",
          "default": "250",
          "required": false,
          "summary": "Delay before invoking SearchProvider, in milliseconds."
        },
        {
          "name": "EmptyText",
          "kind": "parameter",
          "type": "string",
          "default": "Nenhum resultado encontrado.",
          "required": false,
          "summary": "Message shown when no result matches."
        },
        {
          "name": "ErrorText",
          "kind": "parameter",
          "type": "string",
          "default": "Não foi possível concluir a busca.",
          "required": false,
          "summary": "Message shown when the provider fails."
        },
        {
          "name": "HintText",
          "kind": "parameter",
          "type": "string",
          "default": "Digite para buscar",
          "required": false,
          "summary": "Hint shown before the minimum query length is reached."
        },
        {
          "name": "InitialContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional content displayed before the minimum query length is reached."
        },
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<GlobalSearchResult>",
          "required": false,
          "summary": "Optional in-memory result source, combined with provider results."
        },
        {
          "name": "LoadingText",
          "kind": "parameter",
          "type": "string",
          "default": "Buscando...",
          "required": false,
          "summary": "Message shown while the provider is running."
        },
        {
          "name": "MaxResults",
          "kind": "parameter",
          "type": "int",
          "default": "50",
          "required": false,
          "summary": "Maximum number of combined results retained and rendered."
        },
        {
          "name": "MinQueryLength",
          "kind": "parameter",
          "type": "int",
          "default": "2",
          "required": false,
          "summary": "Minimum trimmed query length required to search."
        },
        {
          "name": "NavigateOnSelect",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Navigates to a selected result's URL after raising ResultSelected."
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "default": "Buscar em todo o sistema...",
          "required": false,
          "summary": "Search input placeholder."
        },
        {
          "name": "Query",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Current query for two-way binding."
        },
        {
          "name": "QueryChanged",
          "kind": "event",
          "type": "EventCallback<string>",
          "required": false,
          "summary": "Raised when Query changes."
        },
        {
          "name": "ResultSelected",
          "kind": "event",
          "type": "EventCallback<GlobalSearchResult>",
          "required": false,
          "summary": "Raised when the user chooses a result."
        },
        {
          "name": "ResultTemplate",
          "kind": "slot",
          "type": "RenderFragment<GlobalSearchResult>",
          "contextType": "GlobalSearchResult",
          "required": false,
          "summary": "Optional custom result renderer."
        },
        {
          "name": "SearchFailed",
          "kind": "event",
          "type": "EventCallback<Exception>",
          "required": false,
          "summary": "Raised when a provider throws an uncancelled exception."
        },
        {
          "name": "SearchProvider",
          "kind": "parameter",
          "type": "GlobalSearchProvider",
          "required": false,
          "summary": "Optional asynchronous, cancellable server-side result source."
        },
        {
          "name": "ShowAllWhenEmpty",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Shows all local items when the query is empty."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniHotkey",
      "category": "Navigation",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Drop-in keyboard shortcut.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniHotkey.razor",
      "parameters": [
        {
          "name": "Combo",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Full combo spec string (e.g. \"Ctrl+K\", or \"Ctrl+K|Meta+K\" for alternatives). Takes precedence over Key/Modifiers when set."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, the registration stays but the shortcut is inert; toggling this enables/disables in place without re-registering. Default false."
        },
        {
          "name": "Key",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "The base key (e.g. \"K\", \"Escape\") when not using Combo; combined with Modifiers to build the binding."
        },
        {
          "name": "Modifiers",
          "kind": "parameter",
          "type": "Modifier",
          "enumValues": [
            {
              "name": "None",
              "summary": "Nenhum modificador."
            },
            {
              "name": "Ctrl",
              "summary": "Tecla Control."
            },
            {
              "name": "Alt",
              "summary": "Tecla Alt (Option no macOS)."
            },
            {
              "name": "Shift",
              "summary": "Tecla Shift."
            },
            {
              "name": "Meta",
              "summary": "Tecla Meta (Cmd no macOS, Win no Windows)."
            }
          ],
          "default": "None",
          "required": false,
          "summary": "Modifier flags (Ctrl/Alt/Shift/Meta) applied to Key. Default Modifier.None."
        },
        {
          "name": "OnPressed",
          "kind": "event",
          "type": "EventCallback<KeyboardEventArgs>",
          "required": false,
          "summary": "Invoked when the shortcut fires, with the originating KeyboardEventArgs."
        },
        {
          "name": "PreventDefault",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "When true, calls preventDefault on the key event so the browser default is suppressed. Default true."
        },
        {
          "name": "StopPropagation",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, stops the key event from propagating further. Default false."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMenuBar",
      "category": "Navigation",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Horizontal navigation bar — tab-style root items with rich dropdowns.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniMenuBar.razor",
      "parameters": [
        {
          "name": "AriaLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Menu",
          "required": false,
          "summary": "Accessible label for the navigation landmark."
        },
        {
          "name": "Aux",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional content pinned to the right edge of the bar (status, etc.)."
        },
        {
          "name": "Trigger",
          "kind": "parameter",
          "type": "MenuTrigger",
          "enumValues": [
            {
              "name": "Hover",
              "summary": "Abre ao passar o mouse (hover)."
            },
            {
              "name": "Click",
              "summary": "Abre ao clicar."
            }
          ],
          "default": "Click",
          "required": false,
          "summary": "How a dropdown first opens — Click (default) or Hover."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMenuBarItem",
      "category": "Navigation",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "One node of a OmniMenuBar.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniMenuBarItem.razor",
      "parameters": [
        {
          "name": "ChildrenLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional section label rendered at the top of this item's flyout (when it has children)."
        },
        {
          "name": "Count",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Numeric badge shown on a root tab."
        },
        {
          "name": "Description",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Secondary description line (dropdown row)."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disables the item."
        },
        {
          "name": "DropdownContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom dropdown panel (mega-menu) — replaces nested items."
        },
        {
          "name": "FooterKbd",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Footer keyboard hint."
        },
        {
          "name": "FooterPath",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Footer link URL. If unset, the footer raises OnFooter."
        },
        {
          "name": "FooterText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Footer link text for a list dropdown."
        },
        {
          "name": "GroupLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Uppercase section label rendered above this dropdown row."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon name."
        },
        {
          "name": "Match",
          "kind": "parameter",
          "type": "NavLinkMatch",
          "enumValues": [
            {
              "name": "Prefix"
            },
            {
              "name": "All"
            }
          ],
          "default": "Prefix",
          "required": false,
          "summary": "Active-route match mode for Path."
        },
        {
          "name": "Meta",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Metadata pill text (dropdown row)."
        },
        {
          "name": "MetaKind",
          "kind": "parameter",
          "type": "MenuMetaKind",
          "enumValues": [
            {
              "name": "Neutral",
              "summary": "Neutro/cinza."
            },
            {
              "name": "Accent",
              "summary": "Cor accent do tema."
            },
            {
              "name": "Good",
              "summary": "Verde (good)."
            },
            {
              "name": "Warn",
              "summary": "Âmbar (warn)."
            },
            {
              "name": "Danger",
              "summary": "Vermelho (danger)."
            }
          ],
          "default": "Neutral",
          "required": false,
          "summary": "Colour of the metadata pill."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Click handler for items without a Path or dropdown."
        },
        {
          "name": "OnFooter",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Footer click handler when FooterPath is unset."
        },
        {
          "name": "Path",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Navigation URL. Ignored when the item has a dropdown."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "Label text."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPagination",
      "category": "Navigation",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Standalone pager — use anywhere outside of DataGrid (cards, timelines, custom lists).",
      "source": "src/Omni.Blazor/Components/Navigation/OmniPagination.razor",
      "parameters": [
        {
          "name": "Compact",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "If true, hides numeric buttons and shows just \"N / Total\" between the arrows."
        },
        {
          "name": "CurrentPage",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Current zero-based page index (clamped to the valid range). Two-way bindable via @bind-CurrentPage."
        },
        {
          "name": "CurrentPageChanged",
          "kind": "event",
          "type": "EventCallback<int>",
          "required": false,
          "summary": "Raised when the page changes, carrying the new zero-based page index."
        },
        {
          "name": "MaxVisible",
          "kind": "parameter",
          "type": "int",
          "default": "7",
          "required": false,
          "summary": "Maximum number of numeric page buttons to show (excluding ellipsis). Default 7."
        },
        {
          "name": "PageSize",
          "kind": "parameter",
          "type": "int",
          "default": "10",
          "required": false,
          "summary": "Number of items per page. Default 10."
        },
        {
          "name": "ShowSummary",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "If true, shows the \"1–10 de 200\" summary to the left."
        },
        {
          "name": "TotalCount",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Total number of items across all pages; used with PageSize to compute the page count and summary."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPanelMenu",
      "category": "Navigation",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Vertical navigation list (`<nav>`).",
      "source": "src/Omni.Blazor/Components/Navigation/OmniPanelMenu.razor",
      "parameters": [
        {
          "name": "SectionLabel",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional section label rendered above the menu (e.g. \"WORKSPACE\")."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPanelMenuItem",
      "category": "Navigation",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "One node of a OmniPanelMenu.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniPanelMenuItem.razor",
      "parameters": [
        {
          "name": "Count",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Numeric count pill (e.g. unread, items in queue)."
        },
        {
          "name": "CountKind",
          "kind": "parameter",
          "type": "MenuMetaKind",
          "enumValues": [
            {
              "name": "Neutral",
              "summary": "Neutro/cinza."
            },
            {
              "name": "Accent",
              "summary": "Cor accent do tema."
            },
            {
              "name": "Good",
              "summary": "Verde (good)."
            },
            {
              "name": "Warn",
              "summary": "Âmbar (warn)."
            },
            {
              "name": "Danger",
              "summary": "Vermelho (danger)."
            }
          ],
          "default": "Neutral",
          "required": false,
          "summary": "Color of the count pill."
        },
        {
          "name": "CountText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "String count pill (e.g. \"!\", \"74%\", \"NEW\") — alternative to Count."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disables the item."
        },
        {
          "name": "Expanded",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Inline-accordion state for items with children (expanded sidebar mode)."
        },
        {
          "name": "ExpandedChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Raised when the inline-accordion expanded state toggles, carrying the new value."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon name."
        },
        {
          "name": "Match",
          "kind": "parameter",
          "type": "NavLinkMatch",
          "enumValues": [
            {
              "name": "Prefix"
            },
            {
              "name": "All"
            }
          ],
          "default": "Prefix",
          "required": false,
          "summary": "Match mode for the active-route highlight."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Click handler for leaf items without a Path."
        },
        {
          "name": "Path",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Navigation URL (leaf items only)."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": false,
          "summary": "Label."
        },
        {
          "name": "TextContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Optional rich label (e.g. with highlighted matches). Falls back to Text."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniPanelMenuSection",
      "category": "Navigation",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Groups panel-menu items under an optional section heading.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniPanelMenuSection.razor",
      "parameters": [
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional uppercase section heading rendered above the grouped items; when empty, no heading is shown."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniSegmentedControl",
      "category": "Navigation",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Single-select segmented button group: renders Items as toggle buttons, highlighting the one matching Value.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniSegmentedControl.razor",
      "parameters": [
        {
          "name": "Items",
          "kind": "parameter",
          "type": "IEnumerable<Item<TValue>>",
          "required": false,
          "summary": "The selectable segments; each Item pairs a Value with its display Label."
        },
        {
          "name": "Value",
          "kind": "parameter",
          "type": "TValue",
          "required": false,
          "summary": "Currently selected value; the matching segment renders as active. Two-way bindable via @bind-Value."
        },
        {
          "name": "ValueChanged",
          "kind": "event",
          "type": "EventCallback<TValue>",
          "required": false,
          "summary": "Raised when a segment is selected, carrying the newly selected value."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniStep",
      "category": "Navigation",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single step inside an OmniStepper; renders no markup itself and registers with the parent stepper, which draws its header and body.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniStep.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "The step's body content, rendered by the parent stepper only while this step is active."
        },
        {
          "name": "Description",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional secondary line shown under the title in the header."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, the step's bubble/dot cannot be clicked. Default false."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon name shown in the step bubble (replaces the number when the step isn't done)."
        },
        {
          "name": "Optional",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "When true, appends an \"(opcional)\" marker after the title. Default false."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Step title shown in the header label. Required."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniStepper",
      "category": "Navigation",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Multi-step container.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniStepper.razor",
      "parameters": [
        {
          "name": "ActiveStep",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Zero-based index of the active step. Two-way bindable via @bind-ActiveStep."
        },
        {
          "name": "ActiveStepChanged",
          "kind": "event",
          "type": "EventCallback<int>",
          "required": false,
          "summary": "Raised when the active step changes, carrying the new zero-based index."
        },
        {
          "name": "CompleteText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the final \"complete\" button shown on the last step. Default \"Concluir\"."
        },
        {
          "name": "Linear",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "When true, steps must be completed in order: you cannot jump forward past the next step or click a pending step. Default true."
        },
        {
          "name": "NextText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the \"next step\" button. Default \"Próximo\"."
        },
        {
          "name": "OnComplete",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Raised when the complete button on the last step is clicked."
        },
        {
          "name": "PrevText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label of the \"previous step\" button. Default \"Voltar\"."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTabItem",
      "category": "Navigation",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single tab inside an OmniTabs; renders no markup itself and registers with the parent, which draws the tab button and shows its body when active.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniTabItem.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "The tab's panel content, rendered by the parent only while this tab is active."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional icon name shown before the title on the tab button."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Tab label shown on the tab button. Required."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTabs",
      "category": "Navigation",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Tab container: renders a tab bar from its OmniTabItem children and shows the active tab's body; the first registered tab is active by default.",
      "source": "src/Omni.Blazor/Components/Navigation/OmniTabs.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "AlertDialog",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Conteúdo interno do dialog de alerta (mensagem + ícone opcional + botão OK) aberto via DialogService.AlertAsync.",
      "source": "src/Omni.Blazor/Components/Overlay/AlertDialog.razor",
      "parameters": [
        {
          "name": "Message",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Texto da mensagem exibida no corpo do alerta."
        },
        {
          "name": "Options",
          "kind": "parameter",
          "type": "AlertOptions",
          "required": false,
          "summary": "Opções do alerta (texto do botão OK, ícone). Default new AlertOptions()."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "ConfirmDialog",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Conteúdo interno do dialog de confirmação (mensagem + botões Cancelar/OK) aberto via DialogService.ConfirmAsync; retorna true/false.",
      "source": "src/Omni.Blazor/Components/Overlay/ConfirmDialog.razor",
      "parameters": [
        {
          "name": "Message",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "Texto da mensagem exibida no corpo da confirmação."
        },
        {
          "name": "Options",
          "kind": "parameter",
          "type": "ConfirmOptions",
          "required": false,
          "summary": "Opções da confirmação (textos dos botões OK/Cancelar, ícone). Default new ConfirmOptions()."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniBottomSheet",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Material 3 Bottom Sheet — surface slides up from the bottom edge with optional drag handle + snap points.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniBottomSheet.razor",
      "parameters": [
        {
          "name": "Adaptive",
          "kind": "parameter",
          "type": "BottomSheetAdaptive",
          "enumValues": [
            {
              "name": "Always",
              "summary": "Sempre bottom sheet (default)."
            },
            {
              "name": "DrawerOnDesktop",
              "summary": "Vira drawer lateral (direita) em desktop."
            },
            {
              "name": "DialogOnDesktop",
              "summary": "Vira dialog centralizado em desktop."
            }
          ],
          "default": "Always",
          "required": false,
          "summary": "Comportamento em desktop. Default Always (sempre bottom). DrawerOnDesktop/DialogOnDesktop = adapta em telas largas (M3 desaconselha bottom sheet em desktop)."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Conteúdo principal scrollável."
        },
        {
          "name": "CloseOnEsc",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Esc fecha. Default true."
        },
        {
          "name": "CloseOnOverlayClick",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Click no backdrop fecha (só Modal). Default true."
        },
        {
          "name": "DesktopBreakpoint",
          "kind": "parameter",
          "type": "Breakpoint",
          "enumValues": [
            {
              "name": "Xs",
              "summary": "Extra small — <576px."
            },
            {
              "name": "Sm",
              "summary": "Small — <768px."
            },
            {
              "name": "Md",
              "summary": "Medium — <992px."
            },
            {
              "name": "Lg",
              "summary": "Large — <1200px."
            },
            {
              "name": "Xl",
              "summary": "Extra large — <1400px."
            },
            {
              "name": "Xxl",
              "summary": "Extra extra large — ≥1400px."
            }
          ],
          "default": "Md",
          "required": false,
          "summary": "Breakpoint que define \"desktop\" pra Adaptive. Default Md (≥ 768px)."
        },
        {
          "name": "DismissThresholdPx",
          "kind": "parameter",
          "type": "double",
          "default": "100",
          "required": false,
          "summary": "Pixels que o user precisa arrastar pra baixo (além do menor snap) pra fechar quando DragToDismiss=true. Default 100."
        },
        {
          "name": "DragToDismiss",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Drag pra baixo além do menor snap fecha. Default true."
        },
        {
          "name": "Footer",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Footer sticky (não scrolla com conteúdo)."
        },
        {
          "name": "Header",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Custom header (sobrescreve Title)."
        },
        {
          "name": "InitialSnapIndex",
          "kind": "parameter",
          "type": "int",
          "default": "0",
          "required": false,
          "summary": "Índice inicial em SnapPoints. Default 0 (menor)."
        },
        {
          "name": "Open",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Estado aberto/fechado. Two-way bind via @@bind-Open."
        },
        {
          "name": "OpenChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false
        },
        {
          "name": "ShowCloseButton",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra botão X no header pra fechar. Default true se Title ou Header."
        },
        {
          "name": "ShowDragHandle",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra drag handle (pill no topo). Default true."
        },
        {
          "name": "SnapPoints",
          "kind": "parameter",
          "type": "double[]",
          "required": false,
          "summary": "Snap points como fração viewport (0–1). Ex: [0.3, 0.6, 0.92] = peek 30%, half 60%, full 92%. Sem snap points, sheet abre em 60% por default."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Título mostrado no header. Se Header for setado, ignorado."
        },
        {
          "name": "Variant",
          "kind": "parameter",
          "type": "BottomSheetVariant",
          "enumValues": [
            {
              "name": "Modal",
              "summary": "Com backdrop, bloqueia interação com o fundo. Padrão pra forms/pickers/confirmações."
            },
            {
              "name": "Standard",
              "summary": "Sem backdrop, página continua interativa. Usado em apps tipo Maps (detalhes coexistem com mapa)."
            }
          ],
          "default": "Modal",
          "required": false,
          "summary": "Modal (com backdrop) ou Standard (sem). Default Modal."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniCommandPalette",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "⌘K command palette — a global, searchable, keyboard-driven action menu.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniCommandPalette.razor",
      "parameters": [
        {
          "name": "CommandSource",
          "kind": "parameter",
          "type": "Func<string, Task<IEnumerable<OmniCommand>>>",
          "required": false,
          "summary": "Optional async source for server-side results. Called (debounced) with the query; its results are merged with the local Commands. Only queried at the root level (not inside a sub-page)."
        },
        {
          "name": "Commands",
          "kind": "parameter",
          "type": "IEnumerable<OmniCommand>",
          "required": false,
          "summary": "The commands to search/run. May carry Children for nested pages."
        },
        {
          "name": "EnableHistory",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Track + surface recently used commands (persisted to localStorage). Default true."
        },
        {
          "name": "EnableHotkey",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Bind the global open hotkey. Default true."
        },
        {
          "name": "HistoryKey",
          "kind": "parameter",
          "type": "string",
          "default": "default",
          "required": false,
          "summary": "Namespace key for the recent-command history (lets multiple palettes keep separate history)."
        },
        {
          "name": "HotKey",
          "kind": "parameter",
          "type": "string",
          "default": "Ctrl+K|Meta+K",
          "required": false,
          "summary": "The open hotkey combo. Default Ctrl+K (Win/Linux) and Cmd+K (mac)."
        },
        {
          "name": "OnCommand",
          "kind": "event",
          "type": "EventCallback<OmniCommand>",
          "required": false,
          "summary": "Fires with the chosen command (after its own Action, if any, runs)."
        },
        {
          "name": "Open",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Open state (two-way). Also toggled by the global hotkey."
        },
        {
          "name": "OpenChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false
        },
        {
          "name": "Placeholder",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Search box placeholder."
        },
        {
          "name": "RecentCount",
          "kind": "parameter",
          "type": "int",
          "default": "5",
          "required": false,
          "summary": "How many recent commands to surface in the \"Recentes\" section."
        },
        {
          "name": "RecentLabel",
          "kind": "parameter",
          "type": "string",
          "default": "Recentes",
          "required": false,
          "summary": "Heading for the recent-commands section."
        },
        {
          "name": "SearchDebounce",
          "kind": "parameter",
          "type": "int",
          "default": "200",
          "required": false,
          "summary": "Debounce (ms) before calling CommandSource. Default 200."
        },
        {
          "name": "ShowFooter",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Show the footer with key hints. Default true."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniConfirmPrompt",
      "category": "Overlay",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Destructive-action confirmation that requires the user to TYPE a matching phrase before the confirm button enables (GitHub/Stripe/AWS pattern).",
      "source": "src/Omni.Blazor/Components/Overlay/OmniConfirmPrompt.razor",
      "parameters": [
        {
          "name": "ButtonText",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Confirm button text. Default \"Confirmar\"."
        },
        {
          "name": "CaseSensitive",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Match case-sensitively. Default true."
        },
        {
          "name": "ConfirmationText",
          "kind": "parameter",
          "type": "string",
          "default": "",
          "required": true,
          "summary": "The phrase the user must type exactly to enable the confirm button."
        },
        {
          "name": "Label",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Instruction above the input. Defaults to \"Digite \\\"{ConfirmationText}\\\" para confirmar\"."
        },
        {
          "name": "OnConfirm",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Fires when the user confirms (button only enabled once the phrase matches)."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Heading (optional)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniContextMenuHost",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Portal host for pointer or trigger-anchored menus with keyboard navigation and deterministic listener cleanup.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniContextMenuHost.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniDialogHost",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Portal host that renders modal and side dialogs opened via DialogService (stacked, with backdrop, focus trap, scroll lock and Esc); place once in the root layout.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniDialogHost.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMenu",
      "category": "Overlay",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Reusable menu list — a panel of <OmniMenuItem>s (and optional separators).",
      "source": "src/Omni.Blazor/Components/Overlay/OmniMenu.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMenuItem",
      "category": "Overlay",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "A single clickable row inside an <OmniMenu>: optional icon, label, and keyboard-shortcut hint.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniMenuItem.razor",
      "parameters": [
        {
          "name": "Description",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional secondary description rendered below the label."
        },
        {
          "name": "Disabled",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Disables the item (no click, dimmed). Default false."
        },
        {
          "name": "Icon",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional leading icon name."
        },
        {
          "name": "IsDanger",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Styles the item as a destructive action (danger color). Default false."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Raised when the item is clicked (suppressed while Disabled)."
        },
        {
          "name": "Shortcut",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Optional keyboard-shortcut hint shown trailing (e.g. \"⌘D\"), rendered as a kbd."
        },
        {
          "name": "Text",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Label text (ignored when ChildContent is supplied)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniMenuSeparator",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Horizontal divider between groups of <OmniMenuItem>s.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniMenuSeparator.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniNotificationHost",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Portal host that renders the stack of toast notifications pushed via NotificationService (positioned, auto-dismissing); place once in the root layout.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniNotificationHost.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniOverlay",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Componente standalone de overlay/backdrop reutilizável.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniOverlay.razor",
      "parameters": [
        {
          "name": "Absolute",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Position absolute em vez de fixed. Use quando o overlay deve preencher um container específico (não a viewport). O container precisa ter position: relative. Quando true, LockScroll é ignorado (não faz sentido bloquear scroll do body num overlay local)."
        },
        {
          "name": "AutoClose",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Quando true, clicar no backdrop fecha (seta Visible=false). Default false. Conteúdo (ChildContent) não dispara — o overlay usa @@onclick:stopPropagation no wrapper interno."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Conteúdo opcional renderizado centrado dentro do overlay. Quando null, o overlay é puro scrim (sem nada visível além do backdrop)."
        },
        {
          "name": "CloseOnEsc",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true (default), Esc fecha o overlay. false ignora Esc."
        },
        {
          "name": "LockScroll",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Bloqueia scroll do <body> enquanto visível. Default true. Refcount-safe — múltiplos overlays não desbloqueiam até todos fecharem."
        },
        {
          "name": "Modal",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Quando true (default), o overlay BLOQUEIA cliques no que está atrás. Quando false, pointer-events: none deixa o user clicar através (modo \"decoração\" — overlay decorativo sem capturar input)."
        },
        {
          "name": "OnClick",
          "kind": "event",
          "type": "EventCallback<MouseEventArgs>",
          "required": false,
          "summary": "Callback adicional quando o user clica no backdrop. Recebe o MouseEventArgs. Dispara independente de AutoClose (AutoClose só decide se fecha)."
        },
        {
          "name": "OnClosed",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Disparado quando o overlay fecha (via AutoClose, Esc ou bind setando false)."
        },
        {
          "name": "Visible",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Controla a visibilidade. Two-way via @@bind-Visible."
        },
        {
          "name": "VisibleChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false
        },
        {
          "name": "ZIndex",
          "kind": "parameter",
          "type": "int",
          "required": false,
          "summary": "Z-index inline. Quando null (default), herda o stack natural (500)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniOverlayHosts",
      "category": "Overlay",
      "baseType": "ComponentBase",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Conveniência: monta de uma vez os 4 hosts de overlay da lib (Dialog, Notification, Tooltip, ContextMenu).",
      "source": "src/Omni.Blazor/Components/Overlay/OmniOverlayHosts.razor",
      "parameters": []
    },
    {
      "name": "OmniPopover",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Interactive popover — like Tooltip but with arbitrary content (links, forms, menus).",
      "source": "src/Omni.Blazor/Components/Overlay/OmniPopover.razor",
      "parameters": [
        {
          "name": "AlignEnd",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Alinha o popover ao FIM (direita) do trigger ao invés do começo (esquerda). Útil para split buttons cujo trigger fica à direita: AlignEnd=true faz o popover crescer para a esquerda, evitando overflow no canto direito da tela."
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Conteúdo do popover (links, formulário, menu)."
        },
        {
          "name": "CloseOnContentClick",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Se um clique no conteúdo deve fechar o popover. Default false (atualmente não consumido pela lógica — o conteúdo usa stopPropagation)."
        },
        {
          "name": "Offset",
          "kind": "parameter",
          "type": "int",
          "default": "8",
          "required": false,
          "summary": "Distância (px) entre o trigger e o popover. Default 8 (tooltip-like). Para dropdown menus, use 2-4 para parecer \"grudado\" no botão."
        },
        {
          "name": "Open",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Estado aberto/fechado. Two-way via @@bind-Open."
        },
        {
          "name": "OpenChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false,
          "summary": "Disparado quando o estado aberto/fechado muda."
        },
        {
          "name": "Position",
          "kind": "parameter",
          "type": "PopoverPosition",
          "enumValues": [
            {
              "name": "Top",
              "summary": "Acima do alvo."
            },
            {
              "name": "Bottom",
              "summary": "Abaixo do alvo."
            },
            {
              "name": "Left",
              "summary": "À esquerda do alvo."
            },
            {
              "name": "Right",
              "summary": "À direita do alvo."
            }
          ],
          "default": "Bottom",
          "required": false,
          "summary": "Lado preferido do popover em relação ao trigger. Default Bottom (auto-flip se faltar espaço)."
        },
        {
          "name": "ShowArrow",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra setinha (estilo tooltip/balão). Default true. Para menus dropdown, defina false — visual mais limpo, sem o \"balão\"."
        },
        {
          "name": "Trigger",
          "kind": "slot",
          "type": "RenderFragment",
          "required": true,
          "summary": "Elemento gatilho que abre/fecha o popover ao clicar (slot obrigatório)."
        },
        {
          "name": "Width",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Largura CSS fixa do popover (ex.: \"240px\"). Quando null, ajusta ao conteúdo."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTooltipHost",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Portal host that renders the single active tooltip positioned by TooltipService; place once in the root layout.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniTooltipHost.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTour",
      "category": "Overlay",
      "baseType": "OmniComponentWithChildren",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Container declarativo de um tour.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniTour.razor",
      "parameters": [
        {
          "name": "AutoStart",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Inicia automaticamente na primeira renderização."
        },
        {
          "name": "OnCompleted",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Disparado quando o tour é concluído (chegou ao fim)."
        },
        {
          "name": "OnSkipped",
          "kind": "event",
          "type": "EventCallback",
          "required": false,
          "summary": "Disparado quando o tour é pulado/dispensado."
        },
        {
          "name": "Persist",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Persiste \"não mostrar de novo\" por TourId."
        },
        {
          "name": "ShowBackdrop",
          "kind": "parameter",
          "type": "bool",
          "default": "true",
          "required": false,
          "summary": "Mostra o fundo escurecido com recorte. Default true."
        },
        {
          "name": "StartTrigger",
          "kind": "parameter",
          "type": "bool",
          "default": "false",
          "required": false,
          "summary": "Dispara o tour ao virar true (two-way — é resetado para false ao fim)."
        },
        {
          "name": "StartTriggerChanged",
          "kind": "event",
          "type": "EventCallback<bool>",
          "required": false
        },
        {
          "name": "TourId",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Id do tour (chave de persistência quando Persist = true)."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "inheritedFrom": "OmniComponentWithChildren"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTourHost",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": false,
      "summary": "Host único do OmniTour (portal).",
      "source": "src/Omni.Blazor/Components/Overlay/OmniTourHost.razor",
      "parameters": [
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    },
    {
      "name": "OmniTourStep",
      "category": "Overlay",
      "baseType": "OmniComponent",
      "isInput": false,
      "hasChildContent": true,
      "summary": "Passo declarativo de um <OmniTour>.",
      "source": "src/Omni.Blazor/Components/Overlay/OmniTourStep.razor",
      "parameters": [
        {
          "name": "ChildContent",
          "kind": "slot",
          "type": "RenderFragment",
          "required": false,
          "summary": "Corpo do coachmark."
        },
        {
          "name": "Position",
          "kind": "parameter",
          "type": "TourPosition",
          "enumValues": [
            {
              "name": "Auto",
              "summary": "Escolhe automaticamente o lado de maior folga."
            },
            {
              "name": "Top",
              "summary": "Acima do alvo."
            },
            {
              "name": "Bottom",
              "summary": "Abaixo do alvo."
            },
            {
              "name": "Left",
              "summary": "À esquerda do alvo."
            },
            {
              "name": "Right",
              "summary": "À direita do alvo."
            }
          ],
          "default": "Auto",
          "required": false,
          "summary": "Lado preferido do coachmark. Default Auto."
        },
        {
          "name": "Target",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Seletor CSS do alvo (ex.: \"#salvar\"). null = passo sem spotlight."
        },
        {
          "name": "Title",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Título do passo."
        },
        {
          "name": "Attributes",
          "kind": "parameter",
          "type": "IReadOnlyDictionary<string, object>",
          "required": false,
          "summary": "Extra HTML attributes splatted on the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Class",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Extra CSS classes appended to the component root.",
          "inheritedFrom": "OmniComponent"
        },
        {
          "name": "Style",
          "kind": "parameter",
          "type": "string",
          "required": false,
          "summary": "Inline style appended to the component root.",
          "inheritedFrom": "OmniComponent"
        }
      ]
    }
  ],
  "configurationApis": [
    {
      "name": "DataFilterField<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable metadata and typed accessors for one schema field.",
      "source": "src/Omni.Blazor/Models/DataFilterSchema.cs",
      "members": [
        {
          "name": "AllowsNull",
          "kind": "property",
          "signature": "bool AllowsNull",
          "summary": "Whether the selected CLR member accepts null values."
        },
        {
          "name": "Id",
          "kind": "property",
          "signature": "string Id",
          "summary": "Stable id stored in serialized queries."
        },
        {
          "name": "MemberPath",
          "kind": "property",
          "signature": "string MemberPath",
          "summary": "Compile-time validated member path selected by the schema."
        },
        {
          "name": "Operators",
          "kind": "property",
          "signature": "IReadOnlyList<FilterOperator> Operators",
          "summary": "Allowed operators."
        },
        {
          "name": "OptionText",
          "kind": "property",
          "signature": "Func<object, string> OptionText",
          "summary": "Formats one select option."
        },
        {
          "name": "Options",
          "kind": "property",
          "signature": "IReadOnlyList<object> Options",
          "summary": "Immutable select options."
        },
        {
          "name": "Title",
          "kind": "property",
          "signature": "string Title",
          "summary": "Display label shown by the visual builder."
        },
        {
          "name": "Type",
          "kind": "property",
          "signature": "ColumnFilterType Type",
          "summary": "Editor/operator family."
        },
        {
          "name": "ValueType",
          "kind": "property",
          "signature": "Type ValueType",
          "summary": "CLR value type selected by the field expression."
        }
      ]
    },
    {
      "name": "DataFilterFieldBuilder<TItem, TValue>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed options for one filterable member.",
      "source": "src/Omni.Blazor/Models/DataFilterSchema.cs",
      "members": [
        {
          "name": "Id",
          "kind": "method",
          "signature": "DataFilterFieldBuilder<TItem, TValue> Id(string value)",
          "summary": "Overrides the stable id stored in serialized queries."
        },
        {
          "name": "Operators",
          "kind": "method",
          "signature": "DataFilterFieldBuilder<TItem, TValue> Operators(FilterOperator[] values)",
          "summary": "Restricts the operators available to this field."
        },
        {
          "name": "Select",
          "kind": "method",
          "signature": "DataFilterFieldBuilder<TItem, TValue> Select(IEnumerable<TValue> values, Func<TValue, string> textSelector)",
          "summary": "Uses a typed select editor with deterministic option labels."
        },
        {
          "name": "Title",
          "kind": "method",
          "signature": "DataFilterFieldBuilder<TItem, TValue> Title(string value)",
          "summary": "Overrides the field label shown in the property selector."
        },
        {
          "name": "Type",
          "kind": "method",
          "signature": "DataFilterFieldBuilder<TItem, TValue> Type(ColumnFilterType value)",
          "summary": "Overrides the inferred editor/operator family."
        },
        {
          "name": "ValueCodec",
          "kind": "method",
          "signature": "DataFilterFieldBuilder<TItem, TValue> ValueCodec(Func<TValue, string> serialize, Func<string, TValue> deserialize)",
          "summary": "Configures a stable invariant codec for custom value types. Primitive, enum, date, time and Guid values already have built-in codecs."
        }
      ]
    },
    {
      "name": "DataFilterGroupBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Fluent builder for one AND/OR query group.",
      "source": "src/Omni.Blazor/Models/DataFilterQuery.cs",
      "members": [
        {
          "name": "Between",
          "kind": "method",
          "signature": "DataFilterGroupBuilder<TItem> Between<TValue>(Expression<Func<TItem, TValue>> field, TValue lower, TValue upper, bool negate)",
          "summary": "Adds an inclusive Between or exclusive NotBetween condition."
        },
        {
          "name": "Condition",
          "kind": "method",
          "signature": "DataFilterGroupBuilder<TItem> Condition<TValue>(Expression<Func<TItem, TValue>> field, FilterOperator operator)",
          "summary": "Adds a strongly typed condition with one value."
        },
        {
          "name": "Condition",
          "kind": "method",
          "signature": "DataFilterGroupBuilder<TItem> Condition<TValue>(Expression<Func<TItem, TValue>> field, FilterOperator operator, TValue value)",
          "summary": "Adds a strongly typed condition with one value."
        },
        {
          "name": "Group",
          "kind": "method",
          "signature": "DataFilterGroupBuilder<TItem> Group(FilterLogic logic, Action<DataFilterGroupBuilder<TItem>> configure)",
          "summary": "Adds a nested group."
        }
      ]
    },
    {
      "name": "DataFilterQuery<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable, versioned and safely serializable query for one item type. Field expressions and codecs remain in the corresponding DataFilterSchema.",
      "source": "src/Omni.Blazor/Models/DataFilterQuery.cs",
      "members": [
        {
          "name": "Apply",
          "kind": "method",
          "signature": "IEnumerable<TItem> Apply(IEnumerable<TItem> source, DataFilterSchema<TItem> schema)",
          "summary": "Filters an in-memory sequence without materializing it."
        },
        {
          "name": "Apply",
          "kind": "method",
          "signature": "IQueryable<TItem> Apply(IQueryable<TItem> source, DataFilterSchema<TItem> schema)",
          "summary": "Filters an in-memory sequence without materializing it."
        },
        {
          "name": "Compile",
          "kind": "method",
          "signature": "Func<TItem, bool> Compile(DataFilterSchema<TItem> schema)",
          "summary": "Builds an in-memory predicate with the schema's compiled typed accessors."
        },
        {
          "name": "Deserialize",
          "kind": "method",
          "signature": "static DataFilterQuery<TItem> Deserialize(string json, DataFilterSchema<TItem> schema)",
          "summary": "Deserializes and validates a query against an allow-listed schema."
        },
        {
          "name": "Root",
          "kind": "property",
          "signature": "DataFilterQueryGroup Root",
          "summary": "Root query group."
        },
        {
          "name": "Serialize",
          "kind": "method",
          "signature": "string Serialize()",
          "summary": "Serializes this immutable query using the stable versioned contract."
        },
        {
          "name": "ToExpression",
          "kind": "method",
          "signature": "Expression<Func<TItem, bool>> ToExpression(DataFilterSchema<TItem> schema)",
          "summary": "Builds an IQueryable-friendly expression. String comparison semantics follow the target LINQ provider/collation instead of forcing a client-side comparer."
        },
        {
          "name": "TryDeserialize",
          "kind": "method",
          "signature": "static bool TryDeserialize(string json, DataFilterSchema<TItem> schema, DataFilterQuery`1& query, String& error)",
          "summary": "Attempts to deserialize and validate a query without leaking expected parse failures."
        },
        {
          "name": "Validate",
          "kind": "method",
          "signature": "Void Validate(DataFilterSchema<TItem> schema)",
          "summary": "Validates field ids, operators, values, size and depth."
        },
        {
          "name": "Version",
          "kind": "property",
          "signature": "int Version",
          "summary": "Serialized contract version."
        }
      ]
    },
    {
      "name": "DataFilterQueryGroup",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable group in a typed DataFilter query tree.",
      "source": "src/Omni.Blazor/Models/DataFilterQuery.cs",
      "members": [
        {
          "name": "DataFilterQueryGroup",
          "kind": "constructor",
          "signature": "DataFilterQueryGroup(FilterLogic logic, IReadOnlyList<DataFilterQueryRule> rules)",
          "summary": "Creates an immutable group snapshot."
        },
        {
          "name": "Logic",
          "kind": "property",
          "signature": "FilterLogic Logic",
          "summary": "How direct children are combined."
        },
        {
          "name": "Rules",
          "kind": "property",
          "signature": "IReadOnlyList<DataFilterQueryRule> Rules",
          "summary": "Immutable direct child conditions and groups."
        }
      ]
    },
    {
      "name": "DataFilterQueryRule",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable condition or nested group in a typed DataFilter query.",
      "source": "src/Omni.Blazor/Models/DataFilterQuery.cs",
      "members": [
        {
          "name": "DataFilterQueryRule",
          "kind": "constructor",
          "signature": "DataFilterQueryRule(string field, FilterOperator operator, DataFilterValue value, DataFilterValue upperValue, DataFilterQueryGroup group)",
          "summary": "Creates one serialized query node."
        },
        {
          "name": "Field",
          "kind": "property",
          "signature": "string Field",
          "summary": "Stable schema field id. Null for groups."
        },
        {
          "name": "Group",
          "kind": "property",
          "signature": "DataFilterQueryGroup Group",
          "summary": "Nested group. Non-null marks this node as a group."
        },
        {
          "name": "IsGroup",
          "kind": "property",
          "signature": "bool IsGroup",
          "summary": "Whether this node contains a nested group."
        },
        {
          "name": "Operator",
          "kind": "property",
          "signature": "FilterOperator Operator",
          "summary": "Condition operator."
        },
        {
          "name": "UpperValue",
          "kind": "property",
          "signature": "DataFilterValue UpperValue",
          "summary": "Upper value used by Between and NotBetween."
        },
        {
          "name": "Value",
          "kind": "property",
          "signature": "DataFilterValue Value",
          "summary": "Condition value."
        }
      ]
    },
    {
      "name": "DataFilterSchema<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable, strongly typed definition of the fields exposed by an OmniDataFilter. Reuse one schema across renders and filter instances.",
      "source": "src/Omni.Blazor/Models/DataFilterSchema.cs",
      "members": [
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static DataFilterSchemaBuilder<TItem> Builder()",
          "summary": "Creates a reusable schema builder."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static DataFilterSchema<TItem> Create(Action<DataFilterSchemaBuilder<TItem>> configure)",
          "summary": "Creates and builds an immutable schema in one expression."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "DataFilterSchema<TItem> Extend(Action<DataFilterSchemaBuilder<TItem>> configure)",
          "summary": "Creates an immutable derived schema from this reusable base."
        },
        {
          "name": "Fields",
          "kind": "property",
          "signature": "IReadOnlyList<DataFilterField<TItem>> Fields",
          "summary": "Filterable fields in deterministic declaration order."
        },
        {
          "name": "MaximumDepth",
          "kind": "property",
          "signature": "int MaximumDepth",
          "summary": "Maximum accepted nested group depth. Default 16."
        },
        {
          "name": "MaximumRules",
          "kind": "property",
          "signature": "int MaximumRules",
          "summary": "Maximum accepted condition and group count. Default 512."
        },
        {
          "name": "Query",
          "kind": "method",
          "signature": "DataFilterQuery<TItem> Query(Action<DataFilterGroupBuilder<TItem>> configure, FilterLogic logic)",
          "summary": "Creates a typed query against this schema."
        },
        {
          "name": "TryGetField",
          "kind": "method",
          "signature": "bool TryGetField(string id, DataFilterField`1& field)",
          "summary": "Finds a field by its stable serialized id."
        }
      ]
    },
    {
      "name": "DataFilterSchemaBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Fluent builder for an immutable DataFilterSchema`1.",
      "source": "src/Omni.Blazor/Models/DataFilterSchema.cs",
      "members": [
        {
          "name": "Build",
          "kind": "method",
          "signature": "DataFilterSchema<TItem> Build()",
          "summary": "Builds the immutable schema. A builder can be built only once."
        },
        {
          "name": "ClearFields",
          "kind": "method",
          "signature": "DataFilterSchemaBuilder<TItem> ClearFields()",
          "summary": "Removes inherited fields while preserving safety limits."
        },
        {
          "name": "DataFilterSchemaBuilder",
          "kind": "constructor",
          "signature": "DataFilterSchemaBuilder()"
        },
        {
          "name": "Field",
          "kind": "method",
          "signature": "DataFilterSchemaBuilder<TItem> Field<TValue>(Expression<Func<TItem, TValue>> selector, Action<DataFilterFieldBuilder<TItem, TValue>> configure)",
          "summary": "Adds a strongly typed filterable member."
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "DataFilterSchemaBuilder<TItem> Include(DataFilterSchema<TItem> schema)",
          "summary": "Includes fields and safety limits from an immutable schema."
        },
        {
          "name": "Limits",
          "kind": "method",
          "signature": "DataFilterSchemaBuilder<TItem> Limits(int maximumDepth, int maximumRules)",
          "summary": "Bounds deserialized and programmatically built query trees."
        },
        {
          "name": "OverrideField",
          "kind": "method",
          "signature": "DataFilterSchemaBuilder<TItem> OverrideField<TValue>(Expression<Func<TItem, TValue>> selector, Action<DataFilterFieldBuilder<TItem, TValue>> configure)",
          "summary": "Replaces an inherited field while preserving its selector position."
        }
      ]
    },
    {
      "name": "DataFilterValue",
      "category": "Data",
      "kind": "class",
      "summary": "Stable primitive representation used by serialized DataFilter conditions.",
      "source": "src/Omni.Blazor/Models/DataFilterQuery.cs",
      "members": [
        {
          "name": "Custom",
          "kind": "method",
          "signature": "static DataFilterValue Custom(string text)",
          "summary": "Creates a value owned by a field-specific codec."
        },
        {
          "name": "DataFilterValue",
          "kind": "constructor",
          "signature": "DataFilterValue(DataFilterValueKind kind, string text)",
          "summary": "Creates a serialized value."
        },
        {
          "name": "From",
          "kind": "method",
          "signature": "static DataFilterValue From(object value)",
          "summary": "Converts one supported CLR primitive to its invariant representation."
        },
        {
          "name": "Kind",
          "kind": "property",
          "signature": "DataFilterValueKind Kind",
          "summary": "Serialized primitive family."
        },
        {
          "name": "Null",
          "kind": "property",
          "signature": "DataFilterValue Null",
          "summary": "Canonical null value."
        },
        {
          "name": "Text",
          "kind": "property",
          "signature": "string Text",
          "summary": "Invariant text payload. Null only for Null."
        }
      ]
    },
    {
      "name": "DataFilterValueKind",
      "category": "Data",
      "kind": "enum",
      "summary": "Supported stable serialized value families.",
      "source": "src/Omni.Blazor/Models/DataFilterQuery.cs",
      "members": [
        {
          "name": "Boolean",
          "kind": "enumValue",
          "signature": "Boolean",
          "summary": "Boolean."
        },
        {
          "name": "Custom",
          "kind": "enumValue",
          "signature": "Custom",
          "summary": "Payload owned by a field-specific codec."
        },
        {
          "name": "DateOnly",
          "kind": "enumValue",
          "signature": "DateOnly",
          "summary": "Date without time."
        },
        {
          "name": "DateTime",
          "kind": "enumValue",
          "signature": "DateTime",
          "summary": "Date and time with DateTime semantics."
        },
        {
          "name": "DateTimeOffset",
          "kind": "enumValue",
          "signature": "DateTimeOffset",
          "summary": "Date and time with offset."
        },
        {
          "name": "Decimal",
          "kind": "enumValue",
          "signature": "Decimal",
          "summary": "Decimal number."
        },
        {
          "name": "Double",
          "kind": "enumValue",
          "signature": "Double",
          "summary": "Single or double precision number."
        },
        {
          "name": "Enum",
          "kind": "enumValue",
          "signature": "Enum",
          "summary": "Enum member name."
        },
        {
          "name": "Guid",
          "kind": "enumValue",
          "signature": "Guid",
          "summary": "Guid."
        },
        {
          "name": "Null",
          "kind": "enumValue",
          "signature": "Null",
          "summary": "Null."
        },
        {
          "name": "SignedInteger",
          "kind": "enumValue",
          "signature": "SignedInteger",
          "summary": "Signed integral number."
        },
        {
          "name": "String",
          "kind": "enumValue",
          "signature": "String",
          "summary": "Unicode text or a character."
        },
        {
          "name": "TimeOnly",
          "kind": "enumValue",
          "signature": "TimeOnly",
          "summary": "Time without date."
        },
        {
          "name": "UnsignedInteger",
          "kind": "enumValue",
          "signature": "UnsignedInteger",
          "summary": "Unsigned integral number."
        }
      ]
    },
    {
      "name": "DataGridColumnBuilder<TItem, TValue>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed builder for one generated DataGrid column.",
      "source": "src/Omni.Blazor/Models/DataGridSchema.cs",
      "members": [
        {
          "name": "Aggregate",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Aggregate(AggregateFunction function, Func<TItem, decimal> selector, Func<object, string> format)",
          "summary": "Configures an aggregate and optional formatter."
        },
        {
          "name": "EditTemplate",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> EditTemplate(RenderFragment<TItem> template)",
          "summary": "Sets a typed inline edit template."
        },
        {
          "name": "FilterOptions",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> FilterOptions(IEnumerable<TValue> options)",
          "summary": "Configures select options for a filterable column."
        },
        {
          "name": "Filterable",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Filterable(bool enabled, ColumnFilterType type, FilterOperator[] operators)",
          "summary": "Enables filtering with inferred or explicit editor type."
        },
        {
          "name": "Format",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Format(string format, IFormatProvider provider)",
          "summary": "Formats values using the current culture."
        },
        {
          "name": "Frozen",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Frozen(FrozenPosition position)",
          "summary": "Freezes the column at an edge."
        },
        {
          "name": "Groupable",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Groupable(bool enabled, DateGroupInterval[] hierarchy)",
          "summary": "Enables grouping with an optional date hierarchy."
        },
        {
          "name": "HierarchyAnchor",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> HierarchyAnchor(bool enabled)",
          "summary": "Marks this column as the hierarchy expansion anchor."
        },
        {
          "name": "Resizable",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Resizable(bool enabled)",
          "summary": "Enables or disables resizing."
        },
        {
          "name": "Sortable",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Sortable(bool enabled)",
          "summary": "Enables or disables sorting."
        },
        {
          "name": "Template",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Template(RenderFragment<TItem> template)",
          "summary": "Sets a typed cell template."
        },
        {
          "name": "Text",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Text(Func<TItem, string> selector)",
          "summary": "Sets an explicit display text selector."
        },
        {
          "name": "Title",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Title(string value)",
          "summary": "Overrides the inferred title."
        },
        {
          "name": "Visibility",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Visibility(bool visible, bool canHide)",
          "summary": "Sets visibility behavior."
        },
        {
          "name": "Width",
          "kind": "method",
          "signature": "DataGridColumnBuilder<TItem, TValue> Width(string value)",
          "summary": "Sets the CSS width."
        }
      ]
    },
    {
      "name": "DataGridColumnDefinition<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable runtime definition for one generated DataGrid column.",
      "source": "src/Omni.Blazor/Models/DataGridSchema.cs",
      "members": [
        {
          "name": "Aggregate",
          "kind": "property",
          "signature": "AggregateFunction Aggregate",
          "summary": "Optional aggregate function."
        },
        {
          "name": "AggregateFormat",
          "kind": "property",
          "signature": "Func<object, string> AggregateFormat",
          "summary": "Optional aggregate formatter."
        },
        {
          "name": "AggregateProperty",
          "kind": "property",
          "signature": "Func<TItem, decimal> AggregateProperty",
          "summary": "Optional aggregate numeric selector."
        },
        {
          "name": "CanHide",
          "kind": "property",
          "signature": "bool CanHide",
          "summary": "Whether the column can be hidden."
        },
        {
          "name": "EditTemplate",
          "kind": "property",
          "signature": "RenderFragment<TItem> EditTemplate",
          "summary": "Optional inline edit template."
        },
        {
          "name": "FilterOperators",
          "kind": "property",
          "signature": "IReadOnlyList<FilterOperator> FilterOperators",
          "summary": "Optional allowed filter operators."
        },
        {
          "name": "FilterSelectOptions",
          "kind": "property",
          "signature": "IReadOnlyList<object> FilterSelectOptions",
          "summary": "Optional select filter options."
        },
        {
          "name": "FilterType",
          "kind": "property",
          "signature": "ColumnFilterType FilterType",
          "summary": "Filter editor family."
        },
        {
          "name": "Filterable",
          "kind": "property",
          "signature": "bool Filterable",
          "summary": "Whether filtering is allowed."
        },
        {
          "name": "Frozen",
          "kind": "property",
          "signature": "FrozenPosition Frozen",
          "summary": "Optional frozen edge."
        },
        {
          "name": "GroupHierarchy",
          "kind": "property",
          "signature": "IReadOnlyList<DateGroupInterval> GroupHierarchy",
          "summary": "Optional date grouping hierarchy."
        },
        {
          "name": "Groupable",
          "kind": "property",
          "signature": "bool Groupable",
          "summary": "Whether grouping is allowed."
        },
        {
          "name": "IsHierarchyAnchor",
          "kind": "property",
          "signature": "bool IsHierarchyAnchor",
          "summary": "Whether this is the hierarchy expander anchor."
        },
        {
          "name": "Property",
          "kind": "property",
          "signature": "Func<TItem, object> Property",
          "summary": "Compiled boxed value selector."
        },
        {
          "name": "PropertyName",
          "kind": "property",
          "signature": "string PropertyName",
          "summary": "Stable member path used by sorting, filtering and persisted view state."
        },
        {
          "name": "Resizable",
          "kind": "property",
          "signature": "bool Resizable",
          "summary": "Whether resizing is allowed."
        },
        {
          "name": "Sortable",
          "kind": "property",
          "signature": "bool Sortable",
          "summary": "Whether sorting is allowed."
        },
        {
          "name": "Template",
          "kind": "property",
          "signature": "RenderFragment<TItem> Template",
          "summary": "Optional cell template."
        },
        {
          "name": "TextSelector",
          "kind": "property",
          "signature": "Func<TItem, string> TextSelector",
          "summary": "Optional display text selector."
        },
        {
          "name": "Title",
          "kind": "property",
          "signature": "string Title",
          "summary": "Column header text."
        },
        {
          "name": "Visible",
          "kind": "property",
          "signature": "bool Visible",
          "summary": "Initial visibility."
        },
        {
          "name": "Width",
          "kind": "property",
          "signature": "string Width",
          "summary": "CSS width."
        }
      ]
    },
    {
      "name": "DataGridFormActionBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Builder for a custom row action.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Auto",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> Auto()",
          "summary": "Lets the actions-column overflow policy place the action."
        },
        {
          "name": "Confirm",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> Confirm(Func<TItem, string> message)",
          "summary": "Requires confirmation using a message derived from the row."
        },
        {
          "name": "DisabledWhen",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> DisabledWhen(Func<TItem, bool> predicate)",
          "summary": "Disables the action when the predicate returns true."
        },
        {
          "name": "Display",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> Display(string text, string icon)",
          "summary": "Overrides display text and icon."
        },
        {
          "name": "Id",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> Id(string value)",
          "summary": "Sets the stable action id used by operation events and busy state."
        },
        {
          "name": "InMenu",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> InMenu(bool enabled)",
          "summary": "Moves the action to the row overflow menu when enabled."
        },
        {
          "name": "KeepInline",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> KeepInline()",
          "summary": "Pins the action inline even when automatic overflow is enabled."
        },
        {
          "name": "MenuMetadata",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> MenuMetadata(string group, string shortcut, string description)",
          "summary": "Sets optional overflow-menu grouping, shortcut and description metadata."
        },
        {
          "name": "Order",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> Order(int value)",
          "summary": "Sets deterministic display order among custom row actions."
        },
        {
          "name": "Placement",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> Placement(DataGridFormActionPlacement value)",
          "summary": "Sets whether the action is rendered inline or in the row overflow menu."
        },
        {
          "name": "Priority",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> Priority(int value)",
          "summary": "Sets automatic-overflow priority; larger values stay inline first."
        },
        {
          "name": "RequiresPolicy",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> RequiresPolicy(string policy, DataGridFormUnauthorizedBehavior unauthorizedBehavior)",
          "summary": "Requires a named authorization policy before the action is exposed."
        },
        {
          "name": "Variant",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> Variant(ButtonVariant value)",
          "summary": "Sets the button visual variant."
        },
        {
          "name": "VisibleWhen",
          "kind": "method",
          "signature": "DataGridFormActionBuilder<TItem> VisibleWhen(Func<TItem, bool> predicate)",
          "summary": "Shows the action only when the predicate returns true."
        }
      ]
    },
    {
      "name": "DataGridFormActionsColumnBuilder",
      "category": "Data",
      "kind": "class",
      "summary": "Fluent builder for the generated row-actions column.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Frozen",
          "kind": "method",
          "signature": "DataGridFormActionsColumnBuilder Frozen(FrozenPosition position)",
          "summary": "Freezes the column at the requested physical edge, or clears freezing with null."
        },
        {
          "name": "FrozenLeft",
          "kind": "method",
          "signature": "DataGridFormActionsColumnBuilder FrozenLeft()",
          "summary": "Freezes the actions column at the left edge."
        },
        {
          "name": "FrozenRight",
          "kind": "method",
          "signature": "DataGridFormActionsColumnBuilder FrozenRight()",
          "summary": "Freezes the actions column at the right edge."
        },
        {
          "name": "Menu",
          "kind": "method",
          "signature": "DataGridFormActionsColumnBuilder Menu(string text, string icon, string ariaLabel)",
          "summary": "Configures the overflow-menu trigger."
        },
        {
          "name": "Overflow",
          "kind": "method",
          "signature": "DataGridFormActionsColumnBuilder Overflow(DataGridFormActionOverflow value, int maximumInlineActions)",
          "summary": "Enables manual or priority-based automatic overflow."
        },
        {
          "name": "ReorderActions",
          "kind": "method",
          "signature": "DataGridFormActionsColumnBuilder ReorderActions(DataGridFormActionPlacement placement)",
          "summary": "Places generated move actions inline, in the menu, or under automatic overflow."
        },
        {
          "name": "Resizable",
          "kind": "method",
          "signature": "DataGridFormActionsColumnBuilder Resizable(bool enabled)",
          "summary": "Enables or disables the native DataGrid column resizer."
        },
        {
          "name": "Width",
          "kind": "method",
          "signature": "DataGridFormActionsColumnBuilder Width(string value)",
          "summary": "Sets the generated column CSS width."
        }
      ]
    },
    {
      "name": "DataGridFormBulkActionBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Builder for a custom selected-item action.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Auto",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> Auto()",
          "summary": "Lets the selected-item overflow policy place the action."
        },
        {
          "name": "Confirm",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> Confirm(Func<IReadOnlyList<TItem>, string> message)",
          "summary": "Requires confirmation using a message derived from the selected snapshot."
        },
        {
          "name": "DisabledWhen",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> DisabledWhen(Func<IReadOnlyList<TItem>, bool> predicate)",
          "summary": "Disables the action when the selected snapshot is rejected."
        },
        {
          "name": "Display",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> Display(string text, string icon)",
          "summary": "Overrides display text and icon."
        },
        {
          "name": "Id",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> Id(string value)",
          "summary": "Sets the stable action id used by operation events and busy state."
        },
        {
          "name": "InMenu",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> InMenu(bool enabled)",
          "summary": "Moves the selected-item action to the overflow menu when enabled."
        },
        {
          "name": "KeepInline",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> KeepInline()",
          "summary": "Pins the selected-item action inline."
        },
        {
          "name": "MenuMetadata",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> MenuMetadata(string group, string shortcut, string description)",
          "summary": "Sets optional overflow-menu grouping, shortcut and description metadata."
        },
        {
          "name": "Order",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> Order(int value)",
          "summary": "Sets deterministic display order among selected-item actions."
        },
        {
          "name": "Placement",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> Placement(DataGridFormActionPlacement value)",
          "summary": "Sets whether the selected-item action is inline, in-menu or automatic."
        },
        {
          "name": "Priority",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> Priority(int value)",
          "summary": "Sets automatic-overflow priority; larger values stay inline first."
        },
        {
          "name": "RequiresPolicy",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> RequiresPolicy(string policy, DataGridFormUnauthorizedBehavior unauthorizedBehavior)",
          "summary": "Requires a named authorization policy before the action is exposed."
        },
        {
          "name": "Variant",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> Variant(ButtonVariant value)",
          "summary": "Sets the button visual variant."
        },
        {
          "name": "VisibleWhen",
          "kind": "method",
          "signature": "DataGridFormBulkActionBuilder<TItem> VisibleWhen(Func<IReadOnlyList<TItem>, bool> predicate)",
          "summary": "Shows the action only when the selected snapshot is accepted."
        }
      ]
    },
    {
      "name": "DataGridFormBulkActionsBuilder",
      "category": "Data",
      "kind": "class",
      "summary": "Fluent builder for selected-item action overflow.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Menu",
          "kind": "method",
          "signature": "DataGridFormBulkActionsBuilder Menu(string text, string icon, string ariaLabel)",
          "summary": "Configures the selected-item overflow-menu trigger."
        },
        {
          "name": "Overflow",
          "kind": "method",
          "signature": "DataGridFormBulkActionsBuilder Overflow(DataGridFormActionOverflow value, int maximumInlineActions)",
          "summary": "Enables manual or priority-based automatic overflow."
        }
      ]
    },
    {
      "name": "DataGridFormColumnBuilder<TItem, TValue>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed options for one generated DataGrid column.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Filterable",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Filterable(bool value, ColumnFilterType type)",
          "summary": "Enables filtering with an optional explicit filter family."
        },
        {
          "name": "Groupable",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Groupable(bool value)",
          "summary": "Enables or disables grouping."
        },
        {
          "name": "Resizable",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Resizable(bool value)",
          "summary": "Enables or disables resizing."
        },
        {
          "name": "Sortable",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Sortable(bool value)",
          "summary": "Enables or disables sorting."
        },
        {
          "name": "Template",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Template(RenderFragment<TItem> template)",
          "summary": "Sets a typed custom cell template."
        },
        {
          "name": "Text",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Text(Func<TItem, string> selector)",
          "summary": "Sets a typed display-text selector."
        },
        {
          "name": "Title",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Title(string value)",
          "summary": "Overrides the generated column title."
        },
        {
          "name": "Visibility",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Visibility(bool visible, bool canHide)",
          "summary": "Controls the column visibility menu and initial visibility."
        },
        {
          "name": "Width",
          "kind": "method",
          "signature": "DataGridFormColumnBuilder<TItem, TValue> Width(string value)",
          "summary": "Sets the CSS column width."
        }
      ]
    },
    {
      "name": "DataGridFormCreateBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Builder for the generated create workflow.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Button",
          "kind": "method",
          "signature": "DataGridFormCreateBuilder<TItem> Button(string text, string icon)",
          "summary": "Sets button text and icon."
        },
        {
          "name": "DisabledWhen",
          "kind": "method",
          "signature": "DataGridFormCreateBuilder<TItem> DisabledWhen(Func<bool> policy)",
          "summary": "Disables creation when the policy returns true."
        },
        {
          "name": "Factory",
          "kind": "method",
          "signature": "DataGridFormCreateBuilder<TItem> Factory(Func<TItem> factory)",
          "summary": "Sets the draft factory. Required."
        },
        {
          "name": "Presentation",
          "kind": "method",
          "signature": "DataGridFormCreateBuilder<TItem> Presentation(DataGridFormPresentation value, string width)",
          "summary": "Sets editor placement and width."
        },
        {
          "name": "RequiresPolicy",
          "kind": "method",
          "signature": "DataGridFormCreateBuilder<TItem> RequiresPolicy(string policy, DataGridFormUnauthorizedBehavior unauthorizedBehavior)",
          "summary": "Requires a named authorization policy before creation is exposed."
        },
        {
          "name": "Title",
          "kind": "method",
          "signature": "DataGridFormCreateBuilder<TItem> Title(string value)",
          "summary": "Sets the editor title."
        },
        {
          "name": "VisibleWhen",
          "kind": "method",
          "signature": "DataGridFormCreateBuilder<TItem> VisibleWhen(Func<bool> policy)",
          "summary": "Shows creation only when the policy returns true."
        }
      ]
    },
    {
      "name": "DataGridFormDeleteBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Builder for confirmed deletion.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Auto",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> Auto()",
          "summary": "Lets the actions-column overflow policy place the delete action."
        },
        {
          "name": "Button",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> Button(string text, string icon)",
          "summary": "Sets button text and icon."
        },
        {
          "name": "Confirm",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> Confirm(Func<TItem, string> message, Func<TItem, string> title)",
          "summary": "Sets confirmation message and optional title selectors."
        },
        {
          "name": "DisabledWhen",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> DisabledWhen(Func<TItem, bool> policy)",
          "summary": "Disables delete for rows accepted by the policy."
        },
        {
          "name": "InMenu",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> InMenu(bool enabled)",
          "summary": "Moves the delete action to the row overflow menu when enabled."
        },
        {
          "name": "KeepInline",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> KeepInline()",
          "summary": "Pins the delete action inline even when automatic overflow is enabled."
        },
        {
          "name": "MenuMetadata",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> MenuMetadata(string group, string shortcut, string description)",
          "summary": "Sets optional overflow-menu grouping, shortcut and description metadata."
        },
        {
          "name": "Placement",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> Placement(DataGridFormActionPlacement value)",
          "summary": "Sets whether the delete action is rendered inline or in the row overflow menu."
        },
        {
          "name": "Priority",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> Priority(int value)",
          "summary": "Sets automatic-overflow priority; larger values stay inline first."
        },
        {
          "name": "RequiresPolicy",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> RequiresPolicy(string policy, DataGridFormUnauthorizedBehavior unauthorizedBehavior)",
          "summary": "Requires a named authorization policy before deletion is exposed."
        },
        {
          "name": "Texts",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> Texts(string confirm, string cancel)",
          "summary": "Sets confirmation and cancellation button labels."
        },
        {
          "name": "VisibleWhen",
          "kind": "method",
          "signature": "DataGridFormDeleteBuilder<TItem> VisibleWhen(Func<TItem, bool> policy)",
          "summary": "Shows delete only for rows accepted by the policy."
        }
      ]
    },
    {
      "name": "DataGridFormEditBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Builder for safe copy-based editing.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Auto",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> Auto()",
          "summary": "Lets the actions-column overflow policy place the edit action."
        },
        {
          "name": "Button",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> Button(string text, string icon)",
          "summary": "Sets button text and icon."
        },
        {
          "name": "Clone",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> Clone(Func<TItem, TItem> factory)",
          "summary": "Sets the required detached-draft factory used to make cancellation safe."
        },
        {
          "name": "DisabledWhen",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> DisabledWhen(Func<TItem, bool> policy)",
          "summary": "Disables edit for rows accepted by the policy."
        },
        {
          "name": "InMenu",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> InMenu(bool enabled)",
          "summary": "Moves the edit action to the row overflow menu when enabled."
        },
        {
          "name": "KeepInline",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> KeepInline()",
          "summary": "Pins the edit action inline even when automatic overflow is enabled."
        },
        {
          "name": "MenuMetadata",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> MenuMetadata(string group, string shortcut, string description)",
          "summary": "Sets optional overflow-menu grouping, shortcut and description metadata."
        },
        {
          "name": "Placement",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> Placement(DataGridFormActionPlacement value)",
          "summary": "Sets whether the edit action is rendered inline or in the row overflow menu."
        },
        {
          "name": "Presentation",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> Presentation(DataGridFormPresentation value, string width)",
          "summary": "Sets editor placement and width."
        },
        {
          "name": "Priority",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> Priority(int value)",
          "summary": "Sets automatic-overflow priority; larger values stay inline first."
        },
        {
          "name": "RequiresPolicy",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> RequiresPolicy(string policy, DataGridFormUnauthorizedBehavior unauthorizedBehavior)",
          "summary": "Requires a named authorization policy before editing is exposed."
        },
        {
          "name": "Title",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> Title(Func<TItem, string> selector)",
          "summary": "Sets a title derived from the selected item."
        },
        {
          "name": "VisibleWhen",
          "kind": "method",
          "signature": "DataGridFormEditBuilder<TItem> VisibleWhen(Func<TItem, bool> policy)",
          "summary": "Shows edit only for rows accepted by the policy."
        }
      ]
    },
    {
      "name": "DataGridFormGridBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed DataGrid presentation builder.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "AllowColumnFilter",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AllowColumnFilter(bool enabled)",
          "summary": "Enables per-column filters."
        },
        {
          "name": "AllowColumnResize",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AllowColumnResize(bool enabled)",
          "summary": "Enables column resize."
        },
        {
          "name": "AllowColumnVisibility",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AllowColumnVisibility(bool enabled)",
          "summary": "Enables the column visibility menu."
        },
        {
          "name": "AllowExport",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AllowExport(bool enabled)",
          "summary": "Enables bounded CSV export."
        },
        {
          "name": "AllowGrouping",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AllowGrouping(bool enabled)",
          "summary": "Enables grouping for columns marked groupable."
        },
        {
          "name": "AllowPaging",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AllowPaging(bool enabled, int pageSize)",
          "summary": "Enables paging and sets its page size."
        },
        {
          "name": "AllowSearch",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AllowSearch(bool enabled)",
          "summary": "Shows or hides the grid search box. Default true."
        },
        {
          "name": "AllowSorting",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AllowSorting(bool enabled)",
          "summary": "Enables or disables sorting. Default true."
        },
        {
          "name": "AutoColumnsFromForm",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> AutoColumnsFromForm(bool enabled)",
          "summary": "Includes DataForm fields that were not explicitly configured as columns. Default true."
        },
        {
          "name": "Column",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> Column<TValue>(Expression<Func<TItem, TValue>> property, Action<DataGridFormColumnBuilder<TItem, TValue>> configure)",
          "summary": "Adds or overrides one DataGrid column with a typed selector."
        },
        {
          "name": "Texts",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> Texts(string searchPlaceholder, string empty)",
          "summary": "Overrides search and empty-state text."
        },
        {
          "name": "Virtualize",
          "kind": "method",
          "signature": "DataGridFormGridBuilder<TItem> Virtualize(string height, float rowHeight)",
          "summary": "Enables row virtualization with a fixed height."
        }
      ]
    },
    {
      "name": "DataGridFormMutationResult<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Typed provider mutation result. Expected validation, authorization and optimistic concurrency outcomes do not need exceptions; unexpected failures may retain one.",
      "source": "src/Omni.Blazor/Models/DataGridFormModels.cs",
      "members": [
        {
          "name": "Conflict",
          "kind": "method",
          "signature": "static DataGridFormMutationResult<TItem> Conflict(TItem currentItem, string message)",
          "summary": "Creates an optimistic concurrency conflict with the latest item when available."
        },
        {
          "name": "CurrentItem",
          "kind": "property",
          "signature": "TItem CurrentItem",
          "summary": "Current server item supplied when optimistic concurrency detects a conflict."
        },
        {
          "name": "Deleted",
          "kind": "method",
          "signature": "static DataGridFormMutationResult<TItem> Deleted()",
          "summary": "Creates a successful delete result."
        },
        {
          "name": "Errors",
          "kind": "property",
          "signature": "IReadOnlyList<string> Errors",
          "summary": "Domain validation messages. The collection is always non-null and immutable."
        },
        {
          "name": "Exception",
          "kind": "property",
          "signature": "Exception Exception",
          "summary": "Observed unexpected exception, when one exists."
        },
        {
          "name": "Failure",
          "kind": "method",
          "signature": "static DataGridFormMutationResult<TItem> Failure(string message, Exception exception)",
          "summary": "Creates an expected or unexpected persistence failure."
        },
        {
          "name": "Forbidden",
          "kind": "method",
          "signature": "static DataGridFormMutationResult<TItem> Forbidden(string message)",
          "summary": "Creates an authorization failure."
        },
        {
          "name": "Item",
          "kind": "property",
          "signature": "TItem Item",
          "summary": "Authoritative persisted item for successful create or update operations."
        },
        {
          "name": "Message",
          "kind": "property",
          "signature": "string Message",
          "summary": "Human-readable summary safe to present to the user."
        },
        {
          "name": "NotFound",
          "kind": "method",
          "signature": "static DataGridFormMutationResult<TItem> NotFound(string message)",
          "summary": "Creates a not-found result."
        },
        {
          "name": "Status",
          "kind": "property",
          "signature": "DataGridFormMutationStatus Status",
          "summary": "Structured mutation outcome."
        },
        {
          "name": "Succeeded",
          "kind": "property",
          "signature": "bool Succeeded",
          "summary": "Whether persistence completed successfully."
        },
        {
          "name": "Success",
          "kind": "method",
          "signature": "static DataGridFormMutationResult<TItem> Success(TItem item)",
          "summary": "Creates a successful create or update result with its authoritative item."
        },
        {
          "name": "ValidationFailed",
          "kind": "method",
          "signature": "static DataGridFormMutationResult<TItem> ValidationFailed(IEnumerable<string> errors, string message)",
          "summary": "Creates a domain validation failure."
        }
      ]
    },
    {
      "name": "DataGridFormMutationStatus",
      "category": "Data",
      "kind": "enum",
      "summary": "Outcome of a provider mutation, including expected domain and concurrency failures.",
      "source": "src/Omni.Blazor/Models/DataGridFormModels.cs",
      "members": [
        {
          "name": "Conflict",
          "kind": "enumValue",
          "signature": "Conflict",
          "summary": "The item changed after it was loaded and the submitted version is stale."
        },
        {
          "name": "Failure",
          "kind": "enumValue",
          "signature": "Failure",
          "summary": "An expected persistence failure occurred."
        },
        {
          "name": "Forbidden",
          "kind": "enumValue",
          "signature": "Forbidden",
          "summary": "The current user is not allowed to perform the operation."
        },
        {
          "name": "NotFound",
          "kind": "enumValue",
          "signature": "NotFound",
          "summary": "The target item no longer exists."
        },
        {
          "name": "RefreshFailed",
          "kind": "enumValue",
          "signature": "RefreshFailed",
          "summary": "Persistence succeeded, but refreshing the grid failed."
        },
        {
          "name": "Success",
          "kind": "enumValue",
          "signature": "Success",
          "summary": "The persistence operation completed successfully."
        },
        {
          "name": "ValidationFailed",
          "kind": "enumValue",
          "signature": "ValidationFailed",
          "summary": "The provider rejected one or more domain values."
        }
      ]
    },
    {
      "name": "DataGridFormSchema<TItem, TKey>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable CRUD composition schema shared by OmniDataGridForm instances. It reuses a DataFormSchema`1 for editors and owns only grid presentation and operation metadata.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Actions",
          "kind": "property",
          "signature": "IReadOnlyList<DataGridFormAction<TItem, TKey>> Actions",
          "summary": "Additional strongly typed row actions."
        },
        {
          "name": "ActionsColumn",
          "kind": "property",
          "signature": "DataGridFormActionsColumnOptions ActionsColumn",
          "summary": "Generated row-actions column presentation and overflow policy."
        },
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static DataGridFormSchemaBuilder<TItem, TKey> Builder()",
          "summary": "Creates a mutable builder for conditional schema construction."
        },
        {
          "name": "BulkActions",
          "kind": "property",
          "signature": "IReadOnlyList<DataGridFormBulkAction<TItem, TKey>> BulkActions",
          "summary": "Additional strongly typed selected-item actions."
        },
        {
          "name": "BulkActionsBar",
          "kind": "property",
          "signature": "DataGridFormBulkActionsOptions BulkActionsBar",
          "summary": "Selected-item actions presentation and overflow policy."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static DataGridFormSchema<TItem, TKey> Create(Action<DataGridFormSchemaBuilder<TItem, TKey>> configure)",
          "summary": "Creates and builds an immutable CRUD schema."
        },
        {
          "name": "CreateOptions",
          "kind": "property",
          "signature": "DataGridFormCreateOptions<TItem> CreateOptions",
          "summary": "Create operation, or null when creation is disabled."
        },
        {
          "name": "DeleteOptions",
          "kind": "property",
          "signature": "DataGridFormDeleteOptions<TItem> DeleteOptions",
          "summary": "Delete operation, or null when deletion is disabled."
        },
        {
          "name": "EditOptions",
          "kind": "property",
          "signature": "DataGridFormEditOptions<TItem> EditOptions",
          "summary": "Edit operation, or null when editing is disabled."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "DataGridFormSchema<TItem, TKey> Extend(Action<DataGridFormSchemaBuilder<TItem, TKey>> configure)",
          "summary": "Creates an immutable derived CRUD schema from this reusable base."
        },
        {
          "name": "FormSchema",
          "kind": "property",
          "signature": "DataFormSchema<TItem> FormSchema",
          "summary": "DataForm schema used for create and edit drafts."
        },
        {
          "name": "Grid",
          "kind": "property",
          "signature": "DataGridFormGridOptions<TItem> Grid",
          "summary": "Generated DataGrid columns and feature options."
        },
        {
          "name": "KeySelector",
          "kind": "property",
          "signature": "Func<TItem, TKey> KeySelector",
          "summary": "Stable key selector used by row state and persistence."
        }
      ]
    },
    {
      "name": "DataGridFormSchemaBuilder<TItem, TKey>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed builder for a grid and DataForm CRUD composition.",
      "source": "src/Omni.Blazor/Models/DataGridFormSchema.cs",
      "members": [
        {
          "name": "Action",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Action(string text, string icon, Func<DataGridFormActionContext<TItem, TKey>, CancellationToken, ValueTask> execute, Action<DataGridFormActionBuilder<TItem>> configure)",
          "summary": "Adds an extra cancellable row action."
        },
        {
          "name": "ActionsColumn",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> ActionsColumn(Action<DataGridFormActionsColumnBuilder> configure)",
          "summary": "Configures the generated row-actions column and its overflow menu."
        },
        {
          "name": "Build",
          "kind": "method",
          "signature": "DataGridFormSchema<TItem, TKey> Build()",
          "summary": "Builds the immutable schema. A key selector is required."
        },
        {
          "name": "BulkAction",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> BulkAction(string text, string icon, Func<DataGridFormBulkActionContext<TItem, TKey>, CancellationToken, ValueTask> execute, Action<DataGridFormBulkActionBuilder<TItem>> configure)",
          "summary": "Adds a cancellable action for the current selected-item snapshot."
        },
        {
          "name": "BulkActions",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> BulkActions(Action<DataGridFormBulkActionsBuilder> configure)",
          "summary": "Configures selected-item action overflow and its menu trigger."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Create(Action<DataGridFormCreateBuilder<TItem>> configure)",
          "summary": "Enables creation through a generated DataForm draft."
        },
        {
          "name": "DataGridFormSchemaBuilder",
          "kind": "constructor",
          "signature": "DataGridFormSchemaBuilder()",
          "summary": "Creates an empty CRUD schema builder."
        },
        {
          "name": "Delete",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Delete(Action<DataGridFormDeleteBuilder<TItem>> configure)",
          "summary": "Enables confirmed deletion."
        },
        {
          "name": "Edit",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Edit(Action<DataGridFormEditBuilder<TItem>> configure)",
          "summary": "Enables safe edit-through-copy through a generated DataForm draft."
        },
        {
          "name": "Form",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Form(DataFormSchema<TItem> schema)",
          "summary": "Sets the reusable DataForm schema used for create and edit drafts."
        },
        {
          "name": "Grid",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Grid(Action<DataGridFormGridBuilder<TItem>> configure)",
          "summary": "Configures generated DataGrid columns and features."
        },
        {
          "name": "Grid",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Grid(DataGridSchema<TItem> schema)",
          "summary": "Configures generated DataGrid columns and features."
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Include(DataGridFormSchema<TItem, TKey> schema)",
          "summary": "Includes form, grid and operation metadata from an immutable CRUD schema."
        },
        {
          "name": "Key",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> Key(Expression<Func<TItem, TKey>> selector)",
          "summary": "Sets the stable key used by persistence and per-row operation state."
        },
        {
          "name": "RemoveAction",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> RemoveAction(string id)",
          "summary": "Removes an inherited row action by stable id."
        },
        {
          "name": "RemoveBulkAction",
          "kind": "method",
          "signature": "DataGridFormSchemaBuilder<TItem, TKey> RemoveBulkAction(string id)",
          "summary": "Removes an inherited selected-item action by stable id."
        }
      ]
    },
    {
      "name": "DataGridHierarchyBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Fluent builder for bounded DataGrid hierarchy behavior.",
      "source": "src/Omni.Blazor/Models/DataGridSchema.cs",
      "members": [
        {
          "name": "HasChildren",
          "kind": "method",
          "signature": "DataGridHierarchyBuilder<TItem> HasChildren(Func<TItem, bool> predicate)",
          "summary": "Sets an optional cheap child-existence predicate."
        },
        {
          "name": "Indent",
          "kind": "method",
          "signature": "DataGridHierarchyBuilder<TItem> Indent(int pixels)",
          "summary": "Sets indentation in CSS pixels."
        },
        {
          "name": "InitiallyExpanded",
          "kind": "method",
          "signature": "DataGridHierarchyBuilder<TItem> InitiallyExpanded(Func<TItem, bool> predicate)",
          "summary": "Sets an optional initial expansion predicate."
        },
        {
          "name": "Limits",
          "kind": "method",
          "signature": "DataGridHierarchyBuilder<TItem> Limits(int maximumDepth, int maximumVisibleRows, int maximumChildrenPerNode, int maximumCachedNodes, int maximumCachedItems, int maximumConcurrentLoads)",
          "summary": "Sets hard safety bounds for traversal, caches and concurrent lazy loads."
        }
      ]
    },
    {
      "name": "DataGridHierarchySchema<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable hierarchy portion of a DataGrid schema.",
      "source": "src/Omni.Blazor/Models/DataGridSchema.cs",
      "members": [
        {
          "name": "<Clone>$",
          "kind": "method",
          "signature": "DataGridHierarchySchema<TItem> <Clone>$()"
        },
        {
          "name": "Children",
          "kind": "property",
          "signature": "Func<TItem, IEnumerable<TItem>> Children"
        },
        {
          "name": "ChildrenProvider",
          "kind": "property",
          "signature": "HierarchyChildrenProvider<TItem> ChildrenProvider"
        },
        {
          "name": "DataGridHierarchySchema",
          "kind": "constructor",
          "signature": "DataGridHierarchySchema(Func<TItem, IEnumerable<TItem>> Children, Func<TItem, bool> HasChildren, HierarchyChildrenProvider<TItem> ChildrenProvider, Func<TItem, bool> InitiallyExpanded, int IndentSize, int MaxChildrenPerNode, int MaxCachedNodes, int MaxCachedItems, int MaxVisibleRows, int MaxDepth, int MaxConcurrentLoads)",
          "summary": "Immutable hierarchy portion of a DataGrid schema."
        },
        {
          "name": "Deconstruct",
          "kind": "method",
          "signature": "Void Deconstruct(Func`2& Children, Func`2& HasChildren, HierarchyChildrenProvider`1& ChildrenProvider, Func`2& InitiallyExpanded, Int32& IndentSize, Int32& MaxChildrenPerNode, Int32& MaxCachedNodes, Int32& MaxCachedItems, Int32& MaxVisibleRows, Int32& MaxDepth, Int32& MaxConcurrentLoads)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(DataGridHierarchySchema<TItem> other)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(object obj)"
        },
        {
          "name": "GetHashCode",
          "kind": "method",
          "signature": "int GetHashCode()"
        },
        {
          "name": "HasChildren",
          "kind": "property",
          "signature": "Func<TItem, bool> HasChildren"
        },
        {
          "name": "IndentSize",
          "kind": "property",
          "signature": "int IndentSize"
        },
        {
          "name": "InitiallyExpanded",
          "kind": "property",
          "signature": "Func<TItem, bool> InitiallyExpanded"
        },
        {
          "name": "MaxCachedItems",
          "kind": "property",
          "signature": "int MaxCachedItems"
        },
        {
          "name": "MaxCachedNodes",
          "kind": "property",
          "signature": "int MaxCachedNodes"
        },
        {
          "name": "MaxChildrenPerNode",
          "kind": "property",
          "signature": "int MaxChildrenPerNode"
        },
        {
          "name": "MaxConcurrentLoads",
          "kind": "property",
          "signature": "int MaxConcurrentLoads"
        },
        {
          "name": "MaxDepth",
          "kind": "property",
          "signature": "int MaxDepth"
        },
        {
          "name": "MaxVisibleRows",
          "kind": "property",
          "signature": "int MaxVisibleRows"
        },
        {
          "name": "ToString",
          "kind": "method",
          "signature": "string ToString()"
        }
      ]
    },
    {
      "name": "DataGridSchema<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable, strongly typed structural configuration for an OmniDataGrid.",
      "source": "src/Omni.Blazor/Models/DataGridSchema.cs",
      "members": [
        {
          "name": "AllowColumnFilter",
          "kind": "property",
          "signature": "bool AllowColumnFilter",
          "summary": "Whether per-column filters are enabled."
        },
        {
          "name": "AllowColumnResize",
          "kind": "property",
          "signature": "bool AllowColumnResize",
          "summary": "Whether columns can be resized."
        },
        {
          "name": "AllowColumnVisibility",
          "kind": "property",
          "signature": "bool AllowColumnVisibility",
          "summary": "Whether column visibility can be customized."
        },
        {
          "name": "AllowExport",
          "kind": "property",
          "signature": "bool AllowExport",
          "summary": "Whether bounded CSV export is enabled."
        },
        {
          "name": "AllowGrouping",
          "kind": "property",
          "signature": "bool AllowGrouping",
          "summary": "Whether grouping is enabled."
        },
        {
          "name": "AllowMultiSelection",
          "kind": "property",
          "signature": "bool AllowMultiSelection",
          "summary": "Whether multi-selection is enabled."
        },
        {
          "name": "AllowPaging",
          "kind": "property",
          "signature": "bool AllowPaging",
          "summary": "Whether paging is enabled."
        },
        {
          "name": "AllowSearch",
          "kind": "property",
          "signature": "bool AllowSearch",
          "summary": "Whether search is enabled."
        },
        {
          "name": "AllowSorting",
          "kind": "property",
          "signature": "bool AllowSorting",
          "summary": "Whether sorting is enabled."
        },
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static DataGridSchemaBuilder<TItem> Builder()",
          "summary": "Creates a mutable one-shot schema builder."
        },
        {
          "name": "Columns",
          "kind": "property",
          "signature": "IReadOnlyList<DataGridColumnDefinition<TItem>> Columns",
          "summary": "Immutable generated column definitions."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static DataGridSchema<TItem> Create(Action<DataGridSchemaBuilder<TItem>> configure)",
          "summary": "Creates an immutable schema through a strongly typed builder."
        },
        {
          "name": "EmptyText",
          "kind": "property",
          "signature": "string EmptyText",
          "summary": "Optional empty-state text."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "DataGridSchema<TItem> Extend(Action<DataGridSchemaBuilder<TItem>> configure)",
          "summary": "Creates an immutable derived schema from this reusable base."
        },
        {
          "name": "Height",
          "kind": "property",
          "signature": "string Height",
          "summary": "Virtualized scroller height."
        },
        {
          "name": "Hierarchy",
          "kind": "property",
          "signature": "DataGridHierarchySchema<TItem> Hierarchy",
          "summary": "Optional bounded hierarchy configuration."
        },
        {
          "name": "KeySelector",
          "kind": "property",
          "signature": "Func<TItem, object> KeySelector",
          "summary": "Stable item key used by hierarchy state."
        },
        {
          "name": "OverscanCount",
          "kind": "property",
          "signature": "int OverscanCount",
          "summary": "Virtualization overscan row count."
        },
        {
          "name": "PageSize",
          "kind": "property",
          "signature": "int PageSize",
          "summary": "Default page size."
        },
        {
          "name": "RowHeight",
          "kind": "property",
          "signature": "float RowHeight",
          "summary": "Fixed virtualized row height."
        },
        {
          "name": "SearchPlaceholder",
          "kind": "property",
          "signature": "string SearchPlaceholder",
          "summary": "Optional search placeholder."
        },
        {
          "name": "Virtualize",
          "kind": "property",
          "signature": "bool Virtualize",
          "summary": "Whether row virtualization is enabled."
        }
      ]
    },
    {
      "name": "DataGridSchemaBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed one-shot builder for DataGrid structure and behavior defaults.",
      "source": "src/Omni.Blazor/Models/DataGridSchema.cs",
      "members": [
        {
          "name": "Build",
          "kind": "method",
          "signature": "DataGridSchema<TItem> Build()",
          "summary": "Builds the immutable schema."
        },
        {
          "name": "ClearColumns",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> ClearColumns()",
          "summary": "Removes all generated columns so a derived schema can declare a new projection."
        },
        {
          "name": "ClearHierarchy",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> ClearHierarchy()",
          "summary": "Removes inherited hierarchy behavior while preserving the stable key."
        },
        {
          "name": "Column",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Column<TValue>(Expression<Func<TItem, TValue>> property, Action<DataGridColumnBuilder<TItem, TValue>> configure)",
          "summary": "Adds a compile-time checked column."
        },
        {
          "name": "ColumnFilter",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> ColumnFilter(bool enabled)",
          "summary": "Enables or disables the per-column filter row."
        },
        {
          "name": "ColumnResize",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> ColumnResize(bool enabled)",
          "summary": "Enables or disables column resizing."
        },
        {
          "name": "ColumnVisibility",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> ColumnVisibility(bool enabled)",
          "summary": "Enables or disables the column visibility menu."
        },
        {
          "name": "DataGridSchemaBuilder",
          "kind": "constructor",
          "signature": "DataGridSchemaBuilder()"
        },
        {
          "name": "EmptyText",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> EmptyText(string text)",
          "summary": "Overrides empty-state text."
        },
        {
          "name": "Export",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Export(bool enabled)",
          "summary": "Enables or disables bounded CSV export."
        },
        {
          "name": "Grouping",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Grouping(bool enabled)",
          "summary": "Enables or disables row grouping."
        },
        {
          "name": "Hierarchy",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Hierarchy<TKey>(Expression<Func<TItem, TKey>> key, Func<TItem, IEnumerable<TItem>> children, Action<DataGridHierarchyBuilder<TItem>> configure)",
          "summary": "Enables an in-memory hierarchy with bounded flattening and caching defaults."
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Include(DataGridSchema<TItem> schema)",
          "summary": "Includes columns and defaults from an immutable schema."
        },
        {
          "name": "Key",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Key<TKey>(Expression<Func<TItem, TKey>> selector)",
          "summary": "Sets the stable key used by hierarchy and expansion state."
        },
        {
          "name": "LazyHierarchy",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> LazyHierarchy<TKey>(Expression<Func<TItem, TKey>> key, HierarchyChildrenProvider<TItem> provider, Action<DataGridHierarchyBuilder<TItem>> configure)",
          "summary": "Enables a cancellable lazy hierarchy with bounded concurrency and caches."
        },
        {
          "name": "MultiSelection",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> MultiSelection(bool enabled)",
          "summary": "Enables or disables multi-selection."
        },
        {
          "name": "OverrideColumn",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> OverrideColumn<TValue>(Expression<Func<TItem, TValue>> property, Action<DataGridColumnBuilder<TItem, TValue>> configure)",
          "summary": "Replaces a previously included or declared column while preserving its position."
        },
        {
          "name": "Paging",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Paging(int pageSize, bool enabled)",
          "summary": "Enables paging and sets its bounded page size."
        },
        {
          "name": "Search",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Search(bool enabled, string placeholder)",
          "summary": "Enables or disables search."
        },
        {
          "name": "Sorting",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Sorting(bool enabled)",
          "summary": "Enables or disables sorting."
        },
        {
          "name": "Virtualization",
          "kind": "method",
          "signature": "DataGridSchemaBuilder<TItem> Virtualization(string height, float rowHeight, int overscanCount)",
          "summary": "Enables fixed-row virtualization and disables paging."
        }
      ]
    },
    {
      "name": "DataImportColumnBuilder<TItem, TValue>",
      "category": "Data",
      "kind": "class",
      "summary": "Builder for one typed import target column.",
      "source": "src/Omni.Blazor/Models/DataImportModels.cs",
      "members": [
        {
          "name": "Aliases",
          "kind": "method",
          "signature": "DataImportColumnBuilder<TItem, TValue> Aliases(string[] values)",
          "summary": "Adds alternative source headers used by automatic mapping."
        },
        {
          "name": "Header",
          "kind": "method",
          "signature": "DataImportColumnBuilder<TItem, TValue> Header(string value)",
          "summary": "Sets the preferred source header."
        },
        {
          "name": "Parse",
          "kind": "method",
          "signature": "DataImportColumnBuilder<TItem, TValue> Parse(DataImportTryParser<TValue> parser)",
          "summary": "Uses an allocation-free custom typed parser."
        },
        {
          "name": "Required",
          "kind": "method",
          "signature": "DataImportColumnBuilder<TItem, TValue> Required(string error)",
          "summary": "Requires a mapped non-blank source value."
        },
        {
          "name": "Validate",
          "kind": "method",
          "signature": "DataImportColumnBuilder<TItem, TValue> Validate(Func<TValue, string> validator)",
          "summary": "Adds typed value validation after parsing."
        }
      ]
    },
    {
      "name": "DataImportSchema<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable typed tabular import schema.",
      "source": "src/Omni.Blazor/Models/DataImportModels.cs",
      "members": [
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static DataImportSchemaBuilder<TItem> Builder()",
          "summary": "Creates a mutable import schema builder."
        },
        {
          "name": "Count",
          "kind": "property",
          "signature": "int Count",
          "summary": "Number of typed target columns."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static DataImportSchema<TItem> Create(Action<DataImportSchemaBuilder<TItem>> configure)",
          "summary": "Creates and builds an immutable import schema."
        },
        {
          "name": "Delimiter",
          "kind": "property",
          "signature": "char Delimiter",
          "summary": "Default delimited-text separator. Default comma."
        },
        {
          "name": "HasHeader",
          "kind": "property",
          "signature": "bool HasHeader",
          "summary": "Whether the first row contains source headers. Default true."
        }
      ]
    },
    {
      "name": "DataImportSchemaBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed builder for bounded delimited-text imports.",
      "source": "src/Omni.Blazor/Models/DataImportModels.cs",
      "members": [
        {
          "name": "Build",
          "kind": "method",
          "signature": "DataImportSchema<TItem> Build()",
          "summary": "Builds the immutable import schema."
        },
        {
          "name": "Column",
          "kind": "method",
          "signature": "DataImportSchemaBuilder<TItem> Column<TValue>(Expression<Func<TItem, TValue>> property, Action<DataImportColumnBuilder<TItem, TValue>> configure)",
          "summary": "Adds one rename-safe writable target property."
        },
        {
          "name": "DataImportSchemaBuilder",
          "kind": "constructor",
          "signature": "DataImportSchemaBuilder()"
        },
        {
          "name": "Delimiter",
          "kind": "method",
          "signature": "DataImportSchemaBuilder<TItem> Delimiter(char delimiter)",
          "summary": "Sets the default delimiter."
        },
        {
          "name": "Factory",
          "kind": "method",
          "signature": "DataImportSchemaBuilder<TItem> Factory(Func<TItem> factory)",
          "summary": "Sets the item factory used only after one source row is read."
        },
        {
          "name": "HasHeader",
          "kind": "method",
          "signature": "DataImportSchemaBuilder<TItem> HasHeader(bool value)",
          "summary": "Controls whether the first row is interpreted as a header. Default true."
        }
      ]
    },
    {
      "name": "DelegateDataGridFormProvider<TItem, TKey>",
      "category": "Data",
      "kind": "class",
      "summary": "Delegate adapter for applications that do not need a provider class.",
      "source": "src/Omni.Blazor/Models/DataGridFormModels.cs",
      "members": [
        {
          "name": "CreateAsync",
          "kind": "method",
          "signature": "ValueTask<DataGridFormMutationResult<TItem>> CreateAsync(TItem item, CancellationToken cancellationToken)"
        },
        {
          "name": "DelegateDataGridFormProvider",
          "kind": "constructor",
          "signature": "DelegateDataGridFormProvider(GridDataProvider<TItem> load, Func<TItem, CancellationToken, ValueTask<DataGridFormMutationResult<TItem>>> create, Func<TKey, TItem, CancellationToken, ValueTask<DataGridFormMutationResult<TItem>>> update, Func<TKey, CancellationToken, ValueTask<DataGridFormMutationResult<TItem>>> delete)",
          "summary": "Creates a provider from four cancellable delegates."
        },
        {
          "name": "DelegateDataGridFormProvider",
          "kind": "constructor",
          "signature": "DelegateDataGridFormProvider(GridDataProvider<TItem> load, Func<TItem, CancellationToken, ValueTask<TItem>> create, Func<TKey, TItem, CancellationToken, ValueTask<TItem>> update, Func<TKey, CancellationToken, ValueTask> delete)",
          "summary": "Creates a provider from four cancellable delegates."
        },
        {
          "name": "DeleteAsync",
          "kind": "method",
          "signature": "ValueTask<DataGridFormMutationResult<TItem>> DeleteAsync(TKey key, CancellationToken cancellationToken)"
        },
        {
          "name": "LoadAsync",
          "kind": "method",
          "signature": "ValueTask<GridLoadResult<TItem>> LoadAsync(GridState<TItem> state, CancellationToken cancellationToken)"
        },
        {
          "name": "UpdateAsync",
          "kind": "method",
          "signature": "ValueTask<DataGridFormMutationResult<TItem>> UpdateAsync(TKey key, TItem item, CancellationToken cancellationToken)"
        }
      ]
    },
    {
      "name": "DiagramNodeBuilder",
      "category": "Data",
      "kind": "class",
      "summary": "Builder for one diagram node and its output ports.",
      "source": "src/Omni.Blazor/Models/DiagramSchema.cs",
      "members": [
        {
          "name": "Appearance",
          "kind": "method",
          "signature": "DiagramNodeBuilder Appearance(string icon, string color)",
          "summary": "Sets the optional icon and accent color."
        },
        {
          "name": "Input",
          "kind": "method",
          "signature": "DiagramNodeBuilder Input(bool enabled)",
          "summary": "Controls whether the implicit input port is available."
        },
        {
          "name": "Output",
          "kind": "method",
          "signature": "DiagramNodeBuilder Output(string name, DiagramPortKind kind)",
          "summary": "Adds a named output port."
        },
        {
          "name": "Position",
          "kind": "method",
          "signature": "DiagramNodeBuilder Position(double x, double y)",
          "summary": "Sets the world-space position."
        },
        {
          "name": "Text",
          "kind": "method",
          "signature": "DiagramNodeBuilder Text(string title, string subtitle)",
          "summary": "Sets the primary and secondary labels."
        }
      ]
    },
    {
      "name": "DiagramSchema",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable graph and canvas metadata for OmniDiagramCanvas.",
      "source": "src/Omni.Blazor/Models/DiagramSchema.cs",
      "members": [
        {
          "name": "AutoLayoutText",
          "kind": "property",
          "signature": "string AutoLayoutText",
          "summary": "Auto-layout action text."
        },
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static DiagramSchemaBuilder Builder()",
          "summary": "Creates a mutable one-shot diagram builder."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static DiagramSchema Create(Action<DiagramSchemaBuilder> configure)",
          "summary": "Creates an immutable diagram schema."
        },
        {
          "name": "DropPayloadFormat",
          "kind": "property",
          "signature": "string DropPayloadFormat",
          "summary": "Accepted HTML drag payload format."
        },
        {
          "name": "Edges",
          "kind": "property",
          "signature": "IReadOnlyList<DiagramEdge> Edges",
          "summary": "Immutable validated edge snapshot."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "DiagramSchema Extend(Action<DiagramSchemaBuilder> configure)",
          "summary": "Creates an immutable derived schema from this reusable base."
        },
        {
          "name": "FitOnMount",
          "kind": "property",
          "signature": "bool FitOnMount",
          "summary": "Whether the graph is fitted once after mounting."
        },
        {
          "name": "FitText",
          "kind": "property",
          "signature": "string FitText",
          "summary": "Fit-to-view action text."
        },
        {
          "name": "Nodes",
          "kind": "property",
          "signature": "IReadOnlyList<DiagramNode> Nodes",
          "summary": "Immutable node snapshot."
        },
        {
          "name": "ReadOnly",
          "kind": "property",
          "signature": "bool ReadOnly",
          "summary": "Whether graph editing is disabled."
        },
        {
          "name": "ShowAutoLayout",
          "kind": "property",
          "signature": "bool ShowAutoLayout",
          "summary": "Whether the auto-layout control is visible."
        },
        {
          "name": "ShowControls",
          "kind": "property",
          "signature": "bool ShowControls",
          "summary": "Whether viewport controls are visible."
        },
        {
          "name": "ShowMinimap",
          "kind": "property",
          "signature": "bool ShowMinimap",
          "summary": "Whether the minimap is visible."
        },
        {
          "name": "Viewport",
          "kind": "property",
          "signature": "DiagramViewport Viewport",
          "summary": "Initial canvas viewport."
        },
        {
          "name": "ZoomInText",
          "kind": "property",
          "signature": "string ZoomInText",
          "summary": "Zoom-in action text."
        },
        {
          "name": "ZoomOutText",
          "kind": "property",
          "signature": "string ZoomOutText",
          "summary": "Zoom-out action text."
        }
      ]
    },
    {
      "name": "DiagramSchemaBuilder",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed one-shot builder for graph structure and canvas behavior.",
      "source": "src/Omni.Blazor/Models/DiagramSchema.cs",
      "members": [
        {
          "name": "AutoLayout",
          "kind": "method",
          "signature": "DiagramSchemaBuilder AutoLayout(double columnWidth, double rowHeight, double originX, double originY)",
          "summary": "Applies the built-in left-to-right layout once while building the schema."
        },
        {
          "name": "Behavior",
          "kind": "method",
          "signature": "DiagramSchemaBuilder Behavior(bool readOnly, bool fitOnMount, bool showMinimap, bool showControls, bool showAutoLayout, string dropPayloadFormat)",
          "summary": "Configures editing and canvas controls."
        },
        {
          "name": "Build",
          "kind": "method",
          "signature": "DiagramSchema Build()",
          "summary": "Builds and validates the immutable graph."
        },
        {
          "name": "ClearGraph",
          "kind": "method",
          "signature": "DiagramSchemaBuilder ClearGraph()",
          "summary": "Removes inherited graph structure while preserving canvas defaults."
        },
        {
          "name": "Connect",
          "kind": "method",
          "signature": "DiagramSchemaBuilder Connect(string id, string source, string sourcePort, string target, string targetPort)",
          "summary": "Adds a directed edge and validates it when the schema is built."
        },
        {
          "name": "DiagramSchemaBuilder",
          "kind": "constructor",
          "signature": "DiagramSchemaBuilder()"
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "DiagramSchemaBuilder Include(DiagramSchema schema)",
          "summary": "Includes graph structure and canvas defaults from an immutable schema."
        },
        {
          "name": "Labels",
          "kind": "method",
          "signature": "DiagramSchemaBuilder Labels(string autoLayout, string zoomIn, string zoomOut, string fit)",
          "summary": "Configures localized action labels."
        },
        {
          "name": "Node",
          "kind": "method",
          "signature": "DiagramSchemaBuilder Node(string id, Action<DiagramNodeBuilder> configure)",
          "summary": "Adds a graph node."
        },
        {
          "name": "Node",
          "kind": "method",
          "signature": "DiagramSchemaBuilder Node<TData>(string id, TData data, Action<DiagramNodeBuilder> configure)",
          "summary": "Adds a graph node."
        },
        {
          "name": "OverrideConnection",
          "kind": "method",
          "signature": "DiagramSchemaBuilder OverrideConnection(string id, string source, string sourcePort, string target, string targetPort)",
          "summary": "Replaces an inherited edge while preserving its declaration position."
        },
        {
          "name": "OverrideNode",
          "kind": "method",
          "signature": "DiagramSchemaBuilder OverrideNode<TData>(string id, TData data, Action<DiagramNodeBuilder> configure)",
          "summary": "Replaces an inherited node while preserving its graph position."
        },
        {
          "name": "Viewport",
          "kind": "method",
          "signature": "DiagramSchemaBuilder Viewport(double x, double y, double zoom)",
          "summary": "Configures the initial viewport."
        }
      ]
    },
    {
      "name": "GanttDependencySchema<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable typed Gantt dependency metadata.",
      "source": "src/Omni.Blazor/Models/GanttSchema.cs",
      "members": [
        {
          "name": "<Clone>$",
          "kind": "method",
          "signature": "GanttDependencySchema<TItem> <Clone>$()"
        },
        {
          "name": "Deconstruct",
          "kind": "method",
          "signature": "Void Deconstruct(TItem& From, TItem& To, GanttDependencyType& Type)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(GanttDependencySchema<TItem> other)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(object obj)"
        },
        {
          "name": "From",
          "kind": "property",
          "signature": "TItem From"
        },
        {
          "name": "GanttDependencySchema",
          "kind": "constructor",
          "signature": "GanttDependencySchema(TItem From, TItem To, GanttDependencyType Type)",
          "summary": "Immutable typed Gantt dependency metadata."
        },
        {
          "name": "GetHashCode",
          "kind": "method",
          "signature": "int GetHashCode()"
        },
        {
          "name": "To",
          "kind": "property",
          "signature": "TItem To"
        },
        {
          "name": "ToString",
          "kind": "method",
          "signature": "string ToString()"
        },
        {
          "name": "Type",
          "kind": "property",
          "signature": "GanttDependencyType Type"
        }
      ]
    },
    {
      "name": "GanttMarkerSchema",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable Gantt timeline marker metadata.",
      "source": "src/Omni.Blazor/Models/GanttSchema.cs",
      "members": [
        {
          "name": "<Clone>$",
          "kind": "method",
          "signature": "GanttMarkerSchema <Clone>$()"
        },
        {
          "name": "Color",
          "kind": "property",
          "signature": "string Color"
        },
        {
          "name": "Date",
          "kind": "property",
          "signature": "DateTime Date"
        },
        {
          "name": "Deconstruct",
          "kind": "method",
          "signature": "Void Deconstruct(DateTime& Date, String& Label, String& Color)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(GanttMarkerSchema other)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(object obj)"
        },
        {
          "name": "GanttMarkerSchema",
          "kind": "constructor",
          "signature": "GanttMarkerSchema(DateTime Date, string Label, string Color)",
          "summary": "Immutable Gantt timeline marker metadata."
        },
        {
          "name": "GetHashCode",
          "kind": "method",
          "signature": "int GetHashCode()"
        },
        {
          "name": "Label",
          "kind": "property",
          "signature": "string Label"
        },
        {
          "name": "ToString",
          "kind": "method",
          "signature": "string ToString()"
        }
      ]
    },
    {
      "name": "GanttSchema<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable strongly typed task projection and presentation defaults for OmniGantt.",
      "source": "src/Omni.Blazor/Models/GanttSchema.cs",
      "members": [
        {
          "name": "BaselineEnd",
          "kind": "property",
          "signature": "Func<TItem, DateTime> BaselineEnd",
          "summary": "Optional baseline end selector."
        },
        {
          "name": "BaselineStart",
          "kind": "property",
          "signature": "Func<TItem, DateTime> BaselineStart",
          "summary": "Optional baseline start selector."
        },
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static GanttSchemaBuilder<TItem> Builder()",
          "summary": "Creates a mutable one-shot builder."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static GanttSchema<TItem> Create(Action<GanttSchemaBuilder<TItem>> configure)",
          "summary": "Creates an immutable typed Gantt schema."
        },
        {
          "name": "Dependencies",
          "kind": "property",
          "signature": "IReadOnlyList<GanttDependencySchema<TItem>> Dependencies",
          "summary": "Immutable typed task dependencies."
        },
        {
          "name": "End",
          "kind": "property",
          "signature": "Func<TItem, DateTime> End",
          "summary": "Task end selector."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "GanttSchema<TItem> Extend(Action<GanttSchemaBuilder<TItem>> configure)",
          "summary": "Creates an immutable derived schema from this reusable base."
        },
        {
          "name": "Key",
          "kind": "property",
          "signature": "Func<TItem, object> Key",
          "summary": "Optional stable task key selector."
        },
        {
          "name": "LeftPaneWidth",
          "kind": "property",
          "signature": "string LeftPaneWidth",
          "summary": "Fallback left pane width."
        },
        {
          "name": "Markers",
          "kind": "property",
          "signature": "IReadOnlyList<GanttMarkerSchema> Markers",
          "summary": "Immutable timeline markers."
        },
        {
          "name": "NonWorkingDays",
          "kind": "property",
          "signature": "IReadOnlyList<DayOfWeek> NonWorkingDays",
          "summary": "Immutable non-working weekdays."
        },
        {
          "name": "ParentKey",
          "kind": "property",
          "signature": "Func<TItem, object> ParentKey",
          "summary": "Optional parent task key selector."
        },
        {
          "name": "Progress",
          "kind": "property",
          "signature": "Func<TItem, double> Progress",
          "summary": "Optional progress selector in the zero-to-one-hundred range."
        },
        {
          "name": "RowHeight",
          "kind": "property",
          "signature": "int RowHeight",
          "summary": "Task row height in pixels."
        },
        {
          "name": "ShowCriticalPath",
          "kind": "property",
          "signature": "bool ShowCriticalPath",
          "summary": "Whether the critical path is highlighted."
        },
        {
          "name": "ShowNavigation",
          "kind": "property",
          "signature": "bool ShowNavigation",
          "summary": "Whether navigation is shown."
        },
        {
          "name": "ShowTodayLine",
          "kind": "property",
          "signature": "bool ShowTodayLine",
          "summary": "Whether the current time line is shown."
        },
        {
          "name": "ShowWeekends",
          "kind": "property",
          "signature": "bool ShowWeekends",
          "summary": "Whether non-working days are shaded."
        },
        {
          "name": "Start",
          "kind": "property",
          "signature": "Func<TItem, DateTime> Start",
          "summary": "Task start selector."
        },
        {
          "name": "Text",
          "kind": "property",
          "signature": "Func<TItem, string> Text",
          "summary": "Optional task label selector."
        },
        {
          "name": "ZoomLevel",
          "kind": "property",
          "signature": "GanttZoomLevel ZoomLevel",
          "summary": "Default zoom level."
        }
      ]
    },
    {
      "name": "GanttSchemaBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed one-shot builder for Gantt task metadata.",
      "source": "src/Omni.Blazor/Models/GanttSchema.cs",
      "members": [
        {
          "name": "Baseline",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Baseline(Expression<Func<TItem, DateTime>> start, Expression<Func<TItem, DateTime>> end)",
          "summary": "Maps optional baseline dates."
        },
        {
          "name": "Build",
          "kind": "method",
          "signature": "GanttSchema<TItem> Build()",
          "summary": "Builds the immutable schema."
        },
        {
          "name": "Dependencies",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Dependencies(IEnumerable<GanttDependency<TItem>> values)",
          "summary": "Sets a typed immutable dependency snapshot."
        },
        {
          "name": "GanttSchemaBuilder",
          "kind": "constructor",
          "signature": "GanttSchemaBuilder()"
        },
        {
          "name": "Hierarchy",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Hierarchy<TKey, TParentKey>(Expression<Func<TItem, TKey>> key, Expression<Func<TItem, TParentKey>> parentKey)",
          "summary": "Maps stable and optional parent keys using compile-time checked expressions."
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Include(GanttSchema<TItem> schema)",
          "summary": "Includes task projection and presentation defaults from an immutable schema."
        },
        {
          "name": "Key",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Key<TKey>(Expression<Func<TItem, TKey>> selector)",
          "summary": "Maps a stable key without enabling hierarchy."
        },
        {
          "name": "Markers",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Markers(IEnumerable<GanttMarker> values)",
          "summary": "Sets an immutable marker snapshot."
        },
        {
          "name": "NonWorkingDays",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> NonWorkingDays(DayOfWeek[] days)",
          "summary": "Sets immutable non-working weekdays."
        },
        {
          "name": "Progress",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Progress(Expression<Func<TItem, double>> selector)",
          "summary": "Maps task progress."
        },
        {
          "name": "Task",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Task(Expression<Func<TItem, string>> text, Expression<Func<TItem, DateTime>> start, Expression<Func<TItem, DateTime>> end)",
          "summary": "Maps task label, start and end values."
        },
        {
          "name": "Timeline",
          "kind": "method",
          "signature": "GanttSchemaBuilder<TItem> Timeline(GanttZoomLevel zoom, int rowHeight, string leftPaneWidth, bool showNavigation, bool showTodayLine, bool showWeekends, bool showCriticalPath)",
          "summary": "Sets timeline presentation defaults."
        }
      ]
    },
    {
      "name": "IDataGridFormProvider<TItem, TKey>",
      "category": "Data",
      "kind": "interface",
      "summary": "Cancellable CRUD source used by OmniDataGridForm. Implementations own persistence and authorization; the component owns interaction state and validation.",
      "source": "src/Omni.Blazor/Models/DataGridFormModels.cs",
      "members": [
        {
          "name": "CreateAsync",
          "kind": "method",
          "signature": "ValueTask<DataGridFormMutationResult<TItem>> CreateAsync(TItem item, CancellationToken cancellationToken)",
          "summary": "Persists a new validated item and returns its structured outcome."
        },
        {
          "name": "DeleteAsync",
          "kind": "method",
          "signature": "ValueTask<DataGridFormMutationResult<TItem>> DeleteAsync(TKey key, CancellationToken cancellationToken)",
          "summary": "Deletes one item by its stable key and returns its structured outcome."
        },
        {
          "name": "LoadAsync",
          "kind": "method",
          "signature": "ValueTask<GridLoadResult<TItem>> LoadAsync(GridState<TItem> state, CancellationToken cancellationToken)",
          "summary": "Loads one grid window using the DataGrid server-side state."
        },
        {
          "name": "UpdateAsync",
          "kind": "method",
          "signature": "ValueTask<DataGridFormMutationResult<TItem>> UpdateAsync(TKey key, TItem item, CancellationToken cancellationToken)",
          "summary": "Persists a validated edit and returns its structured outcome."
        }
      ]
    },
    {
      "name": "KanbanCardBuilder<TCard>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed builder for the default Kanban card.",
      "source": "src/Omni.Blazor/Models/KanbanSchema.cs",
      "members": [
        {
          "name": "Actions",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Actions(Func<TCard, IEnumerable<KanbanCardAction>> selector)",
          "summary": "Maps card overflow actions."
        },
        {
          "name": "Age",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Age(Expression<Func<TCard, int>> selector, int warningDays, int staleDays)",
          "summary": "Maps card age and warning thresholds."
        },
        {
          "name": "Assignee",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Assignee(Expression<Func<TCard, string>> selector, Expression<Func<TCard, string>> avatar)",
          "summary": "Maps assignee and optional avatar URL."
        },
        {
          "name": "Color",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Color(Expression<Func<TCard, string>> selector)",
          "summary": "Maps a CSS accent color."
        },
        {
          "name": "DueDate",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> DueDate(Expression<Func<TCard, DateTime>> selector)",
          "summary": "Maps a due date."
        },
        {
          "name": "Estimate",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Estimate(Expression<Func<TCard, string>> selector)",
          "summary": "Maps an estimate label."
        },
        {
          "name": "Fields",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Fields(Func<TCard, IEnumerable<KanbanField>> selector)",
          "summary": "Maps extra card fields."
        },
        {
          "name": "Priority",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Priority(Expression<Func<TCard, KanbanPriority>> selector)",
          "summary": "Maps card priority."
        },
        {
          "name": "Subtasks",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Subtasks(Func<TCard, ValueTuple<int, int>> selector)",
          "summary": "Maps subtask progress."
        },
        {
          "name": "Title",
          "kind": "method",
          "signature": "KanbanCardBuilder<TCard> Title(Expression<Func<TCard, string>> selector)",
          "summary": "Maps the primary card title."
        }
      ]
    },
    {
      "name": "KanbanCardSchema<TCard>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable typed card presentation selectors.",
      "source": "src/Omni.Blazor/Models/KanbanSchema.cs",
      "members": [
        {
          "name": "<Clone>$",
          "kind": "method",
          "signature": "KanbanCardSchema<TCard> <Clone>$()"
        },
        {
          "name": "Actions",
          "kind": "property",
          "signature": "Func<TCard, IEnumerable<KanbanCardAction>> Actions"
        },
        {
          "name": "Age",
          "kind": "property",
          "signature": "Func<TCard, int> Age"
        },
        {
          "name": "AgeStaleDays",
          "kind": "property",
          "signature": "int AgeStaleDays"
        },
        {
          "name": "AgeWarnDays",
          "kind": "property",
          "signature": "int AgeWarnDays"
        },
        {
          "name": "Assignee",
          "kind": "property",
          "signature": "Func<TCard, string> Assignee"
        },
        {
          "name": "Avatar",
          "kind": "property",
          "signature": "Func<TCard, string> Avatar"
        },
        {
          "name": "Color",
          "kind": "property",
          "signature": "Func<TCard, string> Color"
        },
        {
          "name": "Deconstruct",
          "kind": "method",
          "signature": "Void Deconstruct(Func`2& Title, Func`2& Assignee, Func`2& Avatar, Func`2& DueDate, Func`2& Priority, Func`2& Subtasks, Func`2& Estimate, Func`2& Fields, Func`2& Color, Func`2& Age, Func`2& Actions, Boolean& ShowAge, Int32& AgeWarnDays, Int32& AgeStaleDays)"
        },
        {
          "name": "DueDate",
          "kind": "property",
          "signature": "Func<TCard, DateTime> DueDate"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(KanbanCardSchema<TCard> other)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(object obj)"
        },
        {
          "name": "Estimate",
          "kind": "property",
          "signature": "Func<TCard, string> Estimate"
        },
        {
          "name": "Fields",
          "kind": "property",
          "signature": "Func<TCard, IEnumerable<KanbanField>> Fields"
        },
        {
          "name": "GetHashCode",
          "kind": "method",
          "signature": "int GetHashCode()"
        },
        {
          "name": "KanbanCardSchema",
          "kind": "constructor",
          "signature": "KanbanCardSchema(Func<TCard, string> Title, Func<TCard, string> Assignee, Func<TCard, string> Avatar, Func<TCard, DateTime> DueDate, Func<TCard, KanbanPriority> Priority, Func<TCard, ValueTuple<int, int>> Subtasks, Func<TCard, string> Estimate, Func<TCard, IEnumerable<KanbanField>> Fields, Func<TCard, string> Color, Func<TCard, int> Age, Func<TCard, IEnumerable<KanbanCardAction>> Actions, bool ShowAge, int AgeWarnDays, int AgeStaleDays)",
          "summary": "Immutable typed card presentation selectors."
        },
        {
          "name": "Priority",
          "kind": "property",
          "signature": "Func<TCard, KanbanPriority> Priority"
        },
        {
          "name": "ShowAge",
          "kind": "property",
          "signature": "bool ShowAge"
        },
        {
          "name": "Subtasks",
          "kind": "property",
          "signature": "Func<TCard, ValueTuple<int, int>> Subtasks"
        },
        {
          "name": "Title",
          "kind": "property",
          "signature": "Func<TCard, string> Title"
        },
        {
          "name": "ToString",
          "kind": "method",
          "signature": "string ToString()"
        }
      ]
    },
    {
      "name": "KanbanColumnBuilder",
      "category": "Data",
      "kind": "class",
      "summary": "Fluent builder for one Kanban column.",
      "source": "src/Omni.Blazor/Models/KanbanSchema.cs",
      "members": [
        {
          "name": "Appearance",
          "kind": "method",
          "signature": "KanbanColumnBuilder Appearance(string icon, CardTone tone)",
          "summary": "Sets header icon and tone."
        },
        {
          "name": "State",
          "kind": "method",
          "signature": "KanbanColumnBuilder State(int wipLimit, bool collapsed)",
          "summary": "Sets an optional WIP limit and initial collapsed state."
        }
      ]
    },
    {
      "name": "KanbanColumnSchema",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable Kanban column metadata.",
      "source": "src/Omni.Blazor/Models/KanbanSchema.cs",
      "members": [
        {
          "name": "<Clone>$",
          "kind": "method",
          "signature": "KanbanColumnSchema <Clone>$()"
        },
        {
          "name": "Collapsed",
          "kind": "property",
          "signature": "bool Collapsed"
        },
        {
          "name": "Deconstruct",
          "kind": "method",
          "signature": "Void Deconstruct(String& Id, String& Title, String& Icon, CardTone& Tone, Nullable`1& WipLimit, Boolean& Collapsed)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(KanbanColumnSchema other)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(object obj)"
        },
        {
          "name": "GetHashCode",
          "kind": "method",
          "signature": "int GetHashCode()"
        },
        {
          "name": "Icon",
          "kind": "property",
          "signature": "string Icon"
        },
        {
          "name": "Id",
          "kind": "property",
          "signature": "string Id"
        },
        {
          "name": "KanbanColumnSchema",
          "kind": "constructor",
          "signature": "KanbanColumnSchema(string Id, string Title, string Icon, CardTone Tone, int WipLimit, bool Collapsed)",
          "summary": "Immutable Kanban column metadata."
        },
        {
          "name": "Title",
          "kind": "property",
          "signature": "string Title"
        },
        {
          "name": "ToString",
          "kind": "method",
          "signature": "string ToString()"
        },
        {
          "name": "Tone",
          "kind": "property",
          "signature": "CardTone Tone"
        },
        {
          "name": "WipLimit",
          "kind": "property",
          "signature": "int WipLimit"
        }
      ]
    },
    {
      "name": "KanbanQuickFilterSchema<TCard>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable typed Kanban quick-filter metadata.",
      "source": "src/Omni.Blazor/Models/KanbanSchema.cs",
      "members": [
        {
          "name": "<Clone>$",
          "kind": "method",
          "signature": "KanbanQuickFilterSchema<TCard> <Clone>$()"
        },
        {
          "name": "Deconstruct",
          "kind": "method",
          "signature": "Void Deconstruct(String& Label, Func`2& Predicate, String& Icon)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(KanbanQuickFilterSchema<TCard> other)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(object obj)"
        },
        {
          "name": "GetHashCode",
          "kind": "method",
          "signature": "int GetHashCode()"
        },
        {
          "name": "Icon",
          "kind": "property",
          "signature": "string Icon"
        },
        {
          "name": "KanbanQuickFilterSchema",
          "kind": "constructor",
          "signature": "KanbanQuickFilterSchema(string Label, Func<TCard, bool> Predicate, string Icon)",
          "summary": "Immutable typed Kanban quick-filter metadata."
        },
        {
          "name": "Label",
          "kind": "property",
          "signature": "string Label"
        },
        {
          "name": "Predicate",
          "kind": "property",
          "signature": "Func<TCard, bool> Predicate"
        },
        {
          "name": "ToString",
          "kind": "method",
          "signature": "string ToString()"
        }
      ]
    },
    {
      "name": "KanbanSchema<TCard>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable strongly typed board, card and workflow metadata for OmniKanban.",
      "source": "src/Omni.Blazor/Models/KanbanSchema.cs",
      "members": [
        {
          "name": "AllowAddCard",
          "kind": "property",
          "signature": "bool AllowAddCard",
          "summary": "Whether add-card actions are shown."
        },
        {
          "name": "AllowColumnReorder",
          "kind": "property",
          "signature": "bool AllowColumnReorder",
          "summary": "Whether columns can be reordered."
        },
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static KanbanSchemaBuilder<TCard> Builder()",
          "summary": "Creates a mutable one-shot builder."
        },
        {
          "name": "Card",
          "kind": "property",
          "signature": "KanbanCardSchema<TCard> Card",
          "summary": "Typed card presentation selectors."
        },
        {
          "name": "CardId",
          "kind": "property",
          "signature": "Func<TCard, object> CardId",
          "summary": "Optional stable card key selector."
        },
        {
          "name": "Collapsible",
          "kind": "property",
          "signature": "bool Collapsible",
          "summary": "Whether columns can be collapsed."
        },
        {
          "name": "ColumnSelector",
          "kind": "property",
          "signature": "Func<TCard, string> ColumnSelector",
          "summary": "Compiled card-to-column selector."
        },
        {
          "name": "ColumnSetter",
          "kind": "property",
          "signature": "Action<TCard, string> ColumnSetter",
          "summary": "Optional card column mutation delegate."
        },
        {
          "name": "ColumnWidth",
          "kind": "property",
          "signature": "string ColumnWidth",
          "summary": "Optional CSS column width."
        },
        {
          "name": "Columns",
          "kind": "property",
          "signature": "IReadOnlyList<KanbanColumnSchema> Columns",
          "summary": "Immutable board column snapshot."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static KanbanSchema<TCard> Create(Action<KanbanSchemaBuilder<TCard>> configure)",
          "summary": "Creates an immutable typed Kanban schema."
        },
        {
          "name": "DragDisabled",
          "kind": "property",
          "signature": "bool DragDisabled",
          "summary": "Whether card movement is disabled."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "KanbanSchema<TCard> Extend(Action<KanbanSchemaBuilder<TCard>> configure)",
          "summary": "Creates an immutable derived schema from this reusable base."
        },
        {
          "name": "QuickFilters",
          "kind": "property",
          "signature": "IReadOnlyList<KanbanQuickFilterSchema<TCard>> QuickFilters",
          "summary": "Immutable quick-filter snapshot."
        },
        {
          "name": "SearchSelector",
          "kind": "property",
          "signature": "Func<TCard, string> SearchSelector",
          "summary": "Optional searchable text selector."
        },
        {
          "name": "ShowCount",
          "kind": "property",
          "signature": "bool ShowCount",
          "summary": "Whether card counts are shown."
        },
        {
          "name": "ShowSearch",
          "kind": "property",
          "signature": "bool ShowSearch",
          "summary": "Whether board search is shown."
        },
        {
          "name": "SwimlaneSelector",
          "kind": "property",
          "signature": "Func<TCard, string> SwimlaneSelector",
          "summary": "Optional card-to-swimlane selector."
        },
        {
          "name": "SwimlaneSetter",
          "kind": "property",
          "signature": "Action<TCard, string> SwimlaneSetter",
          "summary": "Optional card swimlane mutation delegate."
        },
        {
          "name": "Swimlanes",
          "kind": "property",
          "signature": "IReadOnlyList<KanbanSwimlaneSchema> Swimlanes",
          "summary": "Immutable swimlane snapshot."
        },
        {
          "name": "SwimlanesCollapsible",
          "kind": "property",
          "signature": "bool SwimlanesCollapsible",
          "summary": "Whether swimlanes can be collapsed."
        },
        {
          "name": "WipLimitMode",
          "kind": "property",
          "signature": "WipLimitMode WipLimitMode",
          "summary": "How WIP limits are enforced."
        }
      ]
    },
    {
      "name": "KanbanSchemaBuilder<TCard>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed one-shot builder for Kanban workflow and presentation metadata.",
      "source": "src/Omni.Blazor/Models/KanbanSchema.cs",
      "members": [
        {
          "name": "Behavior",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> Behavior(bool showCount, bool collapsible, bool swimlanesCollapsible, bool allowAddCard, bool allowColumnReorder, bool dragDisabled, WipLimitMode wipLimitMode, string columnWidth)",
          "summary": "Configures board behavior defaults."
        },
        {
          "name": "Build",
          "kind": "method",
          "signature": "KanbanSchema<TCard> Build()",
          "summary": "Builds the immutable schema."
        },
        {
          "name": "Card",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> Card(Action<KanbanCardBuilder<TCard>> configure)",
          "summary": "Configures typed default-card selectors."
        },
        {
          "name": "ClearColumns",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> ClearColumns()",
          "summary": "Removes inherited columns so a derived schema can declare a new workflow."
        },
        {
          "name": "ClearQuickFilters",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> ClearQuickFilters()",
          "summary": "Removes inherited quick filters."
        },
        {
          "name": "ClearSwimlanes",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> ClearSwimlanes()",
          "summary": "Removes inherited swimlanes."
        },
        {
          "name": "Column",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> Column(string id, string title, Action<KanbanColumnBuilder> configure)",
          "summary": "Adds one immutable board column."
        },
        {
          "name": "ColumnState",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> ColumnState(Expression<Func<TCard, string>> selector, Action<TCard, string> setter)",
          "summary": "Maps card column state and its optional mutation delegate."
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> Include(KanbanSchema<TCard> schema)",
          "summary": "Includes workflow, card and presentation defaults from an immutable schema."
        },
        {
          "name": "KanbanSchemaBuilder",
          "kind": "constructor",
          "signature": "KanbanSchemaBuilder()",
          "summary": "Creates an empty builder."
        },
        {
          "name": "Key",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> Key<TKey>(Expression<Func<TCard, TKey>> selector)",
          "summary": "Sets a stable card key."
        },
        {
          "name": "OverrideColumn",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> OverrideColumn(string id, string title, Action<KanbanColumnBuilder> configure)",
          "summary": "Replaces an inherited column while preserving its board position."
        },
        {
          "name": "QuickFilter",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> QuickFilter(string label, Func<TCard, bool> predicate, string icon)",
          "summary": "Adds a typed quick filter."
        },
        {
          "name": "Search",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> Search(Expression<Func<TCard, string>> selector, bool enabled)",
          "summary": "Enables board search with a typed text selector."
        },
        {
          "name": "Swimlane",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> Swimlane(string id, string title, string icon, bool collapsed)",
          "summary": "Adds one immutable swimlane."
        },
        {
          "name": "SwimlaneState",
          "kind": "method",
          "signature": "KanbanSchemaBuilder<TCard> SwimlaneState(Expression<Func<TCard, string>> selector, Action<TCard, string> setter)",
          "summary": "Maps optional swimlane state and its mutation delegate."
        }
      ]
    },
    {
      "name": "KanbanSwimlaneSchema",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable Kanban swimlane metadata.",
      "source": "src/Omni.Blazor/Models/KanbanSchema.cs",
      "members": [
        {
          "name": "<Clone>$",
          "kind": "method",
          "signature": "KanbanSwimlaneSchema <Clone>$()"
        },
        {
          "name": "Collapsed",
          "kind": "property",
          "signature": "bool Collapsed"
        },
        {
          "name": "Deconstruct",
          "kind": "method",
          "signature": "Void Deconstruct(String& Id, String& Title, String& Icon, Boolean& Collapsed)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(KanbanSwimlaneSchema other)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(object obj)"
        },
        {
          "name": "GetHashCode",
          "kind": "method",
          "signature": "int GetHashCode()"
        },
        {
          "name": "Icon",
          "kind": "property",
          "signature": "string Icon"
        },
        {
          "name": "Id",
          "kind": "property",
          "signature": "string Id"
        },
        {
          "name": "KanbanSwimlaneSchema",
          "kind": "constructor",
          "signature": "KanbanSwimlaneSchema(string Id, string Title, string Icon, bool Collapsed)",
          "summary": "Immutable Kanban swimlane metadata."
        },
        {
          "name": "Title",
          "kind": "property",
          "signature": "string Title"
        },
        {
          "name": "ToString",
          "kind": "method",
          "signature": "string ToString()"
        }
      ]
    },
    {
      "name": "SchedulerSchema<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Immutable strongly typed appointment projection and presentation defaults for OmniScheduler.",
      "source": "src/Omni.Blazor/Models/SchedulerSchema.cs",
      "members": [
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static SchedulerSchemaBuilder<TItem> Builder()",
          "summary": "Creates a mutable one-shot builder."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static SchedulerSchema<TItem> Create(Action<SchedulerSchemaBuilder<TItem>> configure)",
          "summary": "Creates an immutable scheduler schema."
        },
        {
          "name": "Culture",
          "kind": "property",
          "signature": "CultureInfo Culture",
          "summary": "Optional formatting culture."
        },
        {
          "name": "End",
          "kind": "property",
          "signature": "Func<TItem, DateTime> End",
          "summary": "Compiled appointment end selector."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "SchedulerSchema<TItem> Extend(Action<SchedulerSchemaBuilder<TItem>> configure)",
          "summary": "Creates an immutable derived schema from this reusable base."
        },
        {
          "name": "Height",
          "kind": "property",
          "signature": "string Height",
          "summary": "Scheduler CSS height."
        },
        {
          "name": "SelectedViewIndex",
          "kind": "property",
          "signature": "int SelectedViewIndex",
          "summary": "Initial selected scheduler view index."
        },
        {
          "name": "ShowDateTitle",
          "kind": "property",
          "signature": "bool ShowDateTitle",
          "summary": "Whether the current range title is shown."
        },
        {
          "name": "ShowHeader",
          "kind": "property",
          "signature": "bool ShowHeader",
          "summary": "Whether the complete header is shown."
        },
        {
          "name": "ShowNavigationButtons",
          "kind": "property",
          "signature": "bool ShowNavigationButtons",
          "summary": "Whether previous and next actions are shown."
        },
        {
          "name": "ShowTodayButton",
          "kind": "property",
          "signature": "bool ShowTodayButton",
          "summary": "Whether the today action is shown."
        },
        {
          "name": "Start",
          "kind": "property",
          "signature": "Func<TItem, DateTime> Start",
          "summary": "Compiled appointment start selector."
        },
        {
          "name": "Text",
          "kind": "property",
          "signature": "Func<TItem, string> Text",
          "summary": "Optional compiled appointment label selector."
        }
      ]
    },
    {
      "name": "SchedulerSchemaBuilder<TItem>",
      "category": "Data",
      "kind": "class",
      "summary": "Strongly typed one-shot builder for Scheduler appointment metadata.",
      "source": "src/Omni.Blazor/Models/SchedulerSchema.cs",
      "members": [
        {
          "name": "Build",
          "kind": "method",
          "signature": "SchedulerSchema<TItem> Build()",
          "summary": "Builds the immutable schema."
        },
        {
          "name": "Culture",
          "kind": "method",
          "signature": "SchedulerSchemaBuilder<TItem> Culture(CultureInfo value)",
          "summary": "Sets the scheduler formatting culture."
        },
        {
          "name": "Header",
          "kind": "method",
          "signature": "SchedulerSchemaBuilder<TItem> Header(bool visible, bool navigationButtons, bool todayButton, bool dateTitle)",
          "summary": "Configures header visibility."
        },
        {
          "name": "Height",
          "kind": "method",
          "signature": "SchedulerSchemaBuilder<TItem> Height(string value)",
          "summary": "Sets the scheduler CSS height."
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "SchedulerSchemaBuilder<TItem> Include(SchedulerSchema<TItem> schema)",
          "summary": "Includes projection and presentation defaults from an immutable schema."
        },
        {
          "name": "Range",
          "kind": "method",
          "signature": "SchedulerSchemaBuilder<TItem> Range(Expression<Func<TItem, DateTime>> start, Expression<Func<TItem, DateTime>> end)",
          "summary": "Maps the appointment start and end using compile-time checked expressions."
        },
        {
          "name": "SchedulerSchemaBuilder",
          "kind": "constructor",
          "signature": "SchedulerSchemaBuilder()"
        },
        {
          "name": "SelectedView",
          "kind": "method",
          "signature": "SchedulerSchemaBuilder<TItem> SelectedView(int index)",
          "summary": "Sets the initial selected view index."
        },
        {
          "name": "Text",
          "kind": "method",
          "signature": "SchedulerSchemaBuilder<TItem> Text(Expression<Func<TItem, string>> selector)",
          "summary": "Maps the appointment display text."
        }
      ]
    },
    {
      "name": "ChartDataPointSchema",
      "category": "Display",
      "kind": "class",
      "summary": "Immutable point metadata produced by a typed chart schema.",
      "source": "src/Omni.Blazor/Models/ChartSchema.cs",
      "members": [
        {
          "name": "<Clone>$",
          "kind": "method",
          "signature": "ChartDataPointSchema <Clone>$()"
        },
        {
          "name": "Category",
          "kind": "property",
          "signature": "string Category"
        },
        {
          "name": "ChartDataPointSchema",
          "kind": "constructor",
          "signature": "ChartDataPointSchema(string Category, double Value, string Color, bool IsTotal, double X, double Size)",
          "summary": "Immutable point metadata produced by a typed chart schema."
        },
        {
          "name": "Color",
          "kind": "property",
          "signature": "string Color"
        },
        {
          "name": "Deconstruct",
          "kind": "method",
          "signature": "Void Deconstruct(String& Category, Double& Value, String& Color, Boolean& IsTotal, Nullable`1& X, Nullable`1& Size)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(ChartDataPointSchema other)"
        },
        {
          "name": "Equals",
          "kind": "method",
          "signature": "bool Equals(object obj)"
        },
        {
          "name": "GetHashCode",
          "kind": "method",
          "signature": "int GetHashCode()"
        },
        {
          "name": "IsTotal",
          "kind": "property",
          "signature": "bool IsTotal"
        },
        {
          "name": "Size",
          "kind": "property",
          "signature": "double Size"
        },
        {
          "name": "ToString",
          "kind": "method",
          "signature": "string ToString()"
        },
        {
          "name": "Value",
          "kind": "property",
          "signature": "double Value"
        },
        {
          "name": "X",
          "kind": "property",
          "signature": "double X"
        }
      ]
    },
    {
      "name": "ChartSchema",
      "category": "Display",
      "kind": "class",
      "summary": "Immutable chart data and presentation metadata for OmniChart.",
      "source": "src/Omni.Blazor/Models/ChartSchema.cs",
      "members": [
        {
          "name": "AriaLabel",
          "kind": "property",
          "signature": "string AriaLabel",
          "summary": "Optional accessible SVG label."
        },
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static ChartSchemaBuilder Builder()",
          "summary": "Creates a mutable one-shot chart builder."
        },
        {
          "name": "ColorScheme",
          "kind": "property",
          "signature": "ChartColorScheme ColorScheme",
          "summary": "Fallback color scheme."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static ChartSchema Create(Action<ChartSchemaBuilder> configure)",
          "summary": "Creates an immutable chart schema."
        },
        {
          "name": "DonutCenterLabel",
          "kind": "property",
          "signature": "string DonutCenterLabel",
          "summary": "Optional donut center label."
        },
        {
          "name": "DonutCenterValue",
          "kind": "property",
          "signature": "string DonutCenterValue",
          "summary": "Optional donut center value."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "ChartSchema Extend(Action<ChartSchemaBuilder> configure)",
          "summary": "Creates an immutable derived schema from this reusable base."
        },
        {
          "name": "Height",
          "kind": "property",
          "signature": "string Height",
          "summary": "Chart CSS height."
        },
        {
          "name": "LegendPosition",
          "kind": "property",
          "signature": "ChartLegendPosition LegendPosition",
          "summary": "Legend position."
        },
        {
          "name": "Series",
          "kind": "property",
          "signature": "IReadOnlyList<ChartSeriesSchema> Series",
          "summary": "Immutable series snapshot."
        },
        {
          "name": "ShowGrid",
          "kind": "property",
          "signature": "bool ShowGrid",
          "summary": "Whether horizontal grid lines are visible."
        },
        {
          "name": "Title",
          "kind": "property",
          "signature": "string Title",
          "summary": "Optional accessible chart title."
        },
        {
          "name": "ValueFormatter",
          "kind": "property",
          "signature": "Func<double, string> ValueFormatter",
          "summary": "Optional value-axis formatter."
        },
        {
          "name": "ValueTicks",
          "kind": "property",
          "signature": "int ValueTicks",
          "summary": "Requested value-axis tick count."
        },
        {
          "name": "Width",
          "kind": "property",
          "signature": "string Width",
          "summary": "Chart CSS width."
        }
      ]
    },
    {
      "name": "ChartSchemaBuilder",
      "category": "Display",
      "kind": "class",
      "summary": "Strongly typed one-shot builder for chart series and presentation metadata.",
      "source": "src/Omni.Blazor/Models/ChartSchema.cs",
      "members": [
        {
          "name": "Appearance",
          "kind": "method",
          "signature": "ChartSchemaBuilder Appearance(ChartColorScheme colorScheme, ChartLegendPosition legendPosition, bool showGrid)",
          "summary": "Configures legend, colors and grid visibility."
        },
        {
          "name": "Build",
          "kind": "method",
          "signature": "ChartSchema Build()",
          "summary": "Builds the immutable schema and seals this builder."
        },
        {
          "name": "ChartSchemaBuilder",
          "kind": "constructor",
          "signature": "ChartSchemaBuilder()"
        },
        {
          "name": "ClearSeries",
          "kind": "method",
          "signature": "ChartSchemaBuilder ClearSeries()",
          "summary": "Removes inherited series so a derived schema can declare a new dataset."
        },
        {
          "name": "DonutCenter",
          "kind": "method",
          "signature": "ChartSchemaBuilder DonutCenter(string label, string value)",
          "summary": "Configures donut center content."
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "ChartSchemaBuilder Include(ChartSchema schema)",
          "summary": "Includes series and presentation defaults from an immutable schema."
        },
        {
          "name": "Labels",
          "kind": "method",
          "signature": "ChartSchemaBuilder Labels(string title, string ariaLabel, Func<double, string> valueFormatter, int valueTicks)",
          "summary": "Configures title, accessibility and axis formatting."
        },
        {
          "name": "OverrideSeries",
          "kind": "method",
          "signature": "ChartSchemaBuilder OverrideSeries<TItem>(string title, IEnumerable<TItem> items, Expression<Func<TItem, string>> category, Expression<Func<TItem, double>> value, Action<ChartSeriesBuilder<TItem>> configure)",
          "summary": "Replaces an inherited series while preserving its legend position."
        },
        {
          "name": "Series",
          "kind": "method",
          "signature": "ChartSchemaBuilder Series(string title, IEnumerable<ChartDataPoint> points, Action<ChartSeriesBuilder<ChartDataPoint>> configure)",
          "summary": "Adds a series from an immutable snapshot of existing chart points."
        },
        {
          "name": "Series",
          "kind": "method",
          "signature": "ChartSchemaBuilder Series<TItem>(string title, IEnumerable<TItem> items, Expression<Func<TItem, string>> category, Expression<Func<TItem, double>> value, Action<ChartSeriesBuilder<TItem>> configure)",
          "summary": "Adds a series from an immutable snapshot of existing chart points."
        },
        {
          "name": "Size",
          "kind": "method",
          "signature": "ChartSchemaBuilder Size(string height, string width)",
          "summary": "Configures chart dimensions."
        }
      ]
    },
    {
      "name": "ChartSeriesBuilder<TItem>",
      "category": "Display",
      "kind": "class",
      "summary": "Strongly typed builder for one chart series.",
      "source": "src/Omni.Blazor/Models/ChartSchema.cs",
      "members": [
        {
          "name": "BubbleSize",
          "kind": "method",
          "signature": "ChartSeriesBuilder<TItem> BubbleSize(Expression<Func<TItem, double>> selector)",
          "summary": "Maps the relative size used by Bubble series."
        },
        {
          "name": "Color",
          "kind": "method",
          "signature": "ChartSeriesBuilder<TItem> Color(string color)",
          "summary": "Sets an optional CSS series color."
        },
        {
          "name": "GaugeRange",
          "kind": "method",
          "signature": "ChartSeriesBuilder<TItem> GaugeRange(double minimum, double maximum)",
          "summary": "Configures the accepted Gauge range."
        },
        {
          "name": "Line",
          "kind": "method",
          "signature": "ChartSeriesBuilder<TItem> Line(ChartInterpolation interpolation, double strokeWidth, bool showMarkers, double areaOpacity)",
          "summary": "Configures line or area rendering."
        },
        {
          "name": "PointColor",
          "kind": "method",
          "signature": "ChartSeriesBuilder<TItem> PointColor(Expression<Func<TItem, string>> selector)",
          "summary": "Maps an optional color for each point."
        },
        {
          "name": "TotalWhen",
          "kind": "method",
          "signature": "ChartSeriesBuilder<TItem> TotalWhen(Expression<Func<TItem, bool>> predicate)",
          "summary": "Maps waterfall total points."
        },
        {
          "name": "Type",
          "kind": "method",
          "signature": "ChartSeriesBuilder<TItem> Type(ChartSeriesType type)",
          "summary": "Sets the visual series type."
        },
        {
          "name": "X",
          "kind": "method",
          "signature": "ChartSeriesBuilder<TItem> X(Expression<Func<TItem, double>> selector)",
          "summary": "Maps the numeric X coordinate used by Scatter and Bubble series."
        }
      ]
    },
    {
      "name": "ChartSeriesSchema",
      "category": "Display",
      "kind": "class",
      "summary": "Immutable series metadata produced by a typed chart schema.",
      "source": "src/Omni.Blazor/Models/ChartSchema.cs",
      "members": [
        {
          "name": "AreaOpacity",
          "kind": "property",
          "signature": "double AreaOpacity",
          "summary": "Area fill opacity."
        },
        {
          "name": "Color",
          "kind": "property",
          "signature": "string Color",
          "summary": "Optional CSS color override."
        },
        {
          "name": "GaugeMaximum",
          "kind": "property",
          "signature": "double GaugeMaximum",
          "summary": "Maximum Gauge value."
        },
        {
          "name": "GaugeMinimum",
          "kind": "property",
          "signature": "double GaugeMinimum",
          "summary": "Minimum Gauge value."
        },
        {
          "name": "Interpolation",
          "kind": "property",
          "signature": "ChartInterpolation Interpolation",
          "summary": "Line interpolation mode."
        },
        {
          "name": "Points",
          "kind": "property",
          "signature": "IReadOnlyList<ChartDataPointSchema> Points",
          "summary": "Immutable point snapshot."
        },
        {
          "name": "ShowMarkers",
          "kind": "property",
          "signature": "bool ShowMarkers",
          "summary": "Whether point markers are visible."
        },
        {
          "name": "StrokeWidth",
          "kind": "property",
          "signature": "double StrokeWidth",
          "summary": "Line stroke width in SVG pixels."
        },
        {
          "name": "Title",
          "kind": "property",
          "signature": "string Title",
          "summary": "Legend and tooltip title."
        },
        {
          "name": "Type",
          "kind": "property",
          "signature": "ChartSeriesType Type",
          "summary": "Visual series type."
        }
      ]
    },
    {
      "name": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem>",
      "category": "Forms",
      "kind": "class",
      "summary": "Strongly typed configuration for a bounded editable collection field.",
      "source": "src/Omni.Blazor/Models/DataFormCollectionModels.cs",
      "members": [
        {
          "name": "Bounds",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> Bounds(int minimum, int maximum, string minimumError, string maximumError)",
          "summary": "Sets inclusive item-count bounds. Maximum is capped at 1,000."
        },
        {
          "name": "CreateCollection",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> CreateCollection(Func<TCollection> factory)",
          "summary": "Creates a collection when the bound property is initially null."
        },
        {
          "name": "CreateItem",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> CreateItem(Func<TItem> factory)",
          "summary": "Enables adding items through a factory."
        },
        {
          "name": "Grid",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> Grid<TKey>(DataGridFormSchema<TItem, TKey> schema)",
          "summary": "Renders the collection through OmniDataGridForm. The supplied CRUD schema owns columns, draft creation/editing, deletion and extra actions. Collection bounds, collection creation and reorder settings remain owned by this builder. Do not combine Grid with ItemSchema, CreateItem, Key, custom collection action texts or an item-header template."
        },
        {
          "name": "ItemSchema",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> ItemSchema(DataFormSchema<TItem> schema)",
          "summary": "Sets the nested schema rendered for every item."
        },
        {
          "name": "Key",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> Key(Func<TItem, object> selector)",
          "summary": "Sets a stable item key. Object identity is used by default."
        },
        {
          "name": "Removable",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> Removable(bool value)",
          "summary": "Allows or prevents removing items."
        },
        {
          "name": "Reorderable",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> Reorderable(bool value)",
          "summary": "Shows keyboard-accessible move-up and move-down actions."
        },
        {
          "name": "Templates",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> Templates(RenderFragment empty, RenderFragment<DataFormCollectionItemContext<TItem>> itemHeader)",
          "summary": "Sets custom empty-state and item-heading templates."
        },
        {
          "name": "Texts",
          "kind": "method",
          "signature": "DataFormCollectionEditorBuilder<TModel, TCollection, TItem> Texts(string add, string remove, string moveUp, string moveDown)",
          "summary": "Sets localized collection action text."
        }
      ]
    },
    {
      "name": "DataFormConventionBuilder<TModel>",
      "category": "Forms",
      "kind": "class",
      "summary": "Fluent defaults applied to fields selected by a type or attribute convention. Explicit field metadata always has precedence.",
      "source": "src/Omni.Blazor/Models/DataFormSchemaComposition.cs",
      "members": [
        {
          "name": "Disabled",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Disabled(bool value)",
          "summary": "Disables matching fields by default."
        },
        {
          "name": "Hint",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Hint(string value)",
          "summary": "Sets the default helper text."
        },
        {
          "name": "Label",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Label(Func<PropertyInfo, string> value)",
          "summary": "Sets a fixed label."
        },
        {
          "name": "Label",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Label(string value)",
          "summary": "Sets a fixed label."
        },
        {
          "name": "Order",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Order(int value)",
          "summary": "Sets the default display order."
        },
        {
          "name": "Placeholder",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Placeholder(string value)",
          "summary": "Sets the default placeholder."
        },
        {
          "name": "ReadOnly",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> ReadOnly(bool value)",
          "summary": "Makes matching fields read-only by default."
        },
        {
          "name": "Required",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Required(string error)",
          "summary": "Marks matching fields as required by default."
        },
        {
          "name": "Span",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Span(int value)",
          "summary": "Sets the default grid span."
        },
        {
          "name": "Visible",
          "kind": "method",
          "signature": "DataFormConventionBuilder<TModel> Visible(bool value)",
          "summary": "Sets default field visibility."
        }
      ]
    },
    {
      "name": "DataFormDateEditorBuilder",
      "category": "Forms",
      "kind": "class",
      "summary": "Typed options shared by date and time editors.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "Clearable",
          "kind": "method",
          "signature": "DataFormDateEditorBuilder Clearable(bool value)",
          "summary": "Shows or hides the clear action."
        },
        {
          "name": "DisableWeekends",
          "kind": "method",
          "signature": "DataFormDateEditorBuilder DisableWeekends(bool value)",
          "summary": "Enables or disables weekend dates."
        },
        {
          "name": "Format",
          "kind": "method",
          "signature": "DataFormDateEditorBuilder Format(string value)",
          "summary": "Sets the displayed date format."
        },
        {
          "name": "Max",
          "kind": "method",
          "signature": "DataFormDateEditorBuilder Max(DateOnly value)",
          "summary": "Sets the maximum selectable date."
        },
        {
          "name": "Min",
          "kind": "method",
          "signature": "DataFormDateEditorBuilder Min(DateOnly value)",
          "summary": "Sets the minimum selectable date."
        }
      ]
    },
    {
      "name": "DataFormFieldBuilder<TModel, TValue>",
      "category": "Forms",
      "kind": "class",
      "summary": "Strongly typed fluent configuration for one DataForm property. Editor-specific methods expose only typed values instead of parameter-name dictionaries.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "Auto",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Auto()",
          "summary": "Preserves editor inference from the property and its annotations."
        },
        {
          "name": "CheckBox",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> CheckBox()",
          "summary": "Uses a boolean checkbox editor."
        },
        {
          "name": "Class",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Class(string value)",
          "summary": "Appends a CSS class to the field wrapper."
        },
        {
          "name": "Collection",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Collection<TItem>(Action<DataFormCollectionEditorBuilder<TModel, TValue, TItem>> configure)",
          "summary": "Uses a bounded collection editor with nested item schemas."
        },
        {
          "name": "Date",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Date(Action<DataFormDateEditorBuilder> configure)",
          "summary": "Uses a date-only editor."
        },
        {
          "name": "DateTime",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> DateTime(Action<DataFormDateEditorBuilder> configure)",
          "summary": "Uses a date-and-time editor."
        },
        {
          "name": "Disabled",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Disabled(bool value)",
          "summary": "Disables the editor."
        },
        {
          "name": "Email",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Email(Action<DataFormTextEditorBuilder> configure)",
          "summary": "Uses an e-mail text editor."
        },
        {
          "name": "EnabledWhen",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> EnabledWhen(Func<TModel, bool> predicate)",
          "summary": "Enables the editor only while the model predicate returns true."
        },
        {
          "name": "Hint",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Hint(string value)",
          "summary": "Overrides the inferred helper text."
        },
        {
          "name": "HintRight",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> HintRight(string value)",
          "summary": "Sets text displayed on the right side of the label."
        },
        {
          "name": "Label",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Label(string value)",
          "summary": "Overrides the inferred field label."
        },
        {
          "name": "Numeric",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Numeric(Action<DataFormNumericEditorBuilder> configure)",
          "summary": "Uses a culture-aware numeric editor."
        },
        {
          "name": "Order",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Order(int value)",
          "summary": "Overrides the inferred field order."
        },
        {
          "name": "Password",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Password(Action<DataFormPasswordEditorBuilder> configure)",
          "summary": "Uses a password editor."
        },
        {
          "name": "Placeholder",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Placeholder(string value)",
          "summary": "Overrides the inferred editor placeholder."
        },
        {
          "name": "ReadOnly",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> ReadOnly(bool value)",
          "summary": "Makes the editor read-only."
        },
        {
          "name": "ReadOnlyWhen",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> ReadOnlyWhen(Func<TModel, bool> predicate)",
          "summary": "Makes the editor read-only while the model predicate returns true."
        },
        {
          "name": "Required",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Required(string error)",
          "summary": "Marks the field required and enables required-value validation."
        },
        {
          "name": "RequiredWhen",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> RequiredWhen(Func<TModel, bool> predicate, string error)",
          "summary": "Makes the field required while the model predicate returns true."
        },
        {
          "name": "Select",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Select(Action<DataFormSelectEditorBuilder<TValue>> configure)",
          "summary": "Uses a single-choice editor with optional strongly typed options."
        },
        {
          "name": "Select",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Select<TItem>(Func<TItem, TValue> valueSelector, Func<TItem, string> textSelector, Action<DataFormLookupEditorBuilder<TModel, TItem, TValue>> configure)",
          "summary": "Uses a single-choice editor with optional strongly typed options."
        },
        {
          "name": "Span",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Span(Breakpoint breakpoint, int columns)",
          "summary": "Sets the number of grid columns occupied by the field."
        },
        {
          "name": "Span",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Span(int columns)",
          "summary": "Sets the number of grid columns occupied by the field."
        },
        {
          "name": "Style",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Style(string value)",
          "summary": "Appends inline styles to the field wrapper."
        },
        {
          "name": "Switch",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Switch()",
          "summary": "Uses a boolean switch editor."
        },
        {
          "name": "Telephone",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Telephone(Action<DataFormTextEditorBuilder> configure)",
          "summary": "Uses a telephone text editor."
        },
        {
          "name": "Template",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Template(RenderFragment<DataFormFieldContext<TModel, TValue>> content)",
          "summary": "Replaces the inferred editor with a strongly typed custom template while preserving the EditContext, ValueExpression and DataForm change pipeline."
        },
        {
          "name": "Text",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Text(Action<DataFormTextEditorBuilder> configure)",
          "summary": "Uses a single-line text editor."
        },
        {
          "name": "TextArea",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> TextArea(Action<DataFormTextAreaEditorBuilder> configure)",
          "summary": "Uses a multi-line text editor."
        },
        {
          "name": "Time",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Time(Action<DataFormDateEditorBuilder> configure)",
          "summary": "Uses a time-only editor."
        },
        {
          "name": "Url",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Url(Action<DataFormTextEditorBuilder> configure)",
          "summary": "Uses a URL text editor."
        },
        {
          "name": "Validate",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Validate(Func<TValue, TModel, string> validator)",
          "summary": "Adds a strongly typed synchronous field validator."
        },
        {
          "name": "ValidateAsync",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> ValidateAsync(Func<TValue, TModel, CancellationToken, ValueTask<string>> validator)",
          "summary": "Adds a strongly typed cancellable asynchronous field validator."
        },
        {
          "name": "Visible",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> Visible(bool value)",
          "summary": "Sets static field visibility."
        },
        {
          "name": "VisibleWhen",
          "kind": "method",
          "signature": "DataFormFieldBuilder<TModel, TValue> VisibleWhen(Func<TModel, bool> predicate)",
          "summary": "Shows the field only when the model predicate returns true."
        }
      ]
    },
    {
      "name": "DataFormGroupBuilder<TModel>",
      "category": "Forms",
      "kind": "class",
      "summary": "Fluent builder for a semantic and responsive DataForm group.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "Description",
          "kind": "method",
          "signature": "DataFormGroupBuilder<TModel> Description(string value)",
          "summary": "Sets descriptive text below the group legend."
        },
        {
          "name": "Field",
          "kind": "method",
          "signature": "DataFormGroupBuilder<TModel> Field<TValue>(Expression<Func<TModel, TValue>> property, Action<DataFormFieldBuilder<TModel, TValue>> configure)",
          "summary": "Adds a strongly typed field to this group."
        },
        {
          "name": "Group",
          "kind": "method",
          "signature": "DataFormGroupBuilder<TModel> Group(string title, Action<DataFormGroupBuilder<TModel>> configure)",
          "summary": "Adds a nested semantic group."
        },
        {
          "name": "Id",
          "kind": "method",
          "signature": "DataFormGroupBuilder<TModel> Id(string value)",
          "summary": "Overrides the stable group identity."
        },
        {
          "name": "Layout",
          "kind": "method",
          "signature": "DataFormGroupBuilder<TModel> Layout(Action<DataFormLayoutBuilder> configure)",
          "summary": "Configures the group's own responsive grid."
        },
        {
          "name": "Order",
          "kind": "method",
          "signature": "DataFormGroupBuilder<TModel> Order(int value)",
          "summary": "Sets the display order among sibling schema nodes."
        },
        {
          "name": "Visible",
          "kind": "method",
          "signature": "DataFormGroupBuilder<TModel> Visible(bool value)",
          "summary": "Sets static group visibility."
        },
        {
          "name": "VisibleWhen",
          "kind": "method",
          "signature": "DataFormGroupBuilder<TModel> VisibleWhen(Func<TModel, bool> predicate)",
          "summary": "Shows the group only while the model predicate returns true."
        }
      ]
    },
    {
      "name": "DataFormLayoutBuilder",
      "category": "Forms",
      "kind": "class",
      "summary": "Fluent builder for a responsive DataForm grid.",
      "source": "src/Omni.Blazor/Models/DataFormAdvancedModels.cs",
      "members": [
        {
          "name": "ColumnGap",
          "kind": "method",
          "signature": "DataFormLayoutBuilder ColumnGap(string value)",
          "summary": "Sets the CSS column gap."
        },
        {
          "name": "Columns",
          "kind": "method",
          "signature": "DataFormLayoutBuilder Columns(Breakpoint breakpoint, int value)",
          "summary": "Sets the mobile-first base column count."
        },
        {
          "name": "Columns",
          "kind": "method",
          "signature": "DataFormLayoutBuilder Columns(int value)",
          "summary": "Sets the mobile-first base column count."
        },
        {
          "name": "RowGap",
          "kind": "method",
          "signature": "DataFormLayoutBuilder RowGap(string value)",
          "summary": "Sets the CSS row gap."
        }
      ]
    },
    {
      "name": "DataFormLookupEditorBuilder<TModel, TItem, TValue>",
      "category": "Forms",
      "kind": "class",
      "summary": "Strongly typed options for a DataForm lookup whose item and value types differ.",
      "source": "src/Omni.Blazor/Models/DataFormLookupModels.cs",
      "members": [
        {
          "name": "CacheEntries",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> CacheEntries(int value)",
          "summary": "Sets the maximum LRU provider pages retained by one editor instance."
        },
        {
          "name": "ClearValueOnDependencyChange",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> ClearValueOnDependencyChange(bool value)",
          "summary": "Controls whether a dependency change clears the bound value."
        },
        {
          "name": "Clearable",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> Clearable(bool value)",
          "summary": "Shows or hides the clear action."
        },
        {
          "name": "DependsOn",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> DependsOn<TDependency>(Expression<Func<TModel, TDependency>> property)",
          "summary": "Invalidates provider items when another model property changes. The dependent value is cleared by default."
        },
        {
          "name": "Items",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> Items(IEnumerable<TItem> items, int maxItems)",
          "summary": "Uses bounded in-memory items."
        },
        {
          "name": "ItemsProvider",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> ItemsProvider(DataFormLookupProvider<TModel, TItem> provider, int pageSize, int maxItems)",
          "summary": "Uses a model-aware, cancellable and paged provider."
        },
        {
          "name": "ResolveItem",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> ResolveItem(DataFormLookupResolver<TModel, TItem, TValue> resolver)",
          "summary": "Resolves the item represented by an initial or externally supplied value, allowing the editor to display human-readable text before opening its list."
        },
        {
          "name": "Templates",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> Templates(RenderFragment loading, RenderFragment empty, RenderFragment<OmniItemsProviderErrorContext> error)",
          "summary": "Sets loading, empty and retry-capable error templates."
        },
        {
          "name": "Texts",
          "kind": "method",
          "signature": "DataFormLookupEditorBuilder<TModel, TItem, TValue> Texts(string empty, string loading, string loadError, string retry, string loadMore)",
          "summary": "Sets localized provider status text."
        }
      ]
    },
    {
      "name": "DataFormNumericEditorBuilder",
      "category": "Forms",
      "kind": "class",
      "summary": "Typed options for numeric editors.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "Decimals",
          "kind": "method",
          "signature": "DataFormNumericEditorBuilder Decimals(int value)",
          "summary": "Sets the number of decimal places."
        },
        {
          "name": "Max",
          "kind": "method",
          "signature": "DataFormNumericEditorBuilder Max(decimal value)",
          "summary": "Sets the maximum accepted value."
        },
        {
          "name": "Min",
          "kind": "method",
          "signature": "DataFormNumericEditorBuilder Min(decimal value)",
          "summary": "Sets the minimum accepted value."
        },
        {
          "name": "Prefix",
          "kind": "method",
          "signature": "DataFormNumericEditorBuilder Prefix(string value)",
          "summary": "Sets text before the numeric value."
        },
        {
          "name": "Step",
          "kind": "method",
          "signature": "DataFormNumericEditorBuilder Step(decimal value)",
          "summary": "Sets the increment/decrement step."
        },
        {
          "name": "Suffix",
          "kind": "method",
          "signature": "DataFormNumericEditorBuilder Suffix(string value)",
          "summary": "Sets text after the numeric value."
        }
      ]
    },
    {
      "name": "DataFormPasswordEditorBuilder",
      "category": "Forms",
      "kind": "class",
      "summary": "Typed options for password editors.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "Autocomplete",
          "kind": "method",
          "signature": "DataFormPasswordEditorBuilder Autocomplete(string value)",
          "summary": "Sets the HTML autocomplete token."
        },
        {
          "name": "MinLength",
          "kind": "method",
          "signature": "DataFormPasswordEditorBuilder MinLength(int value)",
          "summary": "Sets the minimum password length."
        },
        {
          "name": "ShowToggle",
          "kind": "method",
          "signature": "DataFormPasswordEditorBuilder ShowToggle(bool value)",
          "summary": "Shows or hides the password visibility toggle."
        }
      ]
    },
    {
      "name": "DataFormSchema<TModel>",
      "category": "Forms",
      "kind": "class",
      "summary": "Immutable, reusable definition of the explicitly configured fields in an OmniDataForm. Create instances with Create or Builder and reuse them across renders and form instances.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "AutoGenerateFields",
          "kind": "property",
          "signature": "bool AutoGenerateFields",
          "summary": "Whether supported model properties not explicitly configured are generated. Conventional identifiers, key attributes and database-generated identities are excluded unless explicitly declared. Default true."
        },
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static DataFormSchemaBuilder<TModel> Builder()",
          "summary": "Creates a builder for advanced or conditional schema construction."
        },
        {
          "name": "Count",
          "kind": "property",
          "signature": "int Count",
          "summary": "Number of explicitly configured fields."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static DataFormSchema<TModel> Create(Action<DataFormSchemaBuilder<TModel>> configure)",
          "summary": "Creates and builds an immutable schema in one expression."
        },
        {
          "name": "Extend",
          "kind": "method",
          "signature": "DataFormSchema<TModel> Extend(Action<DataFormSchemaBuilder<TModel>> configure)",
          "summary": "Creates an immutable derived schema from this reusable base."
        },
        {
          "name": "Groups",
          "kind": "property",
          "signature": "IReadOnlyList<DataFormGroup<TModel>> Groups",
          "summary": "Top-level semantic groups declared by the schema."
        },
        {
          "name": "Layout",
          "kind": "property",
          "signature": "DataFormLayout Layout",
          "summary": "Responsive root grid used by fields outside a group."
        }
      ]
    },
    {
      "name": "DataFormSchemaBuilder<TModel>",
      "category": "Forms",
      "kind": "class",
      "summary": "Fluent builder for an immutable DataFormSchema`1.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "Apply",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> Apply(IDataFormSchemaProfile<TModel> profile)",
          "summary": "Applies a reusable strongly typed schema profile."
        },
        {
          "name": "AutoGenerateFields",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> AutoGenerateFields(bool enabled)",
          "summary": "Includes supported model properties that were not explicitly configured. Conventional identifiers, key attributes and database-generated identities are excluded unless explicitly declared. Default true."
        },
        {
          "name": "Build",
          "kind": "method",
          "signature": "DataFormSchema<TModel> Build()",
          "summary": "Builds the schema. A builder can be built only once."
        },
        {
          "name": "ConventionFor",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> ConventionFor<TValue>(Action<DataFormConventionBuilder<TModel>> configure)",
          "summary": "Adds defaults for model properties with the exact value type."
        },
        {
          "name": "ConventionForAttribute",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> ConventionForAttribute<TAttribute>(Action<DataFormConventionBuilder<TModel>> configure)",
          "summary": "Adds defaults for properties carrying an attribute."
        },
        {
          "name": "DataFormSchemaBuilder",
          "kind": "constructor",
          "signature": "DataFormSchemaBuilder()",
          "summary": "Creates an empty fluent schema builder."
        },
        {
          "name": "Field",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> Field<TValue>(Expression<Func<TModel, TValue>> property, Action<DataFormFieldBuilder<TModel, TValue>> configure)",
          "summary": "Adds or overrides a model property using a strongly typed selector."
        },
        {
          "name": "Group",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> Group(string title, Action<DataFormGroupBuilder<TModel>> configure)",
          "summary": "Adds a semantic, nestable field group."
        },
        {
          "name": "Include",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> Include(DataFormSchema<TModel> schema)",
          "summary": "Includes fields, groups and conventions from an immutable schema. The receiving builder keeps its own layout and auto-generation policy."
        },
        {
          "name": "IncludeFragment",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> IncludeFragment(Action<DataFormSchemaBuilder<TModel>> fragment)",
          "summary": "Applies a reusable schema fragment to this builder."
        },
        {
          "name": "Layout",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> Layout(Action<DataFormLayoutBuilder> configure)",
          "summary": "Configures the responsive root grid."
        },
        {
          "name": "Override",
          "kind": "method",
          "signature": "DataFormSchemaBuilder<TModel> Override<TValue>(Expression<Func<TModel, TValue>> property, Action<DataFormFieldBuilder<TModel, TValue>> configure)",
          "summary": "Replaces an included or locally declared field with a fresh strongly typed definition while preserving its declaration position."
        }
      ]
    },
    {
      "name": "DataFormSelectEditorBuilder<TValue>",
      "category": "Forms",
      "kind": "class",
      "summary": "Typed options and local values for a single-choice editor.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "Clearable",
          "kind": "method",
          "signature": "DataFormSelectEditorBuilder<TValue> Clearable(bool value)",
          "summary": "Shows or hides the clear action."
        },
        {
          "name": "ItemsProvider",
          "kind": "method",
          "signature": "DataFormSelectEditorBuilder<TValue> ItemsProvider(OmniItemsProvider<TValue> provider, int pageSize, int maxItems)",
          "summary": "Uses a cancellable and paged asynchronous option provider."
        },
        {
          "name": "Option",
          "kind": "method",
          "signature": "DataFormSelectEditorBuilder<TValue> Option(TValue value, string text)",
          "summary": "Adds one strongly typed option."
        },
        {
          "name": "Options",
          "kind": "method",
          "signature": "DataFormSelectEditorBuilder<TValue> Options(IEnumerable<TValue> values, Func<TValue, string> textSelector)",
          "summary": "Replaces the local options with strongly typed values."
        }
      ]
    },
    {
      "name": "DataFormTextAreaEditorBuilder",
      "category": "Forms",
      "kind": "class",
      "summary": "Typed options for multi-line text editors.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "MaxLength",
          "kind": "method",
          "signature": "DataFormTextAreaEditorBuilder MaxLength(int value)",
          "summary": "Sets the maximum text length."
        },
        {
          "name": "Rows",
          "kind": "method",
          "signature": "DataFormTextAreaEditorBuilder Rows(int value)",
          "summary": "Sets the visible row count."
        }
      ]
    },
    {
      "name": "DataFormTextEditorBuilder",
      "category": "Forms",
      "kind": "class",
      "summary": "Typed options for text, e-mail, telephone and URL editors.",
      "source": "src/Omni.Blazor/Models/DataFormSchema.cs",
      "members": [
        {
          "name": "Autocomplete",
          "kind": "method",
          "signature": "DataFormTextEditorBuilder Autocomplete(string value)",
          "summary": "Sets the HTML autocomplete token."
        },
        {
          "name": "Clearable",
          "kind": "method",
          "signature": "DataFormTextEditorBuilder Clearable(bool value)",
          "summary": "Shows or hides the clear button."
        },
        {
          "name": "MaxLength",
          "kind": "method",
          "signature": "DataFormTextEditorBuilder MaxLength(int value)",
          "summary": "Sets the maximum text length."
        },
        {
          "name": "MinLength",
          "kind": "method",
          "signature": "DataFormTextEditorBuilder MinLength(int value)",
          "summary": "Sets the minimum text length."
        }
      ]
    },
    {
      "name": "DataFormWizardSchema<TModel>",
      "category": "Forms",
      "kind": "class",
      "summary": "Immutable ordered DataForm wizard schema.",
      "source": "src/Omni.Blazor/Models/DataFormWizardModels.cs",
      "members": [
        {
          "name": "Builder",
          "kind": "method",
          "signature": "static DataFormWizardSchemaBuilder<TModel> Builder()",
          "summary": "Creates a mutable wizard schema builder."
        },
        {
          "name": "Create",
          "kind": "method",
          "signature": "static DataFormWizardSchema<TModel> Create(Action<DataFormWizardSchemaBuilder<TModel>> configure)",
          "summary": "Creates and builds an immutable wizard schema."
        },
        {
          "name": "Steps",
          "kind": "property",
          "signature": "IReadOnlyList<DataFormWizardStep<TModel>> Steps",
          "summary": "Ordered immutable step definitions."
        }
      ]
    },
    {
      "name": "DataFormWizardSchemaBuilder<TModel>",
      "category": "Forms",
      "kind": "class",
      "summary": "Strongly typed builder for ordered DataForm wizard steps.",
      "source": "src/Omni.Blazor/Models/DataFormWizardModels.cs",
      "members": [
        {
          "name": "Build",
          "kind": "method",
          "signature": "DataFormWizardSchema<TModel> Build()",
          "summary": "Builds the immutable wizard schema."
        },
        {
          "name": "DataFormWizardSchemaBuilder",
          "kind": "constructor",
          "signature": "DataFormWizardSchemaBuilder()"
        },
        {
          "name": "Step",
          "kind": "method",
          "signature": "DataFormWizardSchemaBuilder<TModel> Step(string id, string title, DataFormSchema<TModel> schema, Action<DataFormWizardStepBuilder<TModel>> configure)",
          "summary": "Adds one step backed by an explicit DataForm schema."
        }
      ]
    },
    {
      "name": "DataFormWizardStepBuilder<TModel>",
      "category": "Forms",
      "kind": "class",
      "summary": "Builder for one typed DataForm wizard step.",
      "source": "src/Omni.Blazor/Models/DataFormWizardModels.cs",
      "members": [
        {
          "name": "CanEnter",
          "kind": "method",
          "signature": "DataFormWizardStepBuilder<TModel> CanEnter(Func<TModel, bool> predicate)",
          "summary": "Allows navigation into the step only when the model predicate returns true."
        },
        {
          "name": "Description",
          "kind": "method",
          "signature": "DataFormWizardStepBuilder<TModel> Description(string value)",
          "summary": "Sets supporting step description text."
        },
        {
          "name": "Icon",
          "kind": "method",
          "signature": "DataFormWizardStepBuilder<TModel> Icon(string value)",
          "summary": "Sets an optional step icon."
        },
        {
          "name": "ValidateAsync",
          "kind": "method",
          "signature": "DataFormWizardStepBuilder<TModel> ValidateAsync(Func<TModel, CancellationToken, ValueTask<IReadOnlyList<string>>> validator)",
          "summary": "Adds cancellable step-level validation after field validation succeeds."
        },
        {
          "name": "VisibleWhen",
          "kind": "method",
          "signature": "DataFormWizardStepBuilder<TModel> VisibleWhen(Func<TModel, bool> predicate)",
          "summary": "Shows the step only when the model predicate returns true."
        }
      ]
    }
  ]
}
