{
  "name": "Result",
  "category": "Feedback",
  "subcategory": null,
  "description": "Full-page success/error/info status screen with actions.",
  "thumbnail": "/preview-cards/result.png",
  "hasDocsPage": true,
  "nugetPackage": "Lumeo",
  "files": [
    "UI/Result/Result.razor"
  ],
  "dependencies": [],
  "packageDependencies": [
    "Blazicons.Lucide"
  ],
  "cssVars": [
    "--color-destructive",
    "--color-foreground",
    "--color-muted",
    "--color-muted-foreground",
    "--color-primary",
    "--radius"
  ],
  "api": {
    "name": "Result",
    "category": "Feedback",
    "subcategory": null,
    "description": "Full-page success/error/info status screen with actions.",
    "nugetPackage": "Lumeo",
    "files": [
      "UI/Result/Result.razor"
    ],
    "namespace": "Lumeo",
    "inheritsFrom": null,
    "implements": [],
    "parameters": [
      {
        "name": "Status",
        "type": "ResultStatus",
        "default": "ResultStatus.Info",
        "description": null,
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "Size",
        "type": "ResultSize",
        "default": "ResultSize.Medium",
        "description": null,
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "Title",
        "type": "string?",
        "default": null,
        "description": null,
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "SubTitle",
        "type": "string?",
        "default": null,
        "description": null,
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "IconContent",
        "type": "RenderFragment?",
        "default": null,
        "description": "Icon slot. Named IconContent to avoid shadowing the &lt;Icon&gt; component.",
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "Extra",
        "type": "RenderFragment?",
        "default": null,
        "description": null,
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "Class",
        "type": "string?",
        "default": null,
        "description": null,
        "isCascading": false,
        "captureUnmatched": false
      },
      {
        "name": "AdditionalAttributes",
        "type": "Dictionary<string, object>?",
        "default": null,
        "description": null,
        "isCascading": false,
        "captureUnmatched": true
      }
    ],
    "events": [],
    "enums": [],
    "records": [],
    "cssVars": [
      "--color-destructive",
      "--color-foreground",
      "--color-muted",
      "--color-muted-foreground",
      "--color-primary",
      "--radius"
    ],
    "examples": [
      {
        "title": "Success",
        "code": "<Result Status=\"Result.ResultStatus.Success\" Title=\"Payment Successful\" SubTitle=\"Order confirmed.\">\n    <Extra>\n        <Button>Go to Dashboard</Button>\n        <Button Variant=\"Button.ButtonVariant.Outline\">View Order</Button>\n    </Extra>\n</Result>"
      },
      {
        "title": "Error",
        "code": "<Result Status=\"Result.ResultStatus.Error\" Title=\"Submission Failed\" SubTitle=\"Please check and try again.\">\n    <Extra>\n        <Button Variant=\"Button.ButtonVariant.Destructive\">Retry</Button>\n    </Extra>\n</Result>"
      },
      {
        "title": "All Statuses",
        "code": "<Result Status=\"Result.ResultStatus.Warning\" Title=\"Warning\" SubTitle=\"Proceed with caution.\" />\n<Result Status=\"Result.ResultStatus.Info\" Title=\"Information\" SubTitle=\"Useful info.\" />\n<Result Status=\"Result.ResultStatus.NotFound\" Title=\"404 Not Found\" SubTitle=\"Page does not exist.\" />\n<Result Status=\"Result.ResultStatus.Forbidden\" Title=\"403 Forbidden\" SubTitle=\"No permission.\" />"
      },
      {
        "title": "Status — interactive",
        "code": "<Result Status=\"Result.ResultStatus.Success\" Title=\"Success Result\" SubTitle=\"This is a success result page.\" />"
      }
    ],
    "subComponents": {},
    "parseFailed": false,
    "parseError": null
  },
  "$schema": "https://lumeo.nativ.sh/registry-component-schema.json",
  "key": "result",
  "docsUrl": "https://lumeo.nativ.sh/components/result",
  "sourceUrl": [
    {
      "file": "UI/Result/Result.razor",
      "url": "https://github.com/Brain2k-0005/Lumeo/tree/master/src/Lumeo/UI/Result/Result.razor"
    }
  ],
  "source": [
    {
      "path": "UI/Result/Result.razor",
      "content": "@namespace Lumeo\n\n<div class=\"@CssClass\" @attributes=\"AdditionalAttributes\">\n    <div class=\"flex flex-col items-center text-center\">\n        <div class=\"@IconContainerClasses\">\n            @if (IconContent is not null)\n            {\n                @IconContent\n            }\n            else\n            {\n                @DefaultIcon\n            }\n        </div>\n        @if (!string.IsNullOrEmpty(Title))\n        {\n            <h3 class=\"@TitleClass\">@Title</h3>\n        }\n        @if (!string.IsNullOrEmpty(SubTitle))\n        {\n            <p class=\"@SubTitleClass\">@SubTitle</p>\n        }\n        @if (Extra is not null)\n        {\n            <div class=\"mt-6 flex items-center gap-2\">\n                @Extra\n            </div>\n        }\n    </div>\n</div>\n\n@code {\n    [Parameter] public ResultStatus Status { get; set; } = ResultStatus.Info;\n    // Status serves as this component's Variant — it drives color + icon. No duplicate Variant param needed.\n    [Parameter] public ResultSize Size { get; set; } = ResultSize.Medium;\n    [Parameter] public string? Title { get; set; }\n    [Parameter] public string? SubTitle { get; set; }\n\n    /// <summary>Icon slot. Named <c>IconContent</c> to avoid shadowing the <c>&lt;Icon&gt;</c> component.</summary>\n    [Parameter] public RenderFragment? IconContent { get; set; }\n\n    [Parameter] public RenderFragment? Extra { get; set; }\n    [Parameter] public string? Class { get; set; }\n    [Parameter(CaptureUnmatchedValues = true)] public Dictionary<string, object>? AdditionalAttributes { get; set; }\n\n    private string CssClass => $\"{SizePaddingClass} px-6 {Class}\".Trim();\n\n    private string SizePaddingClass => Size switch\n    {\n        ResultSize.Small => \"py-8\",\n        ResultSize.Large => \"py-16\",\n        _ => \"py-12\"\n    };\n\n    private string IconContainerClasses => $\"flex {IconSizeClass} items-center justify-center rounded-full {StatusBgClasses}\";\n\n    private string IconSizeClass => Size switch\n    {\n        ResultSize.Small => \"h-12 w-12\",\n        ResultSize.Large => \"h-20 w-20\",\n        _ => \"h-16 w-16\"\n    };\n\n    private string TitleClass => Size switch\n    {\n        ResultSize.Small => \"mt-3 text-lg font-semibold text-foreground\",\n        ResultSize.Large => \"mt-5 text-2xl font-semibold text-foreground\",\n        _ => \"mt-4 text-xl font-semibold text-foreground\"\n    };\n\n    private string SubTitleClass => Size switch\n    {\n        ResultSize.Small => \"mt-1.5 text-xs text-muted-foreground\",\n        ResultSize.Large => \"mt-2.5 text-base text-muted-foreground\",\n        _ => \"mt-2 text-sm text-muted-foreground\"\n    };\n\n    private string InnerIconClass => Size switch\n    {\n        ResultSize.Small => \"h-6 w-6\",\n        ResultSize.Large => \"h-10 w-10\",\n        _ => \"h-8 w-8\"\n    };\n\n    private string StatusBgClasses => Status switch\n    {\n        ResultStatus.Success => \"bg-success-light text-success\",\n        ResultStatus.Error => \"bg-destructive/10 text-destructive\",\n        ResultStatus.Warning => \"bg-warning-light text-warning\",\n        ResultStatus.Info => \"bg-primary/10 text-primary\",\n        ResultStatus.NotFound => \"bg-muted text-muted-foreground\",\n        ResultStatus.Forbidden => \"bg-destructive/10 text-destructive\",\n        ResultStatus.ServerError => \"bg-destructive/10 text-destructive\",\n        _ => \"bg-primary/10 text-primary\"\n    };\n\n    private RenderFragment DefaultIcon => Status switch\n    {\n        ResultStatus.Success => @<Blazicon Svg=\"Lucide.CircleCheck\" class=\"@InnerIconClass\" />,\n        ResultStatus.Error => @<Blazicon Svg=\"Lucide.CircleAlert\" class=\"@InnerIconClass\" />,\n        ResultStatus.Warning => @<Blazicon Svg=\"Lucide.TriangleAlert\" class=\"@InnerIconClass\" />,\n        ResultStatus.Info => @<Blazicon Svg=\"Lucide.Info\" class=\"@InnerIconClass\" />,\n        ResultStatus.NotFound => @<Blazicon Svg=\"Lucide.Search\" class=\"@InnerIconClass\" />,\n        ResultStatus.Forbidden => @<Blazicon Svg=\"Lucide.Lock\" class=\"@InnerIconClass\" />,\n        ResultStatus.ServerError => @<Blazicon Svg=\"Lucide.CircleAlert\" class=\"@InnerIconClass\" />,\n        _ => @<Blazicon Svg=\"Lucide.Info\" class=\"@InnerIconClass\" />\n    };\n\n    public enum ResultStatus { Success, Error, Warning, Info, NotFound, Forbidden, ServerError }\n    public enum ResultSize { Small, Medium, Large }\n}\n"
    }
  ],
  "slots": [
    {
      "name": "IconContent",
      "owner": "Result",
      "type": "RenderFragment?",
      "description": "Icon slot. Named IconContent to avoid shadowing the &lt;Icon&gt; component."
    },
    {
      "name": "Extra",
      "owner": "Result",
      "type": "RenderFragment?",
      "description": null
    }
  ],
  "serviceDependencies": [],
  "cascadingDependencies": [],
  "relatedComponents": [],
  "keyboardInteractions": [],
  "tests": [
    "tests/Lumeo.Tests/Components/Result/ResultTests.cs"
  ],
  "mdSummary": "# Result\n\nFull-page success/error/info status screen with actions.\n\n**Package:** `Lumeo` · **Category:** Feedback\n**Docs:** https://lumeo.nativ.sh/components/result\n\n## Parameters\n| Owner | Name | Type | Default | Description |\n|---|---|---|---|---|\n| Result | Status | `ResultStatus` | `ResultStatus.Info` |  |\n| Result | Size | `ResultSize` | `ResultSize.Medium` |  |\n| Result | Title | `string?` | `` |  |\n| Result | SubTitle | `string?` | `` |  |\n| Result | IconContent | `RenderFragment?` | `` | Icon slot. Named IconContent to avoid shadowing the &lt;Icon&gt; component. |\n| Result | Extra | `RenderFragment?` | `` |  |\n| Result | Class | `string?` | `` |  |\n| Result | AdditionalAttributes | `Dictionary<string, object>?` | `` |  |\n\n## Slots\n- `IconContent` (Result) — Icon slot. Named IconContent to avoid shadowing the &lt;Icon&gt; component.\n- `Extra` (Result) — RenderFragment slot\n\n## Events\n- (none)\n\n## Sub-components\n- (none)\n\n## Cascading values it expects\n- (none)\n\n## Services it injects\n- (none)\n\n## Keyboard\n—\n\n## Example\n```razor\n<Result />\n```\n\n## CSS variables\n`--color-destructive`, `--color-foreground`, `--color-muted`, `--color-muted-foreground`, `--color-primary`, `--radius`\n\n## Files\n- `UI/Result/Result.razor`\n"
}